【问题标题】:Low R2 in statsmodels and High Accuracy/Precision in scikitstatsmodels 中的低 R2 和 scikit 中的高精度/精度
【发布时间】:2017-10-05 00:26:57
【问题描述】:

我目前正在学习数据科学课程,我的一个项目是创建一个模型来预测员工流失率。

我有一个正在使用的模拟数据集,并且我已经设置了我的 X 和 y。

我运行了 4 个模型。第一个是在 statsmodels 中运行逻辑回归。其输出是 0.142 的 Pseudo Rsquared,非常低。

但是,我在 scikit learn 中运行的接下来的 3 个模型(逻辑回归、k 最近邻和决策树)。在这些模型中,我将 X 和 y 分成训练集和测试集。对于每一个,我都计算了准确度和精确度分数,它们都在 75% 以上。此外,我在每个模型上运行了交叉验证分数,每个模型的分数仍然高于 75%。

我的问题是,我怎么可能在我的 scikit 学习模型上获得高分,而在 statsmodel 运行中获得如此低的 R2?

这种情况会发生吗?如果是这样,如何解释?谢谢!

【问题讨论】:

  • 欢迎来到 SO。请阅读此how-to-ask 以使用足够且具体的信息来改进您的问题,例如尝试解决问题的代码和错误消息等。
  • 也许,我误解了你的意思,但是 R2 是衡量 ERROR 的指标,所以当 error 低时,分数相应地高。一切似乎都很好
  • 这个很不清楚。您正在解决的问题:是回归还是分类?你说你测量了R2,看来它的回归呢。但是你说你计算准确性和精度?准确度和精确度用于分类,而不是回归。你能发布这两个库的代码和一些数据吗?

标签: python machine-learning statistics scikit-learn data-science


【解决方案1】:

部分答案,因为我从未在任何示例中对它们进行过比较。

(这看起来更像是一个统计数据而不是一个编程问题 stats.stackexchange ?)。

本质上,这两种度量都有一定的关系,但并不直接相关,在 statsmodels 中使用的定义中的伪 rsquare 将完整模型的对数似然与只有一个常数的模型的对数似然进行比较。该度量是在对数似然比的尺度上进行的,与仅使用常数的参考模型相比,它显示出相对改进。

准确度和精确度直接衡量预测性能,它使用不同的尺度,是与参考模型不相比较的绝对度量。 例如,您可以检查与仅使用常量的模型相比,预测措施改进了多少。

具体度量的另一个区别是准确度和精度使用阈值化和离散化预测。相反,对数似然基于概率。
例如,如果阈值为 0.5。那么在这两种情况下,概率为 0.500001 或 0.49999 的观察结果都可能是正确的预测,但概率与 1 和 0 相差甚远。

【讨论】:

    猜你喜欢
    • 2012-10-20
    • 1970-01-01
    • 2016-02-18
    • 2016-01-16
    • 2021-06-16
    • 1970-01-01
    • 2021-02-20
    • 2017-12-22
    • 1970-01-01
    相关资源
    最近更新 更多