日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2017年高教社杯全国大学生数学建模竞赛题目--C题 颜色与物质浓度辨识

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2017年高教社杯全国大学生数学建模竞赛题目--C题 颜色与物质浓度辨识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

問題

第一問:

數據導入

?(1)pd.read_excel

(2)讀取報錯ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.

數據分析

(1)describe()

組胺:

(1)ValueError: could not convert string to float的解決方法

剩下同理

貼個代碼

結果:?


問題


?


第一問:


分析附件Data1.xls里的數據可知,顏色的數據是用RGB模式表示,即用:紅 、綠、藍三種顏色的數值,共同得出真實顏色的數值。通過在網上的查找,可以使用一下公式計算顏色值:

顏色值 = 65536Red+256Green+Blue。然后我有了解了色調和飽和度的概念。
色調:色調是指圖像的相對明暗程度,在彩色圖像上表現為顏色。在rgb中色調越低,顏色更加偏向于紅色。色調越高,顏色更加偏向于藍色。
飽和度:飽和度決定了顏色空間中顏色分量,飽和度越高,說明顏色越深,飽和度越低,說明顏色越淺。

R方:確定系數,是通過數據的變化來表征一個擬合的好壞。由上面的表達式可以知道“確定系數”的正常取值范圍為[0 1],越接近1,表明方程的變量對y的解釋能力越強,這個模型對數據擬合的也較好.

首先,通過利用pandas庫里的corr函數,得到所給數據滿足線性關系,所以我建立多元線性回歸模型。最后準則我選擇確定系數(即R方),通過比較五組數據的擬合程度,進而比較五組數據的準確性。
我分別對每種物質的數據進行多元線性回歸,并求其R方值

數據導入

?(1)pd.read_excel

在這里需要注意!!!使用pandas每次打開文件的時候行索引都會變為0,1,2,3,4……,所以寫excel的時候需要去除索引

pd.read_excel( 'path_to_file.xls', # xlsx文件的路徑 sheet_name='Sheet1', # 'Sheet1'讀取'Sheet1' , 也可以是一個列表[0,1]:讀取前兩個sheet header=3, # 從第3行開始讀,且第2行為列索引 index_col=[3], # 第三列為行索引 names=list('abcd') # 修改列標簽為 'a','b','c','d' usecols='a' # 'a': 只讀第’a'列 ['a','c']:讀取'a','c'列;[0,1,2]或[0]:只讀第0,1,2列或者只讀第[0]列;3:只讀前三列 skiprows=2 # 自上而下省略兩行 skip_footer=2 # 自下而上省略兩行 )

usecols也可以是一個函數:
pd.read_excel(‘path_to_file.xls’, ‘Sheet1’, usecols=lambda x: x.isalpha())

寫入excel文件
data.to_excel(‘file.xlsx’,index=None) # 不寫入index


(2)讀取報錯ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.

pip install xlrd

數據分析

(1)describe()

pandas 是基于numpy構建的含有更高級數據結構和工具的數據分析包,提供了高效地操作大型數據集所需的工具。pandas有兩個核心數據結構 Series和DataFrame,分別對應了一維的序列和二維的表結構。而describe()函數就是返回這兩個核心數據結構的統計變量。其目的在于觀察這一系列數據的范圍、大小、波動趨勢等等,為后面的模型選擇打下基礎。

?參考鏈接:https://blog.csdn.net/qq_24754061/article/details/103738513

組胺:

(1)loc函數:通過行索引 "Index" 中的具體值來取行數據(如取"Index"為"A"的行

(2)iloc函數:通過行號來取行數據(如取第二行的數據

參考鏈接:https://blog.csdn.net/W_weiying/article/details/81411257


(1)ValueError: could not convert string to float的解決方法

把水改成0

?


剩下同理

注意就是我們截取的表格段不一樣所以說就不一樣,,遇到水的話,可以給他賦值成0,我是用的暴力破解法,直接一個一個的賦值。

貼個代碼

#硫酸鋁鉀: jia_data=data[33:70] jia_data=jia_data.iloc[:,[1,2,3,4,5,6]]#讀取所有行和123456列 print(jia_data) print(jia_data.corr())#特征化處理,變成0-1之間的 x=jia_data.iloc[:,[1,2,3,4,5]] print(x) #print("=======================") #print("") jia_data.iloc[[0],[0]]=0 jia_data.iloc[[1],[0]]=0 jia_data.iloc[[2],[0]]=0 jia_data.iloc[[3],[0]]=0 jia_data.iloc[[4],[0]]=0 jia_data.iloc[[5],[0]]=0 jia_data.iloc[[6],[0]]=0.5 jia_data.iloc[[7],[0]]=0.5 jia_data.iloc[[8],[0]]=0.5 jia_data.iloc[[9],[0]]=0.5 jia_data.iloc[[10],[0]]=0.5 jia_data.iloc[[11],[0]]=0.5 jia_data.iloc[[12],[0]]=0.5 jia_data.iloc[[13],[0]]=1 jia_data.iloc[[14],[0]]=1 jia_data.iloc[[15],[0]]=1 jia_data.iloc[[16],[0]]=1 jia_data.iloc[[17],[0]]=1 jia_data.iloc[[18],[0]]=1.5 jia_data.iloc[[19],[0]]=1.5 jia_data.iloc[[20],[0]]=1.5 jia_data.iloc[[21],[0]]=1.5 jia_data.iloc[[22],[0]]=1.5 jia_data.iloc[[23],[0]]=1.5 jia_data.iloc[[24],[0]]=2 jia_data.iloc[[25],[0]]=2 jia_data.iloc[[26],[0]]=2 jia_data.iloc[[27],[0]]=2 jia_data.iloc[[28],[0]]=2 jia_data.iloc[[29],[0]]=2 jia_data.iloc[[30],[0]]=5 jia_data.iloc[[31],[0]]=5 jia_data.iloc[[32],[0]]=5 jia_data.iloc[[33],[0]]=5 jia_data.iloc[[34],[0]]=5 jia_data.iloc[[35],[0]]=5 jia_data.iloc[[36],[0]]=5 y=jia_data.iloc[:,0] print(y) model=LinearRegression() model.fit(x,y) a=model.intercept_#截距 b=model.coef_#回歸系數 print("擬合參數:截距",a,"回歸系數:",b) print("最佳擬合線:y=",round(a,2),"+",round(b[0],2),"*X1+",round(b[1],2),"*X2","+",round(b[2],2),"*X3 +",round(b[3],2),"*X4 +",round(b[4],2),"*X1") from sklearn import metrics mse = metrics.mean_squared_error(y,model.predict(x))#求出均方差 rmes=np.sqrt(mse) r22=model.score(x,y) print(r22) print("=================================================")

結果:?

根據R值可知:擬合行從好到壞:組胺>溴酸鉀>奶中尿素>工業堿>硫酸鋁鉀
所以優劣排序為:組胺>溴酸鉀>奶中尿素>工業堿>硫酸鋁鉀

第二問

題目要求對Data2.xls中的數據進行分析,并建立顏色讀數和物質濃度的數學模型。首先,我們還先對Data2.xls中的數據進行處理,并建立多元線性回歸模型,得出其最佳擬合曲線和確定系數。

數據導入和處理

?

?

?最后數據有點問題,因為填充表格自動填充得NAN ,所以說需要一個一個得補齊賦值。挺麻煩得。

總結

以上是生活随笔為你收集整理的2017年高教社杯全国大学生数学建模竞赛题目--C题 颜色与物质浓度辨识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。