sklearn學習筆記之簡單線性迴歸

簡單線性迴歸

線性迴歸是數據挖掘中的基礎算法之一,從某種意義上來講,在學習函數的時候已經開始接觸線性迴歸了,只不過那時候並無涉及到偏差項。線性迴歸的思想其實就是解一組方程,獲得迴歸函數,不過在出現偏差項以後,方程的解法就存在了改變,通常使用最小二乘法進行計算。html

使用sklearn.linear_model.LinearRegression進行線性迴歸

sklearn對Data Mining的各種算法已經有了較好的封裝,基本可使用fitpredictscore來訓練、評價模型,並使用模型進行預測,一個簡單的例子以下:算法

>>> from sklearn import linear_model
>>> clf = linear_model.LinearRegression()
>>> X = [[0,0],[1,1],[2,2]]
>>> y = [0,1,2]
>>> clf.fit(X,y)
>>> print(clf.coef_)
[ 0.5 0.5]
>>> print(clf.intercept_)
1.11022302463e-16

LinearRegression已經實現了多元線性迴歸模型,固然,也能夠用來計算一元線性模型,經過使用list[list]傳遞數據就行。下面是LinearRegression的具體說明。函數

使用方法

實例化

sklearn一直秉承着簡潔爲美得思想設計着估計器,實例化的方式很簡單,使用clf = LinearRegression()就能夠完成,可是仍然推薦看一下幾個可能會用到的參數:學習

  • fit_intercept:是否存在截距,默認存在
  • normalize:標準化開關,默認關閉

還有一些參數感受不是太有用,就再也不說明了,能夠去官網文檔中查看。測試

迴歸spa

其實在上面的例子中已經使用了fit進行迴歸計算了,使用的方法也是至關的簡單。設計

  • fit(X,y,sample_weight=None)X,y以矩陣的方式傳入,而sample_weight則是每條測試數據的權重,一樣以array格式傳入。
  • predict(X):預測方法,將返回預測值y_pred
  • score(X,y,sample_weight=None):評分函數,將返回一個小於1的得分,可能會小於0

方程

LinearRegression將方程分爲兩個部分存放,coef_存放回歸係數,intercept_則存放截距,所以要查看方程,就是查看這兩個變量的取值。code

多項式迴歸

其實,多項式就是多元迴歸的一個變種,只不過是原來須要傳入的是X向量,而多項式則只要一個x值就行。經過將x擴展爲指定階數的向量,就可使用LinearRegression進行迴歸了。sklearn已經提供了擴展的方法——sklearn.preprocessing.PolynomialFeatures。利用這個類能夠輕鬆的將x擴展爲X向量,下面是它的使用方法:orm

>>> from sklearn.preprocessing import PolynomialFeatures
>>> X_train = [[1],[2],[3],[4]]
>>> quadratic_featurizer = PolynomialFeatures(degree=2)
>>> X_train_quadratic = quadratic_featurizer.fit_transform(X_train)
>>> print(X_train_quadratic)
[[ 1  1  1]
 [ 1  2  4]
 [ 1  3  9]
 [ 1  4 16]]

通過以上處理,就可使用LinearRegression進行迴歸計算了htm

相關文章
相關標籤/搜索