不平衡数据的 ROC 曲线下面积或 PR 曲线下面积?

机器算法验证 r 机器学习 精确召回 奥克
2022-01-20 19:18:36

我对使用哪种性能指标有一些疑问,ROC 曲线下的面积(TPR 作为 FPR 的函数)或精度召回曲线下的面积(精度作为召回的函数)。

我的数据是不平衡的,即负实例的数量远大于正实例。

我正在使用 weka 的输出预测,示例是:

inst#,actual,predicted,prediction
1,2:0,2:0,0.873
2,2:0,2:0,0.972
3,2:0,2:0,0.97
4,2:0,2:0,0.97
5,2:0,2:0,0.97
6,2:0,2:0,0.896
7,2:0,2:0,0.973

我正在使用 pROC 和 ROCR r 库。

3个回答

这个问题很模糊,所以我假设你想选择一个合适的性能度量来比较不同的模型。要全面了解 ROC 和 PR 曲线之间的主要区别,您可以参考以下论文:Davis 和 Goadrich的《Precision-Recall 和 ROC 曲线之间的关系》

引用戴维斯和戈德里奇的话:

然而,在处理高度偏斜的数据集时,Precision-Recall (PR) 曲线可以提供更多关于算法性能的信息。

ROC 曲线绘制 FPR 与 TPR。更明确地说: PR 曲线绘制精确率与召回率 (FPR),或更明确地说:

FPR=FPFP+TN,TPR=TPTP+FN.
recall=TPTP+FN=TPR,precision=TPTP+FP

受到影响,精度直接受类(im)平衡的影响,而 TPR 仅取决于正数。这就是 ROC 曲线没有捕捉到这种影响的原因。FP

精确召回曲线更好地突出高度不平衡数据集的模型之间的差异。如果您想在不平衡的设置中比较不同的模型,PR 曲线下的面积可能会比 ROC 曲线下的面积表现出更大的差异。

也就是说,ROC 曲线更为常见(即使它们不太适合)。根据您的受众,ROC 曲线可能是通用语,因此使用这些曲线可能是更安全的选择。如果一个模型在 PR 空间中完全支配另一个模型(例如,在整个召回范围内总是具有更高的精度),它也将在 ROC 空间中占据主导地位。如果曲线在任一空间交叉,它们也会在另一个空间交叉。换句话说,无论您使用哪条曲线,主要结论都是相似的。


无耻的广告作为另一个示例,您可以查看我的一篇论文,其中我报告了不平衡设置中的 ROC 和 PR 曲线。图 3 包含相同模型的 ROC 和 PR 曲线,清楚地显示了两者之间的差异。要比较 PR 下的面积与 ROC 下的面积,您可以比较表 1-2 (AUPR) 和表 3-4 (AUROC),您可以看到 AUPR在各个模型之间的差异比 AUROC 大得多这再次强调了 PR 曲线的适用性。

ROC 曲线在 y 轴上绘制 TPR,在 x 轴上绘制 FPR,但这取决于您要描绘的内容。除非有某些理由在您的研究领域以不同的方式绘制它,否则 TPR/FPR ROC 曲线是显示操作权衡的标准,我相信它们会很受欢迎。

单独的精确率和召回率可能会产生误导,因为它不能解释真正的负面因素。

我认为 ROC 和 PR AUC 的最大区别在于 ROC 决定了你的模型如何“计算”正类和负类,因为 PR AUC 实际上只关注你的正类。因此,在平衡的班级情况下,并且您同时关心负面和正面班级,ROC AUC 指标非常有效。当您遇到不平衡的情况时,最好使用 PR AUC,但请记住,它只是确定您的模型如何“计算”正类!