使用機器學習和深度學習模型預測汽車價格
目標
在本文中,我們將對二手車定價做出預測。我們將使用不同的架構開發(fā)多種機器學習和深度學習模型。最后,我們將比較機器學習模型與深度學習模型的性能。
使用的數(shù)據(jù)
在這種情況下,我們使用了 kaggle 數(shù)據(jù)集。
有 17 個不同的變量:
IDPrice: 汽車價格(目標欄)LevyManufacturerModelProd. yearCategoryLeather interiorFuel typeEngine volumeMileageCylindersGear box typeDrive wheelsDoorsWheelColorAirbags
要獲取數(shù)據(jù)并將其用于你的調(diào)查,請單擊以下鏈接 -
https://www.kaggle.com/datasets/deepcontractor/car-price-prediction-challenge
數(shù)據(jù)檢查
我們將在這部分查看數(shù)據(jù)。首先,讓我們看看數(shù)據(jù)中的列及其數(shù)據(jù)類型,以及任何缺失值。
數(shù)據(jù)集的信息
我們可以看到數(shù)據(jù)集有 19237 行 18 列。
有五個數(shù)字列和十三個類別列。我們可以立即觀察到數(shù)據(jù)中沒有缺失數(shù)字。
“Price”列/特征將是項目的目標列或相關特征。
讓我們看看數(shù)據(jù)分布。
數(shù)據(jù)準備
在這里,我們將清理數(shù)據(jù)并為模型訓練做準備。
“ID”列
我們刪除“ID”列,因為它與汽車價格預測無關。
Levy 列
檢查'Levy'列后,我們發(fā)現(xiàn)它確實包含缺失值,但它們在數(shù)據(jù)中表示為'-',這就是為什么我們無法在數(shù)據(jù)中更早地捕獲缺失值.
在這種情況下,如果沒有“Levy”,我們會將“Levy”列中的“-”替換為“0”。我們也可以用“均值”或“中值”來推斷它,但你必須做出該決定。
Mileage 列
這里的“Mileage”列表示汽車行駛了多少公里。每次閱讀后,“公里”都寫在列中。我們將刪除它。
**“Engine Volume”列 **
與“Engine Volume”列一起,還寫入了發(fā)動機的“種類”(渦輪增壓或非渦輪增壓)。我們將添加一個新列來顯示“引擎”的“類型”。
處理“離群值”
我們將檢查數(shù)值特征。以下是確定異常值的每個數(shù)值特征的快照
Levy:
Engine volume:
Mileage:
Cylinders:
Airbags:
離群值可以在 ‘Levy’, ‘Engine volume’, ‘Mileage’和“Cylinders”列中找到。我們將使用分位數(shù)間距 (IQR) 方法來消除這些異常值。
在統(tǒng)計學中,四分位數(shù)間距 (IQR) 是基于將數(shù)據(jù)集劃分為四分位數(shù)的可變性度量。IQR 是上四分位數(shù)和下四分位數(shù)之間的差值。它是一種不受異常值影響的穩(wěn)健的傳播度量。IQR 通常用于識別數(shù)據(jù)集中的異常值。
要計算 IQR,首先需要計算數(shù)據(jù)集的第 25 個和第 75 個百分位數(shù),然后通過從第 75 個百分位減去第 25 個百分位來計算 IQR。
使用 IQR 方法去除異常值后
我們可以觀察到現(xiàn)在特征中沒有異常值。
開發(fā)額外的特征
“Mileage”和“Engine Volume”都是連續(xù)變量。在運行回歸時,我發(fā)現(xiàn)對這些變量進行分箱有助于提高模型的性能。因此,我正在為這些特征/列開發(fā)“Bin”特征。
用于開發(fā)額外特征的代碼截圖
處理分類特征
處理機器學習中的分類特征是一項重要任務,因為大多數(shù)機器學習算法都是為處理數(shù)值數(shù)據(jù)而設計的。分類特征是表示為字符串的非數(shù)值數(shù)據(jù),例如顏色、國家或食物類型。為了在機器學習模型中使用這些特征,需要將它們轉化為數(shù)值數(shù)據(jù)。
有幾種方法可以處理 ML 中的分類特征。我使用 Ordinal Encoder 來處理分類列
檢查相關性
數(shù)據(jù)顯示,特征沒有高度關聯(lián)。然而,我們可以看到,在對“價格”列進行對數(shù)轉換后,與一些屬性的相關性上升了,這是一個積極的事情。我們將利用對數(shù)轉換的“價格”來訓練模型。
數(shù)據(jù)拆分和縮放
在數(shù)據(jù)上,我們將其分為 80-20。80% 的數(shù)據(jù)將用于訓練,其余 20% 將用于測試。
我們將另外縮放數(shù)據(jù),因為并非數(shù)據(jù)中的所有特征值都具有相同的比例,并且具有不同的比例可能會導致模型性能不佳。
模型搭建
作為機器學習模型,我們創(chuàng)建了 LinearRegression、XGBoost 和 RandomForest,以及兩種深度學習模型,一種是小網(wǎng)絡,另一種是大網(wǎng)絡。
我們開發(fā)了 LinearRegression、XGBoost 和 RandomForest 基礎模型,所以就不多說了,但是我們可以看到模型總結以及它們?nèi)绾闻c我們構建的深度學習模型收斂。
深度學習模型——小網(wǎng)絡模型總結
深度學習——小型網(wǎng)絡模型摘要快照
深度學習模型——小型網(wǎng)絡訓練和驗證損失
深度學習模型——大型網(wǎng)絡
深度學習大網(wǎng)絡模型總結
深度學習——大型網(wǎng)絡訓練和驗證損失
模型效率:
我們使用性能矩陣 Mean_Squared_Error、Mean_Absolute_Error、Mean_Absolute_Percentage_Error 和 Mean_Squared_Log_Error 評估模型,結果如下所示。
我們應用于數(shù)據(jù)集的所有模型的摘要
我們可以看到深度學習模型優(yōu)于機器學習模型。RandomForest 優(yōu)于所有機器學習模型。
結果
隨機森林模型的可視化
從圖中可以看出,模型的性能非常好,性能矩陣證明了這一點。
特征重要性
特征重要性是機器學習 (ML) 中的一個重要概念,因為它有助于識別數(shù)據(jù)集中最相關的特征以預測目標變量。它允許建模者了解每個特征在預測目標變量中的貢獻,并有助于識別對模型性能無用甚至有害的特征。
下面我們使用 SHAP 繪制了隨機森林模型的特征重要性:
所有變量的特征重要性快照
結論
在本文中,我們嘗試使用汽車數(shù)據(jù)中提供的眾多參數(shù)來預測汽車價格。我們構建了機器學習和深度學習模型來預測汽車價格,并發(fā)現(xiàn)基于機器學習的模型在這些數(shù)據(jù)上的表現(xiàn)優(yōu)于基于深度學習的模型。
筆記本參考和代碼:
https://colab.research.google.com/drive/1-ivt7AjvEXMXdglMn5AHlTAMfW5oKT3J#scrollTo=J-2Z03_7_8iq
參考文章:
https://www.obviously.ai/post/data-cleaning-in-machine-learning
https://shap.readthedocs.io/en/latest/index.html
原文標題 : 使用機器學習和深度學習模型預測汽車價格
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
即日-10.29立即報名>> 2024德州儀器嵌入式技術創(chuàng)新發(fā)展研討會
-
10月31日立即下載>> 【限時免費下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
-
即日-11.13立即報名>>> 【在線會議】多物理場仿真助跑新能源汽車
-
11月14日立即報名>> 2024工程師系列—工業(yè)電子技術在線會議
-
12月19日立即報名>> 【線下會議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
-
即日-12.26火熱報名中>> OFweek2024中國智造CIO在線峰會
推薦專題
- 1 Intel宣布40年來最重大轉型:年底前裁員15000人、拋掉2/3房產(chǎn)
- 2 因美封殺TikTok,字節(jié)股價骨折!估值僅Meta1/5
- 3 宏山激光重磅發(fā)布行業(yè)解決方案,助力智能制造產(chǎn)業(yè)新飛躍
- 4 國產(chǎn)AI芯片公司破產(chǎn)!白菜價拍賣
- 5 具身智能火了,但規(guī)模落地還需時間
- 6 國產(chǎn)英偉達們,抓緊沖刺A股
- 7 三次錯失風口!OpenAI前員工殺回AI編程賽道,老東家捧金相助
- 8 英特爾賦能智慧醫(yī)療,共創(chuàng)數(shù)字化未來
- 9 英偉達的麻煩在后頭?
- 10 將“網(wǎng)紅”變成“商品”,AI“爆改”實力拉滿
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結構工程師 廣東省/深圳市