第1关:线性回归算法思想
第2关:动手实现线性回归
线性回归算法流程
我们最终的目的是通过训练出来的线性回归模型对测试集数据进行预测,算法实现流程如下:
将x0=1加入训练数据
使用正规方程解求得参数
将x0=1加入测试数据
对测试集数据进行预测
第3关:衡量线性回归的性能指标
相关知识
为了完成本关任务,你需要掌握:
- 回归问题的评估指标;
- 均方误差
(MSE)
; - 均方根误差
(RMSE)
; - 平均绝对误差
(MAE)
; R-Squared
。
回归问题的评估指标
大家知道已经,机器学习通常都是将训练集上的数据对模型进行训练,然后再将测试集上的数据给训练好的模型进行预测,最后根据模型性能的好坏选择模型,对于分类问题,大家很容易想到,可以使用正确率来评估模型的性能,那么回归问题可以使用哪些指标用来评估呢?
MSE
MSE (Mean Squared Error)
叫做均方误差,公式如下:
m1i=1∑m(yi−pi)2
其中 yi
表示第 i
个样本的真实标签,pi
表示模型对第 i
个样本的预测标签。线性回归的目的就是让损失函数最小。那么模型训练出来了,我们在测试集上用损失函数来评估模型就行了。
RMSE
RMSE(Root Mean Squard Error)
均方根误差,公式如下:
m1i=1∑m(yi−pi)2
RMSE
其实就是 MSE
开个根号。有什么意义呢?其实实质是一样的。只不过用于数据更好的描述。
例如:要做房价预测,每平方是万元,我们预测结果也是万元。那么差值的平方单位应该是千万级别的。那我们不太好描述自己做的模型效果。怎么说呢?我们的模型误差是多少千万?于是干脆就开个根号就好了。我们误差的结果就跟我们数据是一个级别的了,在描述模型的时候就说,我们模型的误差是多少万元。
MAE
MAE
(平均绝对误差),公式如下:
m1i=1∑m∣yi−pi∣
MAE
虽然不作为损失函数,确是一个非常直观的评估指标,它表示每个样本的预测标签值与真实标签值的L1
距离。
R-Squared
上面的几种衡量标准针对不同的模型会有不同的值。比如说预测房价 那么误差单位就是万元。数子可能是 3
,4
,5
之类的。那么预测身高就可能是 0.1
,0.6
之类的。没有什么可读性,到底多少才算好呢?不知道,那要根据模型的应用场景来。 看看分类算法的衡量标准就是正确率,而正确率又在 0~1
之间,最高百分之百。最低 0
。那么线性回归有没有这样的衡量标准呢? R-Squared
就是这么一个指标,公式如下:
R2=1−∑i(ymeani−yi)2∑i(pi−yi)2
其中 ymean
表示所有测试样本标签值的均值。为什么这个指标会有刚刚我们提到的性能呢?我们分析下公式:
其实分子表示的是模型预测时产生的误差,分母表示的是对任意样本都预测为所有标签均值时产生的误差,由此可知:
-
R2≤1
,当我们的模型不犯任何错误时,取最大值1
。 -
当我们的模型性能跟基模型性能相同时,取
0
。 -
如果为负数,则说明我们训练出来的模型还不如基准模型,此时,很有可能我们的数据不存在任何线性关系。
ps:(基准模型指的随机瞎猜。)