一.概述
- 若输出变量与一个或多个输入变量之间存在线性关系,则对此关系的研究称为线性回归
- 特点
- 只有一个变量的情况成为单变量回归,多于一个自变量的情况叫做多元回归
- 线性模型子模块(linear_model)
- LinearRegression最小二乘法回归模型
- Ridge岭回归模型
二.用法和参数
- sklearn.linear_model.LinearRegression()
- LinearRegression.coef_:回归系数
- LinearRegression.intercept_:截距
三.线性回归经常使用的两种优化算法
- 正规方程
- 不需要选择学习率
- 一次运算得出
- 需要计算方程,时间复杂度高O(n3)
- 梯度下降法
- 需要选择学习率
- 需要迭代求解
- 特征数量较大(超过10000个)可以使用
四.注意事项
- 由于最小二乘法线性回归模型对特征项的相关性非常敏感,导致最小二乘法估计对随机误差非常敏感,可能会产生很大的方差。Ridge岭回归模型通过对系数的大小施加惩罚来避免最小二乘法线性回归模型对特征项相关性异常敏感的问题
- Ridge岭回归模型的结果几乎不受样本特征的相关性影响
- 最小二乘法线性回归模型结果的偏差比较大
五.使用场景
- 根据场景
- 房价预测
- 销售额预测
- 贷款额度预测
- 小规模数据
- 正规方程:LinearRegression
- 岭回归:Ridge
- 大规模数据
- 梯度下降法:SGDRegressor
四.实例d
-
最小二乘法线性回归模型
# 导入样本生成器 from sklearn.datasets import make_sparse_uncorrelated # 导入最小二乘法线性回归模型 from sklearn.linear_model import LinearRegression # 导入岭线性回归模型 from sklearn.linear_model import Ridge # 导入拆分训练集的API from sklearn.model_selection import train_test_split as tsplit ` from sklearn.metrics import mean_squared_error # 导入复相关系数评估函数 from sklearn.metrics import r2_score # 导入中位数绝对误差评估函数 from sklearn.metrics import median_absolute_error import matplotlib.pyplot as plt import numpy as np # 生成有4个特征维的100个样本 X, y = make_sparse_uncorrelated(n_samples=100, n_features=4) X_train, X_test, y_train, y_test = tsplit(X, y, test_size=