Scikit Learn - 线性回归

它是研究因变量 (Y) 与给定一组自变量 (X) 之间关系的最佳统计模型之一。这种关系可以通过拟合最佳直线来建立。

sklearn.linear_model.LinearRegression 是用于实现线性回归的模块。

参数

下表列出了 线性回归 模块 − 使用的参数。

Sr.No 参数及说明
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 − int 或 None,可选(默认值 = None)

表示用于计算的作业数量。

属性

下表包含线性回归模块 − 使用的属性。

Sr.No 属性 &描述
1

coef_ − 数组,形状为 (n_features,) 或 (n_targets, n_features)

用于估计线性回归问题的系数。如果在拟合过程中传递了多个目标,它将是一个形状为 (n_targets, n_features) 的二维数组。例如 (y 2D)。另一方面,如果在拟合过程中只传递了一个目标,它将是一个长度为 (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_