訂閱
糾錯(cuò)
加入自媒體

使用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型預(yù)測汽車價(jià)格

目標(biāo)

在本文中,我們將對(duì)二手車定價(jià)做出預(yù)測。我們將使用不同的架構(gòu)開發(fā)多種機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型。最后,我們將比較機(jī)器學(xué)習(xí)模型與深度學(xué)習(xí)模型的性能。

使用的數(shù)據(jù)

在這種情況下,我們使用了 kaggle 數(shù)據(jù)集。

有 17 個(gè)不同的變量:

IDPrice: 汽車價(jià)格(目標(biāo)欄)LevyManufacturerModelProd. yearCategoryLeather interiorFuel typeEngine volumeMileageCylindersGear box typeDrive wheelsDoorsWheelColorAirbags

要獲取數(shù)據(jù)并將其用于你的調(diào)查,請(qǐng)單擊以下鏈接 -

https://www.kaggle.com/datasets/deepcontractor/car-price-prediction-challenge

數(shù)據(jù)檢查

我們將在這部分查看數(shù)據(jù)。首先,讓我們看看數(shù)據(jù)中的列及其數(shù)據(jù)類型,以及任何缺失值。

數(shù)據(jù)集的信息

我們可以看到數(shù)據(jù)集有 19237 行 18 列。

有五個(gè)數(shù)字列和十三個(gè)類別列。我們可以立即觀察到數(shù)據(jù)中沒有缺失數(shù)字。

“Price”列/特征將是項(xiàng)目的目標(biāo)列或相關(guān)特征。

讓我們看看數(shù)據(jù)分布。

數(shù)據(jù)準(zhǔn)備

在這里,我們將清理數(shù)據(jù)并為模型訓(xùn)練做準(zhǔn)備。

“ID”列

我們刪除“ID”列,因?yàn)樗c汽車價(jià)格預(yù)測無關(guān)。

Levy 列

檢查'Levy'列后,我們發(fā)現(xiàn)它確實(shí)包含缺失值,但它們?cè)跀?shù)據(jù)中表示為'-',這就是為什么我們無法在數(shù)據(jù)中更早地捕獲缺失值.

在這種情況下,如果沒有“Levy”,我們會(huì)將“Levy”列中的“-”替換為“0”。我們也可以用“均值”或“中值”來推斷它,但你必須做出該決定。

Mileage 列

這里的“Mileage”列表示汽車行駛了多少公里。每次閱讀后,“公里”都寫在列中。我們將刪除它。

**“Engine Volume”列 **

與“Engine Volume”列一起,還寫入了發(fā)動(dòng)機(jī)的“種類”(渦輪增壓或非渦輪增壓)。我們將添加一個(gè)新列來顯示“引擎”的“類型”。

處理“離群值”

我們將檢查數(shù)值特征。以下是確定異常值的每個(gè)數(shù)值特征的快照

Levy:

Engine volume:

Mileage:

Cylinders:

Airbags:

離群值可以在 ‘Levy’, ‘Engine volume’, ‘Mileage’和“Cylinders”列中找到。我們將使用分位數(shù)間距 (IQR) 方法來消除這些異常值。

在統(tǒng)計(jì)學(xué)中,四分位數(shù)間距 (IQR) 是基于將數(shù)據(jù)集劃分為四分位數(shù)的可變性度量。IQR 是上四分位數(shù)和下四分位數(shù)之間的差值。它是一種不受異常值影響的穩(wěn)健的傳播度量。IQR 通常用于識(shí)別數(shù)據(jù)集中的異常值。

要計(jì)算 IQR,首先需要計(jì)算數(shù)據(jù)集的第 25 個(gè)和第 75 個(gè)百分位數(shù),然后通過從第 75 個(gè)百分位減去第 25 個(gè)百分位來計(jì)算 IQR。

使用 IQR 方法去除異常值后

我們可以觀察到現(xiàn)在特征中沒有異常值。

開發(fā)額外的特征

“Mileage”和“Engine Volume”都是連續(xù)變量。在運(yùn)行回歸時(shí),我發(fā)現(xiàn)對(duì)這些變量進(jìn)行分箱有助于提高模型的性能。因此,我正在為這些特征/列開發(fā)“Bin”特征。

用于開發(fā)額外特征的代碼截圖

處理分類特征

處理機(jī)器學(xué)習(xí)中的分類特征是一項(xiàng)重要任務(wù),因?yàn)榇蠖鄶?shù)機(jī)器學(xué)習(xí)算法都是為處理數(shù)值數(shù)據(jù)而設(shè)計(jì)的。分類特征是表示為字符串的非數(shù)值數(shù)據(jù),例如顏色、國家或食物類型。為了在機(jī)器學(xué)習(xí)模型中使用這些特征,需要將它們轉(zhuǎn)化為數(shù)值數(shù)據(jù)。

有幾種方法可以處理 ML 中的分類特征。我使用 Ordinal Encoder 來處理分類列

檢查相關(guān)性

數(shù)據(jù)顯示,特征沒有高度關(guān)聯(lián)。然而,我們可以看到,在對(duì)“價(jià)格”列進(jìn)行對(duì)數(shù)轉(zhuǎn)換后,與一些屬性的相關(guān)性上升了,這是一個(gè)積極的事情。我們將利用對(duì)數(shù)轉(zhuǎn)換的“價(jià)格”來訓(xùn)練模型。

數(shù)據(jù)拆分和縮放

在數(shù)據(jù)上,我們將其分為 80-20。80% 的數(shù)據(jù)將用于訓(xùn)練,其余 20% 將用于測試。

我們將另外縮放數(shù)據(jù),因?yàn)椴⒎菙?shù)據(jù)中的所有特征值都具有相同的比例,并且具有不同的比例可能會(huì)導(dǎo)致模型性能不佳。

模型搭建

作為機(jī)器學(xué)習(xí)模型,我們創(chuàng)建了 LinearRegression、XGBoost 和 RandomForest,以及兩種深度學(xué)習(xí)模型,一種是小網(wǎng)絡(luò),另一種是大網(wǎng)絡(luò)。

我們開發(fā)了 LinearRegression、XGBoost 和 RandomForest 基礎(chǔ)模型,所以就不多說了,但是我們可以看到模型總結(jié)以及它們?nèi)绾闻c我們構(gòu)建的深度學(xué)習(xí)模型收斂。

深度學(xué)習(xí)模型——小網(wǎng)絡(luò)模型總結(jié)

深度學(xué)習(xí)——小型網(wǎng)絡(luò)模型摘要快照

深度學(xué)習(xí)模型——小型網(wǎng)絡(luò)訓(xùn)練和驗(yàn)證損失

深度學(xué)習(xí)模型——大型網(wǎng)絡(luò)

深度學(xué)習(xí)大網(wǎng)絡(luò)模型總結(jié)

深度學(xué)習(xí)——大型網(wǎng)絡(luò)訓(xùn)練和驗(yàn)證損失

模型效率:

我們使用性能矩陣 Mean_Squared_Error、Mean_Absolute_Error、Mean_Absolute_Percentage_Error 和 Mean_Squared_Log_Error 評(píng)估模型,結(jié)果如下所示。

我們應(yīng)用于數(shù)據(jù)集的所有模型的摘要

我們可以看到深度學(xué)習(xí)模型優(yōu)于機(jī)器學(xué)習(xí)模型。RandomForest 優(yōu)于所有機(jī)器學(xué)習(xí)模型。

結(jié)果

隨機(jī)森林模型的可視化

從圖中可以看出,模型的性能非常好,性能矩陣證明了這一點(diǎn)。

特征重要性

特征重要性是機(jī)器學(xué)習(xí) (ML) 中的一個(gè)重要概念,因?yàn)樗兄谧R(shí)別數(shù)據(jù)集中最相關(guān)的特征以預(yù)測目標(biāo)變量。它允許建模者了解每個(gè)特征在預(yù)測目標(biāo)變量中的貢獻(xiàn),并有助于識(shí)別對(duì)模型性能無用甚至有害的特征。

下面我們使用 SHAP 繪制了隨機(jī)森林模型的特征重要性:

所有變量的特征重要性快照

結(jié)論

在本文中,我們嘗試使用汽車數(shù)據(jù)中提供的眾多參數(shù)來預(yù)測汽車價(jià)格。我們構(gòu)建了機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型來預(yù)測汽車價(jià)格,并發(fā)現(xiàn)基于機(jī)器學(xué)習(xí)的模型在這些數(shù)據(jù)上的表現(xiàn)優(yōu)于基于深度學(xué)習(xí)的模型。

筆記本參考和代碼:

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

       原文標(biāo)題 : 使用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型預(yù)測汽車價(jià)格

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)