regr.score 和 r2_score 给出不同的值

Posted

技术标签:

【中文标题】regr.score 和 r2_score 给出不同的值【英文标题】:regr.score and r2_score give different values 【发布时间】:2016-11-14 11:17:35 【问题描述】:

我正在使用 sklearn.linear_model.LogisticRegression 并使用它计算 R^2 值,如下所示

regr.score(xtest, ytest)

我得到 0.65 分

现在,为了比较,我使用了 sklearn.metrics.r2_score¶ 提供的指标,我计算分数如下

r2_score(ytest,regr.predict(xtest))

我得到-0.54的分数

根据文档 regr.score 返回“R^2 of self.predict(X) wrt.y”。这就是我使用指标计算 R^2 所做的,但我不明白为什么这些值如此不同?

谁能帮我解释一下?

更新:按照建议,我在 r2_score 中切换了变量 ytest,regr.predict(xtest),但在逻辑回归中,我仍然得到不同的值。所以我更新了问题。

【问题讨论】:

应该是r2_score(ytest, regr.predict(xtest))(实际然后预测) 【参考方案1】:

您得到不同值的原因是因为LogisticRegression 类中的score 函数默认计算accuracy score。准确度分数只是正确预测的数量除以预测的总数。另一方面,R2 分数完全不同,您可以阅读更多关于它的数学知识here。

希望有帮助!

【讨论】:

谢谢,我以为线性回归和逻辑回归的分数是一样的,没有通过定义。

以上是关于regr.score 和 r2_score 给出不同的值的主要内容,如果未能解决你的问题,请参考以下文章

metrics.r2_score 和 acccuracy_score 有啥区别

使用 numpy 和 sklearn 计算 R^2(确定系数)给出不同的结果

深度学习-回归问题的评估指标:MAE, MAPE, MSE, RMSE, R2_Score

一个好的模型可以有较低的 R 平方值吗?

如何在 Tensorflow 中计算 R^2

sklearn中拟合结果的评价指标