【问题标题】:How is the R2 value in Scikit learn calculated?Scikit learn中的R2值是怎么计算的?
【发布时间】:2014-06-12 02:38:00
【问题描述】:

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

“与大多数其他分数不同,R² 分数可能为负数(它不需要 实际上是数量 R) 的平方。”

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

【问题讨论】:

标签: python machine-learning statistics scikit-learn


【解决方案1】:

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

【讨论】:

  • 这是有道理的。非常感谢。
  • @eickenberg,这是一个很棒的解释。但是,您能否为您的陈述举出任何示例“在机器学习中,您会根据看不见的数据评估您的分数,这可能会导致结果超出 [0,1]”?
【解决方案2】:

由于 R^2 = 1 - RSS/TSS,RSS/TSS > 1 的唯一情况发生在我们的模型甚至比假设的最差模型(即绝对均值模型)更差的情况下。

这里 RSS = 实际值 (yi) 和预测值 (yi^) 之间的差平方和 和 TSS = 实际值 (yi) 和平均值(应用回归之前)之间差异的平方和。 因此,您可以想象 TSS 代表最佳(实际)模型,而 RSS 介于我们的最佳模型和最差绝对平均模型之间,在这种情况下,我们将得到 RSS/TSS TSS(因为实际观察值与平均值之间的差异

在此处查看视觉表示以获得更好的直觉:https://ragrawal.wordpress.com/2017/05/06/intuition-behind-r2-and-other-regression-evaluation-metrics/

【讨论】:

猜你喜欢
  • 2014-07-28
  • 2021-05-29
  • 2021-05-06
  • 2016-09-23
  • 2016-12-31
  • 2018-12-04
  • 1970-01-01
  • 2021-02-10
  • 2017-05-18
相关资源
最近更新 更多