不平衡数据集上的 ROC 与 Precision-recall 曲线

机器算法验证 机器学习 模型选择 不平衡类 精确召回
2022-01-16 07:34:47

我刚读完这个讨论。他们认为 PR AUC 在不平衡数据集上优于 ROC AUC。

例如,我们在测试数据集中有 10 个样本。9 个样本为阳性,1 个为阴性。我们有一个糟糕的模型,它可以预测一切都是积极的。因此,我们将有一个 TP = 9,FP = 1,TN = 0,FN = 0 的度量。

然后,精度 = 0.9,召回率 = 1.0。准确率和召回率都非常高,但是我们的分类器很差。

另一方面,TPR = TP/(TP+FN) = 1.0,FPR = FP/(FP+TN) = 1.0。因为 FPR 非常高,我们可以确定这不是一个好的分类器。

显然,ROC 在不平衡数据集上优于 PR。有人可以解释为什么 PR 更好吗?

3个回答

首先,Kaggle 帖子上的声明是虚假的。他们引用的论文《Precision-Recall 与 ROC 曲线之间的关系》从未声称 PR AUC优于ROC AUC。他们只是比较它们的属性,而不判断它们的价值。

在一些非常不平衡的应用程序中,ROC 曲线有时会产生误导。ROC 曲线在对大多数或所有少数类进行错误分类时仍然可以看起来非常好(即比随机更好)。

相比之下,PR 曲线是专门为检测罕见事件而定制的,在这些场景中非常有用。如果它对大部分或所有少数类进行错误分类,它们将表明您的分类器性能低下。但它们不能很好地转化为更平衡的情况,或者负面很少见的情况。

此外,因为它们对积极事件的基线概率很敏感,所以它们不能很好地概括,并且只适用于它们所构建的特定数据集,或者具有完全相同平衡的数据集。这意味着通常很难比较来自不同研究的 PR 曲线,从而限制了它们的实用性。

与往常一样,了解可供您使用的工具并为正确的应用选择正确的工具非常重要。我建议 在 CV 上阅读ROC 与精确召回曲线的问题。

你的例子绝对是正确的。

然而,我认为在 Kaggle 竞赛/现实生活应用的背景下,倾斜数据集通常意味着正样本比负样本少得多的数据集。只有在这种情况下,PR AUC 才比 ROC AUC 更“有意义”。

考虑一个 TP=9,FN=1,TN=900,FP=90 的检测器,其中有 10 个正样本和 990 个负样本。TPR=0.9, FPR=0.1 表示 ROC 得分较好,而 Precision=0.1 表示 PR 得分较差。

你已经成功了一半。

通常,当我做不平衡模型,哎呀,甚至平衡模型时,我会查看所有课程的 PR。

在您的示例中,是的,您的正类具有 P = 0.9 和 R = 1.0。但是你应该看的是你所有的课程。所以对于你的负类,你的 P = 0 和你的 R = 0。而且你通常不只是单独查看 PR 分数。您想查看 F1 分数(F1 宏或 F1 微,取决于您的问题),这是您的 1 级和 0 级 PR 分数的调和平均值。您的 1 级 PR 分数非常好,但将其与您的 0 级 PR 分数,您的 F1 分数将是 TERRIBLE,这是您的场景的正确结论。

TL、DR:查看所有课程的 PR 分数,并将它们与 F1 分数等指标结合起来,得出关于模型性能的现实结论。您的场景的 F1 分数将是 TERRIBLE,这是您的场景的正确结论。