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.