F1分数与ROC AUC

use*_*643 22 machine-learning auc precision-recall

对于2种不同的病例,我有以下F1和AUC分数

模型1:精度:85.11召回:99.04 F1:91.55 AUC:69.94

模型2:精度:85.1召回:98.73 F1:91.41 AUC:71.69

我的问题的主要动机是正确预测阳性病例,即减少假阴性病例(FN).我应该使用F1得分并选择模型1或使用AUC并选择模型2.谢谢

Yah*_*hya 43

介绍

根据经验,每当您想要比较ROC AUCF1得分时,请将其视为基于以下内容比较您的模型性能:

[Sensitivity vs (1-Specificity)] VS [Precision vs Recall]
Run Code Online (Sandbox Code Playgroud)

现在我们需要了解它们的灵敏度,特异性,精确度和召回直观!


背景

灵敏度:由以下公式给出:

灵敏度公式

直观地说,如果我们有100%的敏感模式,这意味着它根本漏掉任何一个真阳性,换句话说,有假阴性(即标记为阴性阳性结果).但是存在大量误报的风险!

特异性:由以下公式给出:

特异性公式

直观地说,如果我们有100%的具体型号,这意味着它根本漏掉任何一个真阴性,换句话说,有误报(被标为正,即阴性结果).但是存在很多假阴性的风险!

精度:由以下公式给出: 精密配方

直观地说,如果我们有一个100%精确的模型,这意味着它可以捕获所有真正的阳性,但没有假阳性.

回忆:由以下公式给出:

召回公式

直观地说,如果我们有一个100%的召回模型,这意味着它根本漏掉任何一个真阳性,换句话说,有假阴性(即标记为阴性阳性结果).

如您所见,这四个概念非常接近!

f1得分


根据经验,如果假阴性的成本很高,我们希望提高模型灵敏度并召回!

例如,在欺诈检测或患病检测中,我们不希望将欺诈性交易(真实肯定)标记/预测为非欺诈性(假性否定).此外,我们不希望标记/预测传染病患者(真阳性)不生病(假阴性).

这是因为后果将比假阳性更糟糕(错误地将无害交易标记为欺诈性或非传染性患者具有传染性).

另一方面,如果假阳性的成本很高,那么我们希望提高模型的特异性和精确度!

例如,在电子邮件垃圾邮件检测中,我们不希望将非垃圾邮件(True Negative)标记/预测为垃圾邮件(误报).另一方面,未将垃圾邮件标记为垃圾邮件(False Negative)的成本更低.


F1得分

它由以下公式给出:

F1比分公式

F1 Score 在Precision和Recall之间保持平衡.如果存在不均匀的类别分布,我们会使用它,因为精度和召回可能会产生误导性的结果!

所以我们使用F1 Score作为Precision和Recall Numbers之间的比较指标!


接收器工作特性曲线下的面积(AUROC)

它比较敏感度与(1-特异性),换句话说,比较真阳性率与假阳性率.

曲线下面积

因此,AUROC越大,真阳性和真阴性之间的区别就越大!


AUROC vs F1得分(结论)

通常,ROC用于许多不同级别的阈值,因此它具有许多F得分值.F1分数适用于ROC曲线上的任何特定点.

您可以将其视为在特定阈值下的精确度和召回率的度量,而AUC是ROC曲线下的面积.对于F得分高,精度和召回都应该很高.

因此,当您在正样本和负样本之间存在数据不平衡时,您应该始终使用F1分数,因为ROC 平均超过所有可能的阈值!


进一步阅读:

信用卡欺诈:处理高度不平衡的类别以及为什么不应使用接收器操作特性曲线(ROC曲线),并且在高度不平衡的情况下应优先使用精确/调用曲线

  • 在[此答案]中,灵敏度和召回率是相同的(https://stats.stackexchange.com/questions/362332/is-there-any-difference-between-sensitivity-and-recall),将它们表示为不同的概念时,对它们的解释相同。是什么赋予了? (3认同)
  • @eddygeek它可以是特异性与敏感性维度是统计概念,而召回与精确维度是信息工程概念. (2认同)

Pau*_*aul 9

如果您查看定义,您可以将 AUC 和 F1-score 与标记为“正”的样本部分一起优化“某物”,该部分实际上是真正的正。

这个“东西”是:

  • 对于 AUC,特异性,即正确标记的负标记样本的分数。您没有查看正确标记的阳性标记样本的比例。
  • 使用 F1 分数,它是精度:正确标记的正标记样本的分数。并且使用 F1 分数,您不会考虑标记为阴性(特异性)的样本的纯度。

当您有高度不平衡或倾斜的类时,差异变得很重要:例如,真正的负面比真正的正面多得多。

假设您正在查看来自一般人群的数据以查找患有罕见疾病的人。“阴性”的人比“阳性”的人多得多,并且尝试使用 AUC 同时优化您在阳性和阴性样本上的表现并不是最佳的。如果可能,您希望正样本包含所有正样本,并且由于误报率高,您不希望它很大。因此,在这种情况下,您使用 F1 分数。

相反,如果两个类都占数据集的 50%,或者两者都占相当大的一部分,并且您关心自己在平等识别每个类方面的表现,那么您应该使用 AUC,它针对两个类(正类和负类)进行优化。