线性回归算法(二)

505 阅读2分钟

本节内容是衡量线性回归算法的指标, 导图如下:

均方误差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,第二部分结束了,默默奖励自己一颗糖果~~