我最近完成了一场 Kaggle 比赛,其中根据比赛要求使用了 roc auc 分数。在这个项目之前,我通常使用 f1 分数作为衡量模型性能的指标。展望未来,我想知道我应该如何在这两个指标之间进行选择?什么时候使用which,它们各自的优缺点是什么?
顺便说一句,我在这里阅读了这篇文章AUC 和 F1-score 有什么区别?,但它没有告诉我何时使用哪个。
提前感谢您的帮助!
我最近完成了一场 Kaggle 比赛,其中根据比赛要求使用了 roc auc 分数。在这个项目之前,我通常使用 f1 分数作为衡量模型性能的指标。展望未来,我想知道我应该如何在这两个指标之间进行选择?什么时候使用which,它们各自的优缺点是什么?
顺便说一句,我在这里阅读了这篇文章AUC 和 F1-score 有什么区别?,但它没有告诉我何时使用哪个。
提前感谢您的帮助!
计算公式:
ROC/AUC是同一个标准,PR(Precision-Recall)曲线(F1-score, Precision, Recall)也是同一个标准。
真实数据往往会在正样本和负样本之间存在不平衡。这种不平衡对 PR 有很大影响,但对 ROC/AUC 没有影响。
所以在现实世界中,PR曲线被更多地使用,因为正负样本非常不均匀。ROC/AUC曲线不能反映分类器的性能,但PR曲线可以。
如果只是在研究论文中做实验,可以使用ROC,实验结果会更漂亮。另一方面,PR曲线在实际问题中的使用,具有更好的可解释性。
这里列出的衡量标准都不是正确的准确度评分规则,即由正确模型优化的规则。考虑 Brier 分数和基于对数似然的度量,例如伪。 -index(AUROC;一致性概率)不合适,但有利于描述单个模型。用于选择模型或比较两个模型都不够灵敏。
以上答案都很好。
但我想指出的是 AUC(ROC 下的面积)是有问题的,尤其是数据不平衡(所谓的高度偏斜:很大)。这种情况在动作检测、欺诈检测、破产预测等中非常常见。也就是说,你关心的正面例子的发生率相对较低。
对于不平衡的数据,AUC 仍然为您提供 0.8 左右的似是而非的值。但是,由于 FP 大,而不是大 TP(真阳性),它很高。
比如下面的例子,
TP=155, FN=182
FP=84049, TN=34088
所以当你用 AUC 来衡量分类器的性能时,问题是 AUC 的增加并不能真正反映一个更好的分类器。这只是太多负面例子的副作用。您可以简单地在不平衡的数据集中尝试,您会看到这个问题。
面对不平衡数据建议使用性能指标的论文发现“虽然 ROC 不受偏斜的影响,但精确召回曲线表明 ROC 在某些情况下可能会掩盖较差的性能。” 寻找一个好的性能指标仍然是一个悬而未决的问题。一般的 F1 分数可能有助于
其中是精度与召回率相比的相对重要性。
然后,我对不平衡数据的建议与这篇文章类似。你也可以试试十分位表,可以通过搜索“二乘二分类和十分位表”来构建。同时,我也在研究这个问题,会给出更好的措施。
简而言之,当您遇到数据不平衡时,即正面和负面类别的示例数量之间的差异很大,您应该始终使用 F1-score。否则,您可以使用 ROC/AUC 曲线。