R方

R方公式

在机器学习中,首先定义一个样本((x_i,y_i)),预测的y为(hat{y_i})
则有:

[ar{y} = frac{1}{n} sum_i^n y_{i} ]

[SS_{tot} = sum_i(y_i - hat{y_i})^2 ]

[SS_{reg} = sum_i(hat{y_i} - ar{y}) ]

[SS_{res} = sum_i(y_i - hat{y_i}) ]

[R^2 = 1 - frac{SS_{res}}{SS_{tot}} ]

  • 名词解释
    (SS_{tot}) 其中tot表示 total sum of squares ,总的平方和,总的平方和表示真实值的一个离散程度。
    (SS_{reg}) 其中reg表示 regression sum of squares, also called the explained sum of squares,回归平方和,又称 显示平方和;表示预测值与真实平均值之间的一个离散程度。
    (SS_{res}) 其中res表示The sum of squares of residuals, also called the residual sum of squares,残差平方和;表示真实值与预测值之间的一个离散程度。

R方解释

R方是Coefficient of Determination,也叫R Squared,一般地,在机器学习中我们用R Squared评价我们训练模型的合理性,大白话讲就是模型 模型参数啥的都搞出来了,但是这个模型到底好不好呢?
我们先选择一个简单的模型,然后让我们的训练的模型和这个简单的模型比较,如果,我们费了好大力训练的模型比这简单模型效果都差,那这个我们这个模型本选择就不好,否则,这模型可能还不错吧。举例来说,我们根据一些特征去预测房价,我们不妨直接把这些房子的平均值作为预测值(这个平均值称为 均值模型,容易得到),然后我们利用一个复杂机器学习的算法
去预测房价(训练的模型)。根据R方的公式,(SS_{res})表示我们的训练的模型的一个偏离真实值得情况,(SS_{tot})表示均值模型(我们随便选的一个简单模型)偏离真实值得情况,如果(SS_{res}) 比上(SS_{tot})比1还要大很多,说明我们训练的模型垃圾,比随便搞的一个均值模型效果都差,那还费力气图个啥,这个训练的模型本身就不合适当前的问题,若(SS_{res}) 比上(SS_{tot}) 在(0,1)之间,恩,说明我们模型至少比随便选的模型效果好,还不错。

R方含义

经过以上R方的解释,不难得到以下结论:

  1. 等于1。理想状况,该模型对所有的真值预测准确,没有偏差。泼个冷水,如果某篇文章里出现了R方=1,要么是问题过于简单没有研究价值,要么是模型过于复杂,对数据进行了过度拟合。
  2. 小于1大于0。这是常见状况,表明该模型的拟合水平比均值模型好。
  3. 等于0。该模型的拟合水平接近于均值模型。该模型没有价值。
  4. 小于0。该模型的拟合水平不如均值模型。同样,该模型更没有价值。

参考文献

[1] https://en.wikipedia.org/wiki/Coefficient_of_determination
[2] https://zhuanlan.zhihu.com/p/159000427
[3]https://www.zhihu.com/question/32021302/answer/739464752 (参考 当我沉默的时候 用户的回答)