【问题标题】:Negative R2 on training data for linear regression线性回归训练数据的负 R2
【发布时间】:2015-05-28 12:56:29
【问题描述】:

使用 scikit-learn 拟合一维模型,没有截距:

lm = sklearn.linear_models.LinearRegression(fit_intercept=False).
lm.fit(x, y)

使用训练数据评估分数时,我得到一个负数 .score()。

lm.score(x, y)

 -0.00256

为什么? R2 分数是否将我的无截距模型的方差与具有截距的模型的方差进行比较?

(请注意,这是我用来拟合模型的相同数据。)

【问题讨论】:

  • this question on crossvalidated 重复。由于您不适合拦截,请注意那里的第二个答案
  • 谢谢,但是唯一的限制是不要使用拦截。 scikit-learn 是否会将我的模型(没有截距)与带有或不带有截距的“水平线”进行比较?
  • 在 R2 计算中,模型与y 的平均值进行比较,可以绘制为水平线。如果没有关于您的数据集和问题性质的任何信息,很难为您提供更多帮助。例如,为什么您确定截距为零?

标签: scikit-learn linear-regression


【解决方案1】:

来自Wikipedia article on R^2

R2 的计算定义可以产生的重要情况 负值,取决于所使用的定义,出现 [...] 其中 线性回归不包括截距

(强调我的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多