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(确定系数)给出不同的结果