Python 非平衡数据中的ROC曲线

Python 非平衡数据中的ROC曲线,python,scikit-learn,roc,auc,Python,Scikit Learn,Roc,Auc,我使用ovr分类和梯度增强分类器来预测{0,1,2,3,4,5}中的目标值。大部分数据(2M个样本)的目标值在{0,1}中,少数数据(97K个样本)的目标值在{2,3,4,5}中。我已经根据这些数据绘制了ROC曲线。如图所示,少数族裔的AUC=0.99。我想知道这是否意味着分类器的性能很高,还是不平衡数据的影响 更新: 如果我选择在{2,3,4,5}中有目标值的样本,ROC曲线如下: 有一种叫做“准确性悖论”的东西。你可以在这里了解更多。假设你有一类99个样本,第二类有一个样本。即使你的算法是

我使用ovr分类和梯度增强分类器来预测{0,1,2,3,4,5}中的目标值。大部分数据(2M个样本)的目标值在{0,1}中,少数数据(97K个样本)的目标值在{2,3,4,5}中。我已经根据这些数据绘制了ROC曲线。如图所示,少数族裔的AUC=0.99。我想知道这是否意味着分类器的性能很高,还是不平衡数据的影响

更新: 如果我选择在{2,3,4,5}中有目标值的样本,ROC曲线如下:

有一种叫做“准确性悖论”的东西。你可以在这里了解更多。假设你有一类99个样本,第二类有一个样本。即使你的算法是基于随机猜测,它仍然有99%的准确率。我猜在你提到的情况下,主要类的准确率将是99%,而在我的情况下,次要类的准确率是99%。再加上@Tasos的评论:对于不平衡的数据集,平均精度通常是一个更有意义的性能指标(
sklearn.metrics.precision\u recall\u curve
sklearn.metrics.average\u precision
)。@Paul.谢谢。是的,平均精度有效。