手把手教你学Python之波士顿房价预测(scikit-learn的应用)
目錄
1、波士頓房價預(yù)測介紹
2、線性回歸算法
3、調(diào)用scikit-learn庫實(shí)現(xiàn)房價預(yù)測
1、波士頓房價預(yù)測介紹
問題描述:波士頓房價數(shù)據(jù)集統(tǒng)計的是20世紀(jì)70年代中期波士頓郊區(qū)房價的中位數(shù),統(tǒng)計了城鎮(zhèn)人均犯罪率、不動產(chǎn)稅等共計13個指標(biāo),統(tǒng)計出房價,試圖能找到那些指標(biāo)與房價的關(guān)系。數(shù)據(jù)集中一共有506個樣本,每個樣本包含13個特征信息和實(shí)際房價,波士頓房價預(yù)測問題目標(biāo)是給定某地區(qū)的特征信息,預(yù)測該地區(qū)房價,是典型的回歸問題(房價是一個連續(xù)值)。波士頓房價數(shù)據(jù)集中主要的指標(biāo)名稱及其含義如下。
機(jī)器學(xué)習(xí)庫scikit-learn中自帶了波士頓房價數(shù)據(jù)集,可直接加載。房價預(yù)測可采用線性回歸算法。
2、線性回歸算法
線性回歸是利用數(shù)理統(tǒng)計中回歸分析,來確定兩種或兩種以上變量間相互依賴的定量關(guān)系的一種統(tǒng)計分析方法,通過屬性的線性組合進(jìn)行預(yù)測的線性模型,其目的是找到一條直線或者一個平面或者更高維的超平面,使得預(yù)測值與真實(shí)值之間的誤差最小化。
線性回歸分析中,如果只包括一個自變量和一個因變量,且二者的關(guān)系可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關(guān)系,則稱為多元線性回歸分析。線性回歸算法的公式如下,xi表示樣本,可以是多維的,w為系數(shù)矩陣,b為偏置。目標(biāo)是學(xué)習(xí)w和b兩個參數(shù),使得計算結(jié)果和真實(shí)結(jié)果之間的誤差最小。
3、調(diào)用scikit-learn庫實(shí)現(xiàn)房價預(yù)測
直接調(diào)用scikit-learn中的相關(guān)函數(shù),實(shí)現(xiàn)波士頓房價簡單預(yù)測的代碼如下,主要步驟包括:
這里主要是給大家演示了下機(jī)器學(xué)習(xí)庫中相關(guān)函數(shù)的調(diào)用,并沒有對數(shù)據(jù)進(jìn)行分析,接下來通過數(shù)據(jù)可視化技術(shù)來分析單個指標(biāo)與房價之間的關(guān)系。關(guān)鍵代碼如下。
??? 各個指標(biāo)與房價之間的關(guān)系可視化效果如下:
通過可視化圖表分析,可以看到不同特征的取值范圍有較大差異,有些取值范圍從0到1,有些從1到100,還有0到400等等,為了消除不同量綱的影響,可對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。一般采用將數(shù)據(jù)減去數(shù)據(jù)組的平均數(shù)再除以標(biāo)準(zhǔn)差。z = (x - u) / s (u表示均值,s表示標(biāo)準(zhǔn)差)
此外,通過圖表效果可知,部分指標(biāo)與房價之間存在明顯的線性關(guān)系(例如RM、LSTAT等),而有些指標(biāo)與房價之間的關(guān)系則不那么明顯(例如CHAS、B等)。可調(diào)用機(jī)器學(xué)習(xí)庫中相關(guān)方法獲取最相關(guān)的特征,關(guān)鍵代碼如下:(首先對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,然后獲取最相關(guān)的3個特征)
選擇最相關(guān)的三個特征,結(jié)果為: RM、LSTAT、PTRATIO
最后使用最相關(guān)的特征數(shù)據(jù)進(jìn)行房價的預(yù)測,關(guān)鍵代碼如下:
??? 將預(yù)測結(jié)果和真實(shí)結(jié)果畫在同一個圖上,如下圖所示,可以清楚的看到它們之間的關(guān)系。
???
思考:通過預(yù)測值和真實(shí)值對比,可知有一些異常點(diǎn),如何去除這些異常點(diǎn)?例如刪除房價為50的樣本。
相關(guān)代碼可關(guān)注微信公眾號:手把手教你學(xué)編程,回復(fù) boston 獲取,詳細(xì)的視頻講解可查看?CSDN學(xué)院?里的手把手教你學(xué)Python系列視頻:https://edu.csdn.net/lecturer/5686。???歡迎加入QQ群一起學(xué)習(xí)交流:858228002?。
總結(jié)
以上是生活随笔為你收集整理的手把手教你学Python之波士顿房价预测(scikit-learn的应用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机增加一块新硬盘
- 下一篇: Unity刘海屏幕适配