本节内容是衡量线性回归算法的指标, 导图如下:
均方误差MSE
有一个问题:这个衡量标准和m
相关。 无法进行比较 因此,我们可以很容易的进行改良我们的衡量标准,让他们都除以m
。
均方根误差RMSE
这个这个MSE还有一个问题,就是量纲不同。数据集是用万元做单位的,但是MSE确实万元的平方,显然不同量纲。这个原理跟为什么有了标准差,还要有方差是一样的,都是为了统一量纲。
所以,我们的解决方法跟方差和标准差是一样的,让MSE
去开方,得到RMSE
:
平均绝对误差MAE
另外还要一种很直白的方法,如下:
RMSE vs MAE
RMSE和MAE的量纲是一样的,都是数据中y对应的量纲。他们的区别如下:
实战
下面我们用真实的波士顿房价数据进行练习一下。
-
第一步:导入数据-
-
第二步:截取房间数量特征
-
第三步: 绘制散点图
-
第四步: 剔除干扰点
j
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x,y,shuffle =666)
复制代码
分离后:
- 第五步:调用回归算法进行预测
- 第六步:算法衡量
R Squared
前面提到的几种评价标准,其实还存在一个问题,那就是,不是采用平时的分类准确度标准,也就是,0 表示最差,1表示最好,然后算法准确度的值在(0,1)之间,我们可以很方便的比较两种算法的优劣。举个例子,算法一我用房子大小做特性,算法二我用房屋距市中心位置做特性,采用RMSE或者MAE计算后,无法衡量两个算法的优劣,因为一个是面积,一个是距离,不是同一个东西。
因此,我们需要引入一个新的指标:R Squared
。
具体为:
为什么说这个好呢?我们可以这么想:
采用
进行预测叫做Baseline Model(基类模型),它与x无关,所以它的误差肯定是比较大的。从而,我们可以对指标做这样的理解:
接下来我们对R方的公式进行简化:
接下来,我们用代码来实现一下R Square
:
然后,我们调用sklearn
封装的方法试一下:
可以看到结果是一样的~
OK,第二部分结束了,默默奖励自己一颗糖果~~