第13章 實戰案例-鉆石數據分析與預測_第1頁
第13章 實戰案例-鉆石數據分析與預測_第2頁
第13章 實戰案例-鉆石數據分析與預測_第3頁
第13章 實戰案例-鉆石數據分析與預測_第4頁
第13章 實戰案例-鉆石數據分析與預測_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

主講人:***第13章鉆石數據分析與預測13-10月-23Python數據分析與數據挖掘目錄contents案例背景0102數據加載和預處理03探索性數據分析04回歸模型預測05小結案例背景0113.1案例背景

鉆石是由透明無色的純碳晶體構成的寶石,是人類已知的最堅硬的寶石,只能被其他鉆石刮擦。由于鉆石儲量稀少、加工過程復雜,導致鉆石價格昂貴。Diamonds數據集是一個經典的回歸分析數據集,我們可以從kaggle的官網下載,網址為:/shivam2503/diamonds。diamonds.csv數據集包含了近54000顆鉆石的價格和其他屬性。數據集的目標列為鉆石的價格price,另外包括9個屬性,包括克拉carat、切割cut、顏色color、透明度clarity、鉆石的深度比例depth、鉆石的桌面比例table、以毫米為單位的鉆石的長x、寬y、高z。13.1案例背景

數據集中的屬性特征:(1)price(目標列,以美元為單位的鉆石價格,取值范圍:$326--$18,823);(2)carat(鉆石重量,取值范圍:0.2--5.01);(3)cut(鉆石切割質量,取值范圍:Fair,Good,VeryGood,Premium,Ideal);(4)color(鉆石的顏色,從J到D,分別代表從最差到最佳);(5)clarity(鉆石的透明度的指標,取值為I1,SI2,SI1,VS2,VS1,VVS2,VVS1,IF,分別代表最差到最佳);(6)x(鉆石的長度,取值范圍為0--10.74毫米);(7)y(鉆石的寬度,取值范圍為0--58.9毫米);(8)z(鉆石的深度,取值范圍為0--31.8毫米);(9)depth(總深度百分比,定義為:depth=z/mean(x,y)=2*z/(x+y)(43--79));(10)table(相對于最寬點的菱形頂部寬度,取值范圍:43--95)。本案例的目的是要用鉆石的重量、切割質量、顏色等屬性預測鉆石價格。數據加載和預處理0213.2數據加載和預處理1、加載需要的庫及讀入數據13.2數據加載和預處理2、數據信息初步分析結果:通過以上對數據的初步分析可知,數據集中共有53940行,11列。索引列Unnamed:0為int64類型,carat、depth、table、x、y、z列和目標列price為float64類型,cut、color和clarity列為object類型,數據集中各列均沒有空值。13.2.3數據預處理

通過對數據的初步分析可知,鉆石數據集首列Unnamed:0是為數據加的索引列,對鉆石的價格預測不起作用,因此將該列從數據中刪除,語句如下:1、去掉不需要的列13.2.3數據預處理

檢查數據集中是否有缺失值,并進行相應處理:2、缺失值處理13.2.3數據預處理

離群點(outlier)是指數據中和其他觀測點偏離非常大的數據點。離群點是異常的數據點,但不一定是錯誤的數據點。離群點可能會對數據分析、數據建模等工作帶來不利的影響,例如,增大錯誤方差、影響預測和影響數據正態性等,GBDT等模型對異常值很敏感。因此,離群點(outlier)是數據預處理的重要環節。可以采用對數據繪制散點圖、箱線圖等方式檢測離群點。3、離群點檢測及處理13.2.3數據預處理

通過箱線圖、散點圖和回歸關系圖的分析,發現數值型列depth、table、y和z中存在比較明顯的離群點,可以用下面的語句刪去數據集中的離群點。3、離群點檢測及處理刪除離群點后,數據集的維度由(53920,10)變為(53907,10),說明有13條數據被刪除。13.2.3數據預處理

本例將采用多種回歸模型對鉆石價格price進行預測,因此,需要將類別特征進行編碼處理,轉換為數值型數據。類別特征(categorical)是包含標簽值而非數值的列,列的取值通常為一個固定的集合。類別特征也可稱為分類變量或名義變量。許多機器學習算法不能直接對類別特征進行處理,它們要求所有輸入變量和輸出變量都是數值型變量,此時需要對類別特征進行處理,將其轉換為數值類型。如果類別特征是輸出變量,可能還需要將模型的數值型預測結果轉換為類別形式,以便在某些應用中顯示或使用結果。

4、類別特征的處理本例中,我們首先將數據df復制到label_df中,避免更改原始數據,然后采用標簽編碼方式對類別變量進行編碼,轉換為數值型,轉換后label_df中所有列均為數值型。探索性數據分析03首先查看各個類別特征中數據的分布情況。13.3.1類別特征分析將使用seaborn的displot函數,對鉆石數據集中的數值型特征carat、depth、table、x、y、z列和目標列price進行分析,以便了解數據的趨勢和分布。

結果可知,特征carat,price和x的數據分布向右傾斜,特征y和z的分布呈鋸齒狀。特征depth的數據分布相當對稱,接近正態分布。同時,本數據集中的各個數值型特征在每一側都有長尾,這表明可能存在極值。13.3.2數值特征分析13.3.3相關性分析在查看單個變量分布的基礎上,有時也需要查看變量之間的聯系,可以使用pairplot繪制成對變量的關系圖,分析變量間是否存在線性關系,有無較為明顯的相關關系。1、pairplot圖分析從輸出結果可知,x、y、z、carat和price之間存在較明顯的線性關系,"depth"、"table"與price的線性關系較弱。13.3.3相關性分析seaborn中的jointplot是聯合分布圖,可以深入地分析兩個特征的相關性。jointplot函數用于將成對特征的相關情況、聯合分布以及各自的分布在一張圖上集中呈現,是相關性分析最常用的工具,jointplot圖上還能展示回歸曲線及相關系數。在下例中,使用jointplot分別顯示特征'carat'與'price'、特征'depth'與'price'之間的相關性。2、jointplot圖分析從輸出可知,鉆石的carat特征與鉆石的價格price有較強的正相關關系,depth與price之間存在較弱的負相關關系。13.3.3相關性分析可計算鉆石價格price與其他特征的相關度,并排序顯示。3、價格與其他特征的相關度13.3.3相關性分析可以用熱度圖heatmap來觀察所有特征之間的相關性。生成熱度圖的語句如下:4、生成相關性熱度圖由相關性分析可知,鉆石的重量特征carat和維度特征x、y、z是鉆石價格的決定因素,而特征table和depth與價格Price的相關度較低,對鉆石價格的影響較小,可以考慮在進行回歸分析前,將其刪除,我們在13.4中的分析中暫時先保留這兩個特征。回歸模型預測0413.4回歸模型預測

本節將構建線性回歸、嶺回歸、Lasso回歸、隨機森林回歸及XGB回歸等多個模型,對鉆石價格進行預測。我們首先將數據集分割成訓練集和測試集,用訓練集來訓練模型,獲取所有模型在訓練集上交叉驗證的均方根誤差RMSE,選擇在訓練數據集上交叉驗證RMSE平均值最小的模型,即在訓練集上性能最佳的模型,用它對測試集數據進行預測,并使用測試集對模型進行評估。13.4回歸模型預測

使用負均方根誤差(neg_root_mean_squared_error)作為打分指標,對各個模型進行交叉檢驗,將所有模型交叉檢驗結果均值的絕對值保存到列表cv_results_RMSE中。Out:LinearRegression:1345.667893Ridge:1345.574389Lasso:1347.886019RFRegressor:553.466329XGBRegressor:552.122205輸出各個模型在訓練集上的RMSE結果,結果如下:13.4回歸模型預測13.4回歸模型預測對各個模型在訓練集上的RMSE平均值進行排序,結果保存在RMSE_on_train_sorted中,并作圖顯示顯示各個模型在訓練集上的RMSE。13.4回歸模型預測13.4回歸模型預測XGBRegressor的RMSE最小,說明其在訓練集上預測性能最佳。選擇XGBRegressor對測試數據進行價格預測,并輸出均方誤差MSE、平均絕對誤差MAE、均方根誤差RMSE、決定系數R2、校正決定系數(AdjustedR2)等各項評價指標。XGBRegressor回歸模型在測試集上的決定系數R2及校正決定系數(AdjustedR2)均接近1,說明該模型在測試集上預測性能較好。小結0513.5本章小結本章利用Python中的sklearn等常用數據分析與挖掘相關庫,對經典的回歸數據集鉆石數據集進行分析和預測。在本案例的目標是根據

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論