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

AI_developer發表於2019-03-10

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

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

【機器學習】多項式迴歸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 時的結果。

【機器學習】多項式迴歸sklearn實現
也就是說當 fit_intercept 為 False 時,模型就把截距放到係數的list裡面了,不單獨拿出來。

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

執行結果

【機器學習】多項式迴歸sklearn實現
從圖中看出資料分佈在一條拋物線附近。
【機器學習】多項式迴歸sklearn實現
最終得到的模型為:
【機器學習】多項式迴歸sklearn實現
如果需要程式碼和資料集,請掃描下面二維碼關注公眾號【AI developer】,回覆【程式碼】即可免費獲取。

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

相關文章