F1比分ROC AUC
machine-learning
6
0

我在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。谢谢

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

如果您看一下定义,则可以使AUC和F1分数同时优化“某物”以及标记为“正”的样本中实际上是真正的正数。

这个“东西”是:

  • 对于AUC,特异性是正确标记的阴性标记样品的分数。您不是在查看正确标记的正标记样本中的一部分。
  • 使用F1分数,它就是精度:正确标记的正标记样本的分数。使用F1分数时,您无需考虑标记为阴性的样品的纯度(特异性)。

当您的班级高度不平衡或偏斜时,区别就变得很重要:例如,真实的底片比真实的底片要多得多。

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

相反,如果两个类别都占您数据集的50%,或者两者都占相当大的一部分,并且您在乎平等地识别每个类别的性能,那么您应该使用AUC,它会针对两个类别(正负)进行优化。

收藏
评论

介绍

作为经验法则,每次要比较ROC AUCF1分数时 ,请考虑一下,就好像要基于以下条件比较模型性能:

[Sensitivity vs (1-Specificity)] VS [Precision vs Recall]

现在我们需要直观地理解:灵敏度,特异性,精确度和召回率!


背景

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

灵敏度公式

直观地讲,如果我们有一个100%敏感的模型,则意味着它不会错过任何“正肯定”,换句话说, 没有“假否定”( 即被标记为“否定”的正结果 )。但是,存在很多误报的风险!

特异性:由下式给出:

特异性公式

直观地讲,如果我们有100%特定的模型,则意味着它不会错过任何True Negative,也就是说, 没有 False Positives( 即标记为positive的负面结果 )。但是存在很多假阴性的风险!

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

直观地讲,如果我们有一个100%精确的模型,则意味着它可以捕获所有 True正值,但是没有 False Positive。

召回:由以下公式给出:

召回公式

直观地说,如果我们有一个100%的召回模型,这意味着它没有错过任何真阳性,换句话说,有没有出现假阴性( 即标记为负,即一个积极的结果 )。

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

f1分数


根据经验,如果拥有False negative的成本很高,我们希望提高模型的敏感性和召回率( 就其公式而言,这是完全相同的 )!

例如,在欺诈检测或生病患者检测中,我们不想将欺诈交易(真实)标记/预测为非欺诈(假阴性)。同样,我们也不想将传染性疾病患者(真阳性)标记/预测为未患病(假阴性)。

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

另一方面,如果拥有误报的成本很高,那么我们想提高模型的特异性和准确性!

例如,在垃圾邮件检测中,我们不想将非垃圾邮件(真阴性)标记/预测为垃圾邮件(假阳性)。另一方面,将垃圾邮件标记为垃圾邮件(错误否定)的成本较低。


F1分数

由以下公式给出:

F1分数公式

F1得分在“精确度”和“召回率”之间保持平衡 。如果类分布不均匀,我们会使用它,因为精度和召回率可能会产生误导性的结果!

因此,我们将F1分数用作“精确度”和“召回率”之间的比较指标!


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

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

曲线下面积

因此,AUROC越大,真实肯定和真实否定之间的区别就越大!


AUROC vs F1得分(结论)

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

您可能会认为它是精度和在特定阈值下的召回率的量度,而AUC是ROC曲线下的面积。为了使F分数高,精度和召回率都应该高。

因此 ,当你有阳性和阴性样品之间的数据不平衡 ,你应该总是使用F1-得分,因为ROC 平均在所有可能的阈值!


进一步阅读:

信用卡欺诈:处理高度不平衡的类别以及为什么不使用接收器工作特性曲线(ROC曲线),并且在高度不平衡的情况下应首选“精确度/召回率”曲线


编辑

我故意使用术语“ Sensitivity和“ Recall ,尽管两者是完全相同的,只是为了强调这一事实,即按照惯例,作为ML工程师,我们更可能使用术语“ Recall ,而统计学家更可能使用术语“ Sensitivity来指代相同的含义。确切的措施。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号