【機器學習】多項式迴歸sklearn實現

使用sklearn框架實現多項式迴歸。使用框架更方便,可以少寫很多代碼。

使用一個簡單的數據集來模擬,只有幾條數據。

代碼


如果不用框架,需要自己手動對數據添加高階項,有了框架就方便多了。sklearn 使用 Pipeline 函數簡化這部分預處理過程。

當 PolynomialFeatures 中的degree=1時,效果和使用 LinearRegression 相同,得到的是一個線性模型,degree=2時,是二次方程,如果是單變量的就是拋物線,雙變量的就是拋物面。以此類推。

這裏有一個 fit_intercept 參數,下面通過一個例子看一下它的作用。

當 fit_intercept 爲 True 時,coef_ 中的第一個值爲 0,intercept_ 中的值爲實際的截距。

當 fit_intercept 爲 False 時,coef_ 中的第一個值爲截距,intercept_ 中的值爲 0。

如圖,第一部分是 fit_intercept 爲 True 時的結果,第二部分是 fit_intercept 爲 False 時的結果。

也就是說當 fit_intercept 爲 False 時,模型就把截距放到係數的list裏面了,不單獨拿出來。

爲了方便,本文中我們都把 fit_intercept 設成 False。

運行結果


從圖中看出數據分佈在一條拋物線附近。

最終得到的模型爲:

如果需要代碼和數據集,請掃描下面二維碼關注公衆號【AI developer】,回覆【代碼】即可免費獲取。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章