使用機器學習和深度學習模型預測汽車價格

目標
在本文中,我們將對二手車定價做出預測。我們將使用不同的架構開發多種機器學習和深度學習模型。最后,我們將比較機器學習模型與深度學習模型的性能。
使用的數據
在這種情況下,我們使用了 kaggle 數據集。
有 17 個不同的變量:
IDPrice: 汽車價格(目標欄)LevyManufacturerModelProd. yearCategoryLeather interiorFuel typeEngine volumeMileageCylindersGear box typeDrive wheelsDoorsWheelColorAirbags
要獲取數據并將其用于你的調查,請單擊以下鏈接 -
https://www.kaggle.com/datasets/deepcontractor/car-price-prediction-challenge
數據檢查
我們將在這部分查看數據。首先,讓我們看看數據中的列及其數據類型,以及任何缺失值。

數據集的信息
我們可以看到數據集有 19237 行 18 列。
有五個數字列和十三個類別列。我們可以立即觀察到數據中沒有缺失數字。
“Price”列/特征將是項目的目標列或相關特征。
讓我們看看數據分布。

數據準備
在這里,我們將清理數據并為模型訓練做準備。
“ID”列
我們刪除“ID”列,因為它與汽車價格預測無關。
Levy 列
檢查'Levy'列后,我們發現它確實包含缺失值,但它們在數據中表示為'-',這就是為什么我們無法在數據中更早地捕獲缺失值.
在這種情況下,如果沒有“Levy”,我們會將“Levy”列中的“-”替換為“0”。我們也可以用“均值”或“中值”來推斷它,但你必須做出該決定。
Mileage 列
這里的“Mileage”列表示汽車行駛了多少公里。每次閱讀后,“公里”都寫在列中。我們將刪除它。
**“Engine Volume”列 **
與“Engine Volume”列一起,還寫入了發動機的“種類”(渦輪增壓或非渦輪增壓)。我們將添加一個新列來顯示“引擎”的“類型”。
處理“離群值”
我們將檢查數值特征。以下是確定異常值的每個數值特征的快照
Levy:

Engine volume:

Mileage:

Cylinders:

Airbags:

離群值可以在 ‘Levy’, ‘Engine volume’, ‘Mileage’和“Cylinders”列中找到。我們將使用分位數間距 (IQR) 方法來消除這些異常值。
在統計學中,四分位數間距 (IQR) 是基于將數據集劃分為四分位數的可變性度量。IQR 是上四分位數和下四分位數之間的差值。它是一種不受異常值影響的穩健的傳播度量。IQR 通常用于識別數據集中的異常值。
要計算 IQR,首先需要計算數據集的第 25 個和第 75 個百分位數,然后通過從第 75 個百分位減去第 25 個百分位來計算 IQR。

使用 IQR 方法去除異常值后
我們可以觀察到現在特征中沒有異常值。
開發額外的特征
“Mileage”和“Engine Volume”都是連續變量。在運行回歸時,我發現對這些變量進行分箱有助于提高模型的性能。因此,我正在為這些特征/列開發“Bin”特征。

用于開發額外特征的代碼截圖
處理分類特征
處理機器學習中的分類特征是一項重要任務,因為大多數機器學習算法都是為處理數值數據而設計的。分類特征是表示為字符串的非數值數據,例如顏色、國家或食物類型。為了在機器學習模型中使用這些特征,需要將它們轉化為數值數據。
有幾種方法可以處理 ML 中的分類特征。我使用 Ordinal Encoder 來處理分類列

檢查相關性

數據顯示,特征沒有高度關聯。然而,我們可以看到,在對“價格”列進行對數轉換后,與一些屬性的相關性上升了,這是一個積極的事情。我們將利用對數轉換的“價格”來訓練模型。
數據拆分和縮放
在數據上,我們將其分為 80-20。80% 的數據將用于訓練,其余 20% 將用于測試。
我們將另外縮放數據,因為并非數據中的所有特征值都具有相同的比例,并且具有不同的比例可能會導致模型性能不佳。

模型搭建
作為機器學習模型,我們創建了 LinearRegression、XGBoost 和 RandomForest,以及兩種深度學習模型,一種是小網絡,另一種是大網絡。
我們開發了 LinearRegression、XGBoost 和 RandomForest 基礎模型,所以就不多說了,但是我們可以看到模型總結以及它們如何與我們構建的深度學習模型收斂。
深度學習模型——小網絡模型總結

深度學習——小型網絡模型摘要快照
深度學習模型——小型網絡訓練和驗證損失

深度學習模型——大型網絡

深度學習大網絡模型總結
深度學習——大型網絡訓練和驗證損失

模型效率:
我們使用性能矩陣 Mean_Squared_Error、Mean_Absolute_Error、Mean_Absolute_Percentage_Error 和 Mean_Squared_Log_Error 評估模型,結果如下所示。

我們應用于數據集的所有模型的摘要
我們可以看到深度學習模型優于機器學習模型。RandomForest 優于所有機器學習模型。
結果

隨機森林模型的可視化
從圖中可以看出,模型的性能非常好,性能矩陣證明了這一點。
特征重要性
特征重要性是機器學習 (ML) 中的一個重要概念,因為它有助于識別數據集中最相關的特征以預測目標變量。它允許建模者了解每個特征在預測目標變量中的貢獻,并有助于識別對模型性能無用甚至有害的特征。
下面我們使用 SHAP 繪制了隨機森林模型的特征重要性:

所有變量的特征重要性快照
結論
在本文中,我們嘗試使用汽車數據中提供的眾多參數來預測汽車價格。我們構建了機器學習和深度學習模型來預測汽車價格,并發現基于機器學習的模型在這些數據上的表現優于基于深度學習的模型。
筆記本參考和代碼:
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
原文標題 : 使用機器學習和深度學習模型預測汽車價格
請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
- 1 AI狂歡遇上油價破百,全球股市還能漲多久? | 產聯看全球
- 2 OpenAI深夜王炸!ChatGPT Images 2.0實測:中文穩、細節炸,設計師慌了
- 3 6000億美元估值錨定:字節跳動的“去單一化”突圍與估值重構
- 4 Tesla AI5芯片最新進展總結
- 5 連夜測了一波DeepSeek-V4,我發現它可能只剩“審美”這個短板了
- 6 熱點丨AI“瑜亮之爭”:既生OpenClaw,何生Hermes?
- 7 AI界的殺豬盤:9秒刪庫跑路,全員被封號,還繼續扣錢!
- 8 2026,人形機器人只贏了面子
- 9 DeepSeek降價90%:價格屠夫不是身份,是戰略
- 10 AI Infra產業鏈卡在哪里了?


分享













