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