statsmodels中的R2低,scikit中的高精度/精度

时间:2017-05-06 17:17:42

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

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

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

我跑了4个模特。第一个是在statsmodels中运行逻辑回归。它的输出是0.142的伪Rsquared,非常低。

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

我的问题是,如何在我的scikit学习模型上获得高分并且在statsmodel运行中获得如此低的R2?

这种情况会发生吗?若然,怎么解释呢?谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

基本上,两种度量都有些但不直接相关,statsmodels中使用的定义中的伪rsquare将完整模型的对数似然与仅具有常数的模型的对数似然进行比较。该度量采用对数似然比的范围,与恒定参考模型相比显示出相对改进。

准确度和精确度直接测量预测性能,使用不同的比例,并且是与参考模型无法比较的绝对度量。 例如,您可以检查预测度量与仅使用常量的模型相比有多少改善。

具体措施的另一个不同之处在于准确性和精确度使用阈值处理和离散化预测。相反,对数似然是基于概率 例如,如果阈值为0.5。那么概率为0.500001或0.49999的观测可能是两种情况下的正确预测,但概率远离1和0.