我刚开始学习 ROC 曲线下的面积 (AUC)。有人告诉我,AUC 不反映在数据不平衡上。我认为这意味着 AUC 对测试数据的不平衡不敏感,而不是训练数据的不平衡。
也就是说,仅仅改变测试数据中正负类的分布,AUC值可能变化不大。但是如果我们改变训练数据中的分布,AUC 值可能会发生很大变化。原因是分类器不能很好地学习。在这种情况下,我们必须使用欠采样和过采样。我对吗?我只是想确保我对 AUC 的理解是正确的。
我刚开始学习 ROC 曲线下的面积 (AUC)。有人告诉我,AUC 不反映在数据不平衡上。我认为这意味着 AUC 对测试数据的不平衡不敏感,而不是训练数据的不平衡。
也就是说,仅仅改变测试数据中正负类的分布,AUC值可能变化不大。但是如果我们改变训练数据中的分布,AUC 值可能会发生很大变化。原因是分类器不能很好地学习。在这种情况下,我们必须使用欠采样和过采样。我对吗?我只是想确保我对 AUC 的理解是正确的。
这取决于你如何理解敏感这个词。ROC AUC 对类不平衡很敏感,因为当存在少数类时,您通常将其定义为正类,它将对 AUC 值产生强烈影响。这是非常理想的行为。例如,准确性在这种情况下是不敏感的。即使少数类别根本无法很好地预测,它也可能非常高。
在大多数实验设置(例如引导或交叉验证)中,训练集和测试集的类分布应该相似。但这是您如何对这些集合进行采样的结果,而不是使用或不使用 ROC。基本上你可以说 ROC 通过同等重视敏感性和特异性来抽象测试集中的类不平衡。当训练集没有包含足够的示例来学习该类时,这仍然会影响 ROC,因为它应该。
您在过采样和参数调整方面所做的工作是一个单独的问题。ROC 只能告诉您特定配置的工作情况。然后,您可以尝试多个配置并选择最佳配置。
我认为说 AUC 对类不平衡不敏感是不安全的,因为它给读者带来了一些困惑。如果您的意思是分数本身不能检测到类别不平衡,那是错误的,这就是 AUC 存在的原因。如果您的意思是不敏感,以至于类分布的变化不会影响计算 AUC,那是真的。
我碰巧是我的主管提示我的。事实上,与其他方法相比,这实际上是使用 AUC 作为分类度量的优势(例如准确性)。AUC 几乎可以告诉您模型的性能,同时解决类别不平衡的问题。为了科学安全,我宁愿说它对班级分布的变化不敏感。
例如,为了尽可能简单,让我们看一下正类占主导地位的二元分类问题。
比如说,我们有一个样本分布和一个默认精度为 0.8的随机预测模型(即使不查看数据也能不断预测正值)。你可以看到这个模型会返回一个很高的准确率分数,虽然它的准确率相当低
另一方面,AUC 的作用是通知您您有几个错误分类的阳性尽管由于优势类而具有很高的准确性,因此在这种情况下它会返回低分。
我希望我说清楚了!
如果您对不同类别分布的 AUC 变化或其他分类任务的 AUC 分析感兴趣,我肯定会向您推荐Fawcett关于 ROC 曲线分析的论文。最好的之一,很容易放置。
(迟到了 3 年的答案,但也许仍然有用!)
ROC对阶级不平衡问题很敏感,这意味着它只因为人口较多而偏爱人口较多的阶级。换句话说,在分类/预测方面,它偏向于更大的人群。
这确实是有问题的。想象一下,在不同的试验中,当数据经过多轮抽样(例如,在交叉验证中)时,子类的总体可能在每次迭代中发生变化。在这种情况下,使用敏感指标(如准确率或 ROC)训练的模型不再具有可比性。为了解决这个问题,每个子类的数量应该保持固定,或者必须使用不敏感的度量。真正的技能统计(也称为Youden J 指数)是一个确实对这个问题不敏感的指标。这些指标在处理极端不平衡数据的领域非常流行,例如天气预报、欺诈检测,当然还有生物信息学。
也正是因为这个原因,人们修改了 ROC 并引入了 Precision-Recall 曲线。PR 曲线似乎对这个问题不太敏感。
对于 Youden J 指数,请参见Youden 1950,对于 True Skill Statistic,请参见Bloomfield 等人。2018 年。
有关详细示例,请阅读有关机器学习大师的这篇博文。
有关极端不平衡数据的应用分析,请参阅Ahmadzadeh 等人。2019 年。