scikit learn(metrics.r2_score()
)返回的R^2值可以为负数。医生说:
"与大多数其他分数不同,R²分数可能为负(无需实际上是量R的平方)。"
然而,维基百科关于R^2的文章没有提到R(非平方)量。也许它使用绝对差而不是平方差。我真的不知道
scikit-learn中的R^2
与维基百科中关于决定系数的文章中描述的基本相同(grep表示"最通用的定义")。它是1 - residual sum of square / total sum of squares
。
经典的统计设置和你通常尝试使用机器学习的方法之间的最大区别是,在机器学习中,你根据看不见的数据来评估你的分数,这可能会导致[0,1]
之外的结果。如果您将R^2
应用于您用于拟合模型的相同数据,则它将位于[0, 1]
内
另请参阅这个非常相似的问题
由于R^2=1-RSS/TSS,当我们的模型甚至比假设的最差模型(即绝对平均模型)更差时,才会出现RSS/TSS>1的唯一情况。
这里RSS=实际值(yi)和预测值(yi^)之间的差的平方和TSS=实际值(yi)和平均值(应用回归之前)之间的差的平方和。因此,您可以想象TSS代表最佳(实际)模型,RSS介于我们的最佳模型和最差绝对均值模型之间,在这种情况下,我们将得到RSS/TSS<1.如果我们的模型甚至比最差均值模型更差,那么在这种情况下RSS>TSS(由于实际观测值和均值之间的差异<预测值和实际观测值之间的差异)。
查看此处以获得更好的视觉表现直觉:https://ragrawal.wordpress.com/2017/05/06/intuition-behind-r2-and-other-regression-evaluation-metrics/