sklearn help 之線性迴歸

線性迴歸又稱最小二乘法。其中:python

預測值能夠表示爲輸入參數在各個參數下的線性組合:數組

 

最小二乘法的核心爲計算預測值與真實值向量差的2範數的平方的最小值函數

在線性迴歸中,調用linear_model模塊中類linearRegreesion類的fit方法(最小二乘法)對訓練數據進行預測得出各個參數測試

w0爲截距項,python中調用爲intercept_屬性spa

其他參數爲參數向量,python中調用爲coef_code

線性迴歸模型的例子以下:orm

 1 #導入須要的模塊
 2 import matplotlib.pyplot as plt #可視化模塊
 3 import numpy as np #矩陣處理模塊
 4 from sklearn import datasets, linear_model #數據集,線性模型
 5 from sklearn.metrics import mean_squared_error, r2_score #均方偏差,方差得分
 6 
 7 # Load the diabetes dataset 加載糖尿病數據
 8 diabetes = datasets.load_diabetes()
 9 
10 
11 # Use only one feature,導入糖尿病數據集的兩列,即表示特徵的數據集X列,和觀測值y
12 diabetes_X = diabetes.data[:, np.newaxis, 2] 
13 
14 # Split the data into training/testing sets,將全部數據分爲訓練集和測試集,後20個數據爲測試集,其他爲訓練集
15 diabetes_X_train = diabetes_X[:-20]
16 diabetes_X_test = diabetes_X[-20:]
17 
18 # Split the targets into training/testing sets 將觀測值也分爲訓練集和測試集,個數同X,分別對應
19 diabetes_y_train = diabetes.target[:-20]
20 diabetes_y_test = diabetes.target[-20:]
21 
22 # Create linear regression object 創建線性迴歸的對象
23 regr = linear_model.LinearRegression()
24 
25 # Train the model using the training sets 使用對象的fit方法對訓練集的(x,y)進行線性擬合
26 regr.fit(diabetes_X_train, diabetes_y_train)
27 
28 # Make predictions using the testing set 輸出y的預測值
29 diabetes_y_pred = regr.predict(diabetes_X_test)
30 
31 # The coefficients 輸出參數向量
32 print('Coefficients: \n', regr.coef_)
33 # The mean squared error 輸出測試集的均方偏差,並保留兩位小數
34 print("Mean squared error: %.2f"
35       % mean_squared_error(diabetes_y_test, diabetes_y_pred))
36 # Explained variance score: 1 is perfect prediction 輸出測試集的方差得分,並保留兩位小數
37 print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))
38 
39 # Plot outputs 畫出測試集的散點圖及採用預測參數得出線性迴歸線
40 plt.scatter(diabetes_X_test, diabetes_y_test,  color='black')
41 plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)
42 
43 #顯示x,y軸
44 plt.xticks(())
45 plt.yticks(())
46 #顯示plot圖
47 plt.show()

均方偏差的數學意義:反應估計量與被估計量的差別,用來指定在多目標迴歸問題中,若干個目標變量的損失或得分以什麼樣的形式平均起來對象

這個模塊在sklearn.metrics裏 eg: from sklearn.metrics import mean_squared_errorblog

mean_squared_error(y_true, y_pred,
sample_weight=None,
multioutput='uniform_average')
均方偏差爲計算y_true, y_pred 兩個向量或數組的偏差,
sample_weight:每組數據的權重向量,可理解爲各數據的機率向量
multioutput有兩個字符串形式的選擇或數組
默認爲multioutput='uniform_average'表示全部數據輸出的權重都相同,
multioutput='raw_values'表示全部迴歸目標的預測損失或預測得分都會被單獨返回一個shape是(n_output)的數組中
函數返回值爲一個非負的浮點數值或數組(每一個值對應一個單獨的目標)
方差得分:R2方法 表示用預測值估計與用均值估計的狀況下,看能好多少,

 


上式表示R2範圍在[0,1]之間,當預測值接近均值時,R2值爲0,表示預測不必,能夠直接取均值,值爲1時,表示預測值與真實值相等


 

 

相關文章
相關標籤/搜索