目录
线性回归
线性模型
通过属性的线性组合来进行预测的函数:
最终的目的是找到最小损失对应的w值
损失函数
两种线性回归算法
最小二乘法正规方程
梯度下降法
- 梯度下降法为迭代算法
- 梯度下降法得到有可能是局部最小值,而且初始值的选取对最终的结果影响很大
- α为学习速率(步长),需要手动指定
- 梯度一般为正,向下寻找需要加负号
sklearn线性回归API
线性回归前往往需要对数据进行标准化
正规方程API
sklearn.linear_model.LinearRegression()
- coef_:回归系数
梯度下降法API
sklearn.linear_model.SGDRegressor()
- coef_:回归系数
回归性能评估
采用均方误差(Mean Squared Error MSE)评价机制
回归评估API
mean_squared_error(y_true, y_pred)
- y_true:真实值
- y_pred:预测值
- return:浮点数结果
注:真实值、预测值为标准化之前的值
梯度下降法与正规方程的对比
梯度下降法:
- 需要选择学习率α
- 需要多次迭代
- 当特征数量n较大时也能比较好用
- 适用于各种类型的模型
正规方程:
- 不需要选择学习率 α
- 一次运算得出
- 需要计算矩阵逆,矩阵逆的计算时间复杂度为O(n3)
过拟合和欠拟合
过拟合:在训练数据上能够获得更好的拟合,但是在训练数据外的数据集上却不能很好地拟合数据,此时认为出现了过拟合的现象。(模型过于复杂)
欠拟合:在训练数据上不能获得更好的拟合, 但是在训练数据外的数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)
欠拟合原因以及解决办法
原因:学习到数据的特征过少
解决办法:增加数据的特征数量
过拟合原因以及解决办法
原因:原始特征过多,存在一些嘈杂特征, 模型过于复杂是因为模型尝试去兼顾各个测试数据点
解决办法:
- 进行特征选择,消除关联性大的特征(困难)
- 交叉验证(让所有数据的有过训练)
- 正则化
L2正则化
作用:可以使w的每个元素都很小,都接近于0
优点:越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象
带有正则化的线性回归 - 岭回归
sklearn.linear_model.Ridge(alpha=1.0)
- alpha:正则化力度
- coef_:回归系数
LinearRegression与Ridge对比
- 回归得到的回归系数更符合实际,更可靠
- 让估计参数的波动范围变小,变的更稳定
- 在存在病态数据偏多的研究中有较大的实用价值