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_
廣告

© . All rights reserved.