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