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_

