Machine learning ROC曲线良好,但查全率曲线较差

Machine learning ROC曲线良好,但查全率曲线较差,machine-learning,scikit-learn,performance-testing,roc,precision-recall,Machine Learning,Scikit Learn,Performance Testing,Roc,Precision Recall,我有一些机器学习的结果,我不太明白。我正在使用python sciki learn,它有大约14个特性的200多万个数据。“ab”的分类在精确回忆曲线上看起来很糟糕,但ab的ROC与大多数其他组的分类一样好。有什么可以解释 阶级失衡 与ROC曲线不同,PR曲线对不平衡非常敏感。如果在不平衡的数据上优化分类器以获得良好的AUC,则可能会获得较差的精确召回结果。您的集合是否平衡?(即ab和非ab一样多)不,这是非常不平衡的,ab小于2%。尝试过采样来缓解这个问题。我明白了,但就测试性能而言,这到底

我有一些机器学习的结果,我不太明白。我正在使用python sciki learn,它有大约14个特性的200多万个数据。“ab”的分类在精确回忆曲线上看起来很糟糕,但ab的ROC与大多数其他组的分类一样好。有什么可以解释

阶级失衡


与ROC曲线不同,PR曲线对不平衡非常敏感。如果在不平衡的数据上优化分类器以获得良好的AUC,则可能会获得较差的精确召回结果。

您的集合是否平衡?(即ab和非ab一样多)不,这是非常不平衡的,ab小于2%。尝试过采样来缓解这个问题。我明白了,但就测试性能而言,这到底意味着什么?它是好的(基于ROC)还是坏的(基于P-R)?如果在上面的P-R曲线中,测试的精度和召回率都达到了40%,那么测试怎么可能是好的呢?这意味着在报告不平衡数据的测试性能时,您必须小心。在医疗应用中,它可能会产生可怕的影响(参见教科书中的AIDS测试案例),在其他应用中,它可能会很好,这取决于您的具体应用。我在使用scikit learn时没有调整默认设置,但正如您所说,它似乎会基于AUC进行优化,有没有一种方法可以在不平衡数据中基于精度/召回对进行优化?您应该将其作为一个新问题发布。