大多数我找到的答案(包括这里)都强调了
R2和
解释方差分数之间的区别,即:残差平均值(即误差平均值)。
然而,有一个重要的问题被忽略了,那就是:为什么我需要考虑误差的平均值?
提醒一下:
R
2:是确定系数,它测量由(最小二乘)线性回归解释的变化量。
你可以从不同的角度来看待它,以评估预测的y值的目的,如下所示:
actual_y的方差 × R
2actual_y = 预测的y的方差
因此,直观地说,R
2越接近1,实际的y和预测的y将具有相同的方差(即相同的传播)。
正如先前提到的,主要区别在于误差的平均值;如果我们查看公式,就会发现这是正确的:
R<sup>2</sup> = 1 - [(Sum of Squared Residuals / n) / Variance<sub>y_actual</sub>]
Explained Variance Score = 1 - [Variance<sub>(Y<sub>predicted</sub> - Y<sub>actual</sub>)</sub> / Variance<sub>y_actual</sub>]
其中:
Variance(Y<sub>predicted</sub> - Y<sub>actual</sub>) = (Sum of Squared Residuals - <b>Mean Error</b>) / n
显然,唯一的区别是我们从第一个公式中减去了平均误差! ... 但为什么呢?
当我们将R2得分与解释方差得分进行比较时,基本上是在检查平均误差; 因此,如果R2= 解释方差得分,则意味着:平均误差= 零!
平均误差反映了我们估计器的倾向,即:有偏估计与无偏估计。
总而言之:
如果您希望拥有无偏估计器,以便我们的模型既不低估也不高估,那么您可能需要考虑考虑考虑误差平均值。
Variance(Ypredicted - Yactual) = (Sum of Squared Residuals - Mean Error) / n
不正确。应该是sum((Ypredicted - Yestimated - Mean Error)**2) / N
。请查看源代码: https://github.com/scikit-learn/scikit-learn/blob/95119c13af77c76e150b753485c662b7c52a41a2/sklearn/metrics/_regression.py#L557 - Aleksandar Jovanovic