線性回歸是資料挖掘中的基礎算法之一,從某種意義上來說,在學習函數的時候已經開始接觸線性回歸了,隻不過那時候并沒有涉及到誤差項。線性回歸的思想其實就是解一組方程,得到回歸函數,不過在出現誤差項之後,方程的解法就存在了改變,一般使用最小二乘法進行計算。
sklearn對Data Mining的各類算法已經有了較好的封裝,基本可以使用<code>fit</code>、<code>predict</code>、<code>score</code>來訓練、評價模型,并使用模型進行預測,一個簡單的例子如下:
<code>LinearRegression</code>已經實作了多元線性回歸模型,當然,也可以用來計算一進制線性模型,通過使用list[list]傳遞資料就行。下面是<code>LinearRegression</code>的具體說明。
sklearn一直秉承着簡潔為美得思想設計着估計器,執行個體化的方式很簡單,使用<code>clf = LinearRegression()</code>就可以完成,但是仍然推薦看一下幾個可能會用到的參數:
<code>fit_intercept</code>:是否存在截距,預設存在
<code>normalize</code>:标準化開關,預設關閉
還有一些參數感覺不是太有用,就不再說明了,可以去官網文檔中檢視。
其實在上面的例子中已經使用了<code>fit</code>進行回歸計算了,使用的方法也是相當的簡單。
<code>fit(X,y,sample_weight=None)</code>:<code>X</code>,<code>y</code>以矩陣的方式傳入,而<code>sample_weight</code>則是每條測試資料的權重,同樣以<code>array</code>格式傳入。
<code>predict(X)</code>:預測方法,将傳回預測值<code>y_pred</code>
<code>score(X,y,sample_weight=None)</code>:評分函數,将傳回一個小于1的得分,可能會小于0
<code>LinearRegression</code>将方程分為兩個部分存放,<code>coef_</code>存放回歸系數,<code>intercept_</code>則存放截距,是以要檢視方程,就是檢視這兩個變量的取值。
其實,多項式就是多元回歸的一個變種,隻不過是原來需要傳入的是X向量,而多項式則隻要一個x值就行。通過将x擴充為指定階數的向量,就可以使用<code>LinearRegression</code>進行回歸了。sklearn已經提供了擴充的方法——<code>sklearn.preprocessing.PolynomialFeatures</code>。利用這個類可以輕松的将x擴充為X向量,下面是它的使用方法:
經過以上處理,就可以使用<code>LinearRegression</code>進行回歸計算了。