Python人工智能之波士頓房價數(shù)據(jù)分析
【人工智能項目】機器學習熱門項目-波士頓房價

1.數(shù)據(jù)概覽分析
1.1 數(shù)據(jù)概覽
本次提供:
- train.csv,訓練集;
- test.csv,測試集;
- submission.csv 真實房價文件;
訓練集404行數(shù)據(jù),14列,每行數(shù)據(jù)表示房屋以及房屋周圍的詳細信息,已給出對應(yīng)的自住房平均房價。要求預(yù)測102條測試數(shù)據(jù)的房價。
1.2 數(shù)據(jù)分析
通過學習房屋以及房屋周圍的詳細信息,其中包含城鎮(zhèn)犯罪率,一氧化氮濃度,住宅平均房間數(shù),到中心區(qū)域的加權(quán)距離以及自住房平均房價等等,訓練模型,通過某個地區(qū)的房屋以及房屋周圍的詳細信息,預(yù)測該地區(qū)的自住房平均房價。
回歸問題,提交測試集每條數(shù)據(jù)對應(yīng)的自住房平均房價。評估指標為均方誤差mse。
2. 項目總體思路
2.1 數(shù)據(jù)讀取
數(shù)據(jù)集:波士頓房間訓練集.csv (404條數(shù)據(jù))
數(shù)據(jù)集字段如下:
CRIM:城鎮(zhèn)人均犯罪率。
ZN:住宅用地超過 25000 sq.ft. 的比例。
INDUS:城鎮(zhèn)非零售商用土地的比例。
CHAS:查理斯河空變量(如果邊界是河流,則為1;否則為0)。
NOX:一氧化氮濃度。
RM:住宅平均房間數(shù)。
AGE:1940 年之前建成的自用房屋比例。
DIS:到波士頓五個中心區(qū)域的加權(quán)距離。
RAD:輻射性公路的接近指數(shù)。
TAX:每 10000 美元的全值財產(chǎn)稅率。
PTRATIO:城鎮(zhèn)師生比例。
B:1000(Bk-0.63)^ 2,其中 Bk 指代城鎮(zhèn)中黑人的比例。
LSTAT:人口中地位低下者的比例。
MEDV:自住房的平均房價,以千美元計。

2.2 模型預(yù)處理
(1)數(shù)據(jù)離群點處理
首先對訓練集進行拆分為子訓練集與子測試集,利用train_data.sort_values對訓練集進行排序,依次刪除每個特征對應(yīng)的離群樣本,利用子訓練集與子測試集對模型進行訓練與測試并確定該特征下所需刪除樣本的最佳個數(shù)。

(2)數(shù)據(jù)歸一化處理
利用sklearn.preprocessing. StandardScaler對數(shù)據(jù)集與標簽分別進行標準化處理。

2.3. 特征工程
利用隨機森林特征選擇算法剔除不敏感特征。

2.4. 模型選擇
使用GradientBoostingRegressor集成回歸模型。
Gradient Boosting 在迭代的時候選擇梯度下降的方向來保證最后的結(jié)果最好。損失函數(shù)用來描述模型的“靠譜”程度,假設(shè)模型沒有過擬合,損失函數(shù)越大,模型的錯誤率越高
如果我們的模型能夠讓損失函數(shù)持續(xù)的下降,則說明我們的模型在不停的改進,而最好的方式就是讓損失函數(shù)在其梯度方向上下降。


2.5. 模型評價
采用均方誤差(MSE)評分標準,MSE: Mean Squared Error 。均方誤差是指參數(shù)估計值與參數(shù)真值之差平方的期望值;
MSE可以評價數(shù)據(jù)的變化程度,MSE的值越小,說明預(yù)測模型描述實驗數(shù)據(jù)具有更好的精確度。計算公式如下:

其在測試集上的MSE值為:

2.6. 模型調(diào)參
對n_ n_estimators的參數(shù)進行調(diào)參:

3. 項目總結(jié)
通過多次實驗,我們目前得到的最優(yōu)解為8.18左右。在處理小數(shù)據(jù)集出現(xiàn)過擬合時,首先應(yīng)當考慮減小模型或增加數(shù)據(jù)集。由于本次實驗是通過大量訓練取最優(yōu)的辦法均使用缺省參數(shù),對超參數(shù)進一步調(diào)優(yōu)也許可更進一步。

到此這篇關(guān)于Python人工智能之波士頓房價數(shù)據(jù)分析的文章就介紹到這了,更多相關(guān)Python 波士頓房價內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
修復(fù)CentOS7升級Python到3.6版本后yum不能正確使用的解決方法
這篇文章主要介紹了修復(fù)CentOS7升級Python到3.6版本后yum不能使用的問題,本文給大家?guī)砹私鉀Q方法,需要的朋友可以參考下2018-01-01
基于Python實現(xiàn)一個簡單的學生管理系統(tǒng)
這篇文章主要為大家詳細介紹了如何利用python實現(xiàn)簡單的學生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-12-12
Python使用fliecmp實現(xiàn)比較文件的操作
對于文件的比較一般有幾種,比如比較文件的內(nèi)容,比較文件的大小,或者直接對比整個項目文件,本文就詳細的介紹這些方法的實現(xiàn),感興趣的可以了解一下2021-06-06
Tkinter使用Progressbar創(chuàng)建和管理進度條的操作代碼
Progressbar是Tkinter庫中的一個小部件,用于創(chuàng)建和管理進度條,這篇文章主要介紹了Tkinter使用Progressbar創(chuàng)建和管理進度條,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-07-07
Python字典取值全攻略之高效、簡潔地獲取字典值的多種技巧
這篇文章主要給大家介紹了關(guān)于Python字典取值全攻略之高效、簡潔地獲取字典值的多種技巧,dictionary(字典)是除列表以外Python之中最靈活的數(shù)據(jù)類型,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-12-12
Python實現(xiàn)本地緩存的幾種方法小結(jié)
緩存是一種常見的技術(shù),用于存儲重復(fù)請求的結(jié)果,Python 作為一種靈活的編程語言,提供了多種實現(xiàn)本地緩存的方法,本文將探討 Python 中實現(xiàn)本地緩存的幾種策略,并提供具體的代碼示例,感興趣的小伙伴跟著小編一起來看看吧2024-07-07

