线性回归模型的 R2 分数高得离谱

Posted

技术标签:

【中文标题】线性回归模型的 R2 分数高得离谱【英文标题】:Ridiculously high R2 score for linear regression model [duplicate] 【发布时间】:2021-04-16 07:41:57 【问题描述】:

我在一个有 88 列的数据集上运行线性回归模型。它们中的大多数是二进制的 - 仅包含 1 或 0。其余的具有数据类型 float64 的数值。当我对此运行线性回归模型时,我得到高得离谱的负 r2_scores。 我无法理解为什么必须如此。我能看到的唯一区别是,如果我将浮点列的数据类型更改为 int,r2 分数会下降一个数量级(仍然很高)。 有没有人遇到过类似的问题?

 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=0)
 model = LinearRegression(fit_intercept = True)
 model.fit(X_train,y_train)
 pred_Y=model.predict(X_test)
 r2=r2_score(y_test,pred_Y)
 print(r2)

r2=-14440.99304389795

【问题讨论】:

如果不查看您的数据和其余代码,任何人都无法找出问题所在。请确保问题是可重现的。 谢谢MZ,我觉得确实是这个问题! 【参考方案1】:

MZ给出的答案是对问题的正确解释。然而,玩弄随机状态几次为我解决了这个问题!谢谢!

【讨论】:

以上是关于线性回归模型的 R2 分数高得离谱的主要内容,如果未能解决你的问题,请参考以下文章

线性回归模型 为啥要求随机误差的均值为0

线性回归训练数据的负R2

R 与 scikit-learn 中用于线性回归 R2 的交叉验证

什么是线性回归方程?

具有交叉验证的 Sklearn 线性回归返回 NA 准确度分数

在 Scikit-Learn 中获得线性回归的大交叉验证分数