線性迴歸是數據挖掘中的基礎算法之一,從某種意義上來講,在學習函數的時候已經開始接觸線性迴歸了,只不過那時候並無涉及到偏差項。線性迴歸的思想其實就是解一組方程,獲得迴歸函數,不過在出現偏差項以後,方程的解法就存在了改變,通常使用最小二乘法進行計算。html
sklearn對Data Mining的各種算法已經有了較好的封裝,基本可使用fit
、predict
、score
來訓練、評價模型,並使用模型進行預測,一個簡單的例子以下:算法
>>> 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的得分,可能會小於0LinearRegression
將方程分爲兩個部分存放,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