线性回归
线性回归介绍
线性回归概念
- 线性回归(Linear regression)是利用 回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关系进行建模的一种分析方式。
注意事项:
1 为什么叫线性模型?因为求解的w,都是w的零次幂(常数项)所以叫成线性模型
2 在线性回归中,从数据中获取的规律其实就是学习权重系数w
3 某一个权重值w越大,说明这个权重的数据对房子价格影响越大
线性回归分类
-
一元线性回归
y = kx +b
目标值只与一个因变量有关系 -
多元线性回归
线性回归问题的求解
预测6号体重
已知数据:
需求:6号身高是176,请预测体重?
损失函数
需要设置一个评判标准
误差概念:用预测值y – 真实值y就是误差
损失函数:衡量每个样本预测值与真实值效果的函数
“红色直线能更好的拟合所有点”也就是误差最小,误差和最小
损失函数数学如何表达呢?又如何求损失函数的最小值呢?
当损失函数取最小值时,得到k就是最优解
想求一条直线更好的拟合所有点 y = kx + b
-
引入损失函数(衡量预测值和真实值效果) Loss(k, b)
-
通过一个优化方法,求损失函数最小值,得到K最优解
-
回归的损失函数:
-
均方误差 (Mean-Square Error, MSE)
-
平均绝对误差 (Mean Absolute Error , MAE)
-
多元线性回归的解析解-正规方程法
梯度下降算法
梯度下降算法思想
什么是梯度下降法
• 求解函数极值还有更通用的方法就是梯度下降法。顾名思义:沿着梯度下降的方向求解极小值 • 举个例子:坡度最陡下山法
- 输入:初始化位置S;每步距离为a 。输出:从位置S到达山底
- 步骤1:令初始化位置为山的任意位置S
- 步骤2:在当前位置环顾四周,如果四周都比S高返回S;否则执行步骤3
- 步骤3: 在当前位置环顾四周,寻找坡度最陡的方向,令其为x方向
- 步骤4:沿着x方向往下走,长度为a,到达新的位置S‘
- 步骤5:在S‘位置环顾四周,如果四周都比S‘高,则返回S‘。否则转到步骤3
小结:通过循环迭代的方法不断更新位置S (相当于不断更新权重参数w)
最终找到最优解 这个方法可用来求损失函数最优解, 比正规方程更通用
梯度下降过程就和下山场景类似
可微分的损失函数,代表着一座山
寻找的函数的最小值,也就是山底
正规方程和梯度下降算法的对比
回归评估方法
为什么要进行线性回归模型的评估
我们希望衡量预测值和真实值之间的差距,
会用到MAE、MSE、RMSE多种测评函数进行评价
平均绝对误差
Mean Absolute Error (MAE)
- 上面的公式中:n 为样本数量, y 为实际值, y ^ \hat{y} y^ 为预测值
- MAE 越小模型预测约准确
Sklearn 中MAE的API
from sklearn.metrics import mean_absolute_error
mean_absolute_error(y_test,y_predict)
均方误差
Mean Squared Error (MSE)
- 上面的公式中:n 为样本数量, y 为实际值, y ^ \hat{y} y^ 为预测值
- MSE 越小模型预测约准确
Sklearn 中MSE的API
from sklearn.metrics import mean_squared_error
mean_squared_error(y_test,y_predict)
均方根误差
Root Mean Squared Error (RMSE)
- 上面的公式中:n 为样本数量, y 为实际值, y ^ \hat{y} y^ 为预测值
- RMSE 越小模型预测约准确
三种指标的比较
我们绘制了一条直线 y = 2x +5 用来拟合 y = 2x + 5 + e. 这些数据点,其中e为噪声
从上图中我们发现 MAE 和 RMSE 非常接近,都表明模型的误差很低(MAE 或 RMSE 越小,误差越小!)。 但是MAE 和 RMSE 有什么区别?为什么MAE较低?
-
对比MAE 和 RMSE的公式,RMSE的计算公式中有一个平方项,因此:大的误差将被平方,因此会增加 RMSE 的值
-
可以得出结论,RMSE 会放大预测误差较大的样本对结果的影响,而 MAE 只是给出了平均误差
-
由于 RMSE 对误差的 平方和求平均 再开根号,大多数情况下RMSE>MAE
举例 (1+3)/2 = 2 ( 1 2 + 3 2 ) / 2 = 10 / 2 = 5 = 2.236 \sqrt{(1^2+3^2)/2 }= \sqrt{10/2} = \sqrt{5} = 2.236 (12+32)/2=10/2=5=2.236
我们再看下一个例子
橙色线与第一张图中的直线一样:y = 2x +5
蓝色的点为: y = y + sin(x)*exp(x/20) + e 其中 exp() 表示指数函数
我们看到对比第一张图,所有的指标都变大了,RMSE 几乎是 MAE 值的两倍,因为它对预测误差较大的点比较敏感
我们是否可以得出结论: RMSE是更好的指标? 某些情况下MAE更有优势,例如:
- 假设数据中有少数异常点偏差很大,如果此时根据 RMSE 选择线性回归模型,可能会选出过拟合的模型来
- 在这种情况下,由于数据中的异常点极少,选择具有最低 MAE 的回归模型可能更合适
- 除此之外,当两个模型计算RMSE时数据量不一致,也不适合在一起比较
今天先分享到这里
坚持分享 共同进步