我有一个模型可以产生高 ROC AUC (0.90),但同时平均精度低 (0.30)。根据我的发现,我认为它可能必须对不平衡的数据(数据集是)做一些事情。但是,我看不出这种不平衡是如何导致这种显着差异的。阅读戴维斯的论文也没有让我得到答案。
如果 ROC AUC 高而平均精度低,这意味着什么?
我最近想出了同样的问题,并在一些帖子中找到了一些帮助,这些帖子在此答案的末尾引用。
像往常一样,我将使用混淆矩阵上下文中常用的缩写:TP(真阳性)、FP(假阳性)、TN(真阴性)、FN(假阴性)。我也会认为正类是少数类,而负类是多数类。
首先,您应该注意到 ROC AUC 和 Precision-Recall AUC 是排名指标[1]。这意味着它们衡量您的概率(或分数)对您的数据排序的程度。ROC 和 Precision-Recall 曲线与排序有关,因为用于构建曲线的阈值的变化。
这些指标之间的区别在于如何量化订购质量 [2]。ROC 分析使用真阳性率(TPR 或召回)和假阳性率 (FPR)。另一方面,Precision-Recall 分析将 FPR 交换为 Precision。然后,当 ROC 使用混淆矩阵的所有单元格(TP、FP、TN、FN)时,Precision-Recall 忽略了对不平衡问题有很大影响的 True Negatives,因为几乎所有数据都属于负类. 因此,Precision-Recall 比 ROC 赋予少数类(正类)更多的权重。这就是为什么 Precision-Recall AUC 更适合严重不平衡问题的原因。
ROC AUC 高但 Precision-Recall AUC 低的更直观的含义是您的模型可以很好地排序您的数据(无论如何,它们中的大多数都属于同一类),但高分与被正类。你对自己的高分不是很有信心,但对低分却很有信心。
[1] https://machinelearningmastery.com/tour-of-evaluation-metrics-for-imbalanced-classification/
ROC AUC 的下限是 0.5,而 AUCPR 的下限是您数据中的阳性率。如果您的阳性率足够低,则 AUCPR 为 0.3 非常出色。