【问题标题】:sklearn r2_score and python stats lineregress function give very different values of R^2. Why?sklearn r2_score 和 python stats lineregress 函数给出了非常不同的 R^2 值。为什么?
【发布时间】:2016-07-09 07:00:10
【问题描述】:

我使用相同的数据但不同的 python 库来计算决定系数 R^2。使用 stats library 和 sklearn 会产生不同的结果。

这种行为背后的原因是什么?

# Using stats lineregress
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
print r_value**2

0.956590054918

# Using sklearn
from sklearn.metrics import r2_score
print r2_score(x, y)

0.603933484937

【问题讨论】:

    标签: python scikit-learn scipy linear-regression


    【解决方案1】:

    linregress返回的r_valuexy的相关系数r。一般来说,平方相关系数与决定系数是不一样的。

    决定系数告诉您模型与数据的拟合程度。因此,r2_score 认为 x 是真实值,而 y 是模型预测的值。

    如果您的 xy 是真实的预测数据,那么 就是您想要的。但是,如果两者都是测量数据,您很可能需要

    有关correlation coefficientcoefficient of determination 的详细信息,请访问维基百科。

    【讨论】:

      猜你喜欢
      • 2016-11-14
      • 2018-07-27
      • 2021-06-24
      • 2014-10-20
      • 1970-01-01
      • 2014-01-09
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多