使用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。