使用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】,回覆【代碼】即可免費獲取。