如何计算Scikit learn中的R2值?

2024-05-17 06:32:56 发布

您现在位置:Python中文网/ 问答频道 /正文

scikit learn(metrics.r2_score())返回的R^2值可以为负。docs说:

"Unlike most other scores, R² score may be negative (it need not actually be the square of a quantity R)."

然而R^2上的wikipedia article没有提到R(非平方)量。也许它使用绝对差而不是平方差。我真的不知道


Tags: docsmostitbescikitneedlearnmay
2条回答

scikit learn中的R^2the wikipedia article on the coefficient of determination(grep表示“最一般的定义”)中描述的基本相同。它是1 - residual sum of square / total sum of squares

经典统计设置与通常使用机器学习的方法之间的最大区别在于,在机器学习中,您可以对未显示的数据评估分数,这可能导致超出[0,1]范围的结果。如果您将R^2应用于您用来适应模型的相同数据,它将位于[0, 1]

另请参见very similar question

由于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/

相关问题 更多 >