- Scikit Learn 教程
- Scikit Learn - 首頁
- Scikit Learn - 簡介
- Scikit Learn - 建模過程
- Scikit Learn - 資料表示
- Scikit Learn - 估計器 API
- Scikit Learn - 約定
- Scikit Learn - 線性建模
- Scikit Learn - 擴充套件線性建模
- 隨機梯度下降
- Scikit Learn - 支援向量機
- Scikit Learn - 異常檢測
- Scikit Learn - K 近鄰
- Scikit Learn - KNN 學習
- 樸素貝葉斯分類
- Scikit Learn - 決策樹
- 隨機決策樹
- Scikit Learn - Boosting 方法
- Scikit Learn - 聚類方法
- 聚類效能評估
- 使用 PCA 進行降維
- Scikit Learn 有用資源
- Scikit Learn - 快速指南
- Scikit Learn - 有用資源
- Scikit Learn - 討論
Scikit Learn - 線性迴歸
它是研究因變數 (Y) 與一組給定自變數 (X) 之間關係的最佳統計模型之一。可以透過擬合最佳直線來建立這種關係。
sklearn.linear_model.LinearRegression 是用於實現線性迴歸的模組。
引數
下表包含線性迴歸模組使用的引數 -
| 序號 | 引數及描述 |
|---|---|
| 1 |
fit_intercept − 布林值,可選,預設為 True 用於計算模型的截距。如果將其設定為 false,則計算中不會使用截距。 |
| 2 |
normalize − 布林值,可選,預設為 False 如果將此引數設定為 True,則迴歸前將對迴歸量 X 進行歸一化。歸一化將透過減去均值併除以 L2 範數來完成。如果 fit_intercept = False,則會忽略此引數。 |
| 3 |
copy_X − 布林值,可選,預設為 True 預設情況下,它為 true,這意味著將複製 X。但如果將其設定為 false,則可能會覆蓋 X。 |
| 4 |
n_jobs − 整數或 None,可選(預設 = None) 它表示用於計算的作業數。 |
屬性
下表包含線性迴歸模組使用的屬性 -
| 序號 | 屬性及描述 |
|---|---|
| 1 |
coef_ − 陣列,形狀 (n_features,) 或 (n_targets, n_features) 它用於估計線性迴歸問題的係數。如果在擬合期間傳遞多個目標,它將是形狀為 (n_targets, n_features) 的二維陣列。例如 (y 二維)。另一方面,如果在擬合期間只傳遞一個目標,它將是長度為 (n_features) 的一維陣列。 |
| 2 |
Intercept_ − 陣列 這是此線性模型中的獨立項。 |
實現示例
首先,匯入所需的包 -
import numpy as np from sklearn.linear_model import LinearRegression
現在,為自變數 X 提供值 -
X = np.array([[1,1],[1,2],[2,2],[2,3]])
接下來,因變數 y 的值可以按如下方式計算 -
y = np.dot(X, np.array([1,2])) + 3
現在,按如下方式建立一個線性迴歸物件 -
regr = LinearRegression( fit_intercept = True, normalize = True, copy_X = True, n_jobs = 2 ) .fit(X,y)
使用 predict() 方法使用此線性模型進行預測,如下所示 -
regr.predict(np.array([[3,5]]))
輸出
array([16.])
示例
要獲得預測的決定係數,我們可以按如下方式使用 Score() 方法 -
regr.score(X,y)
輸出
1.0
示例
我們可以使用名為“coef”的屬性來估計係數,如下所示 -
regr.coef_
輸出
array([1., 2.])
示例
我們可以使用名為“intercept”的屬性來計算截距,即所有 X = 0 時 Y 的預期均值,如下所示 -
In [24]: regr.intercept_ Output 3.0000000000000018
實現示例的完整程式碼
import numpy as np from sklearn.linear_model import LinearRegression X = np.array([[1,1],[1,2],[2,2],[2,3]]) y = np.dot(X, np.array([1,2])) + 3 regr = LinearRegression( fit_intercept = True, normalize = True, copy_X = True, n_jobs = 2 ).fit(X,y) regr.predict(np.array([[3,5]])) regr.score(X,y) regr.coef_ regr.intercept_