我有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.谢谢
答案 0 :(得分:19)
作为经验法则,每次您要比较 ROC AUC 与 F1得分时,都应该考虑一下,就像是在基于以下条件比较模型性能:< / p>
[Sensitivity vs (1-Specificity)] VS [Precision vs Recall]
现在,我们需要了解什么:敏感性,特异性,精确度和直观地回忆 !
灵敏度:由以下公式给出:
从直觉上讲,如果我们有一个100%敏感的模型,则表示它没有不遗漏任何True Positive,也就是说,存在 NO False Negatives(< em>,即标记为否定的阳性结果)。但是存在很多误报的风险!
特异性:由以下公式给出:
从直觉上讲,如果我们有100%特定的模型,这意味着它没有不遗漏任何True Negative,换句话说,存在 NO 误报(即标记为阳性的阴性结果)。但是存在很多假阴性的风险!
从直觉上讲,如果我们有一个100%精确的模型,则意味着它可以捕获全部真阳性,但是存在否假阳性。
回忆:由以下公式给出:
从直觉上讲,如果我们有100%的召回率模型,则表示它没有不遗漏任何True Positive,也就是说,存在 NO False Negatives(< em>,即标记为阴性的阳性结果)。
如您所见,这四个概念非常接近!
根据经验,如果拥有False negative的成本很高,我们希望提高模型的敏感性并召回!!
例如,在欺诈检测或患病患者检测中,我们不想将欺诈交易(真阳性)标记/预测为非欺诈(假阴性)。同样,我们也不想将传染性疾病患者(真阳性)标记/预测为未患病(假阴性)。
这是因为后果要比误报更糟(错误地将无害交易标记为欺诈或将非传染性患者标记为具有传染性)。
另一方面,如果拥有误报的成本很高,那么我们想提高模型的特异性和准确性!
例如,在电子邮件垃圾邮件检测中,我们不想将非垃圾邮件(真阴性)标记/预测为垃圾邮件(假阳性)。另一方面,将垃圾邮件标记为垃圾邮件(错误否定)的成本较低。
由以下公式给出:
F1得分在“精确度”和“召回率”之间保持平衡。如果类分布不均匀,我们会使用它,因为精度和召回率可能会产生误导性的结果!
因此,我们将F1分数用作“精确度”和“召回号码”之间的比较指标!
它比较敏感度与(1-特异性),换句话说,比较真实阳性率与错误阳性率。
因此,AUROC越大,真实肯定和真实否定之间的区别就越大!
通常,ROC适用于许多不同级别的阈值,因此它具有许多F得分值。 F1分数适用于ROC曲线上的任何特定点。
您可能会认为它是精度和在特定阈值下的召回率的度量,而AUC是ROC曲线下的面积。要使F得分高,准确性和召回率都应该高。
因此,当您在正样本和负样本之间有数据不平衡时,您应该始终使用F1评分,因为ROC总体上为平均值可能的阈值!
进一步阅读:
答案 1 :(得分:1)
在这里加我的2美分:
AUC对样本进行隐式加权,而F1则不这样做。
在我比较药物对患者的有效性的最后一个用例中,很容易了解哪些药物通常是强效的,哪些药物是弱效的。最大的问题是您是否可以打出异常值(弱药的阳性数很少,强药的阴性数很少)。要回答这个问题,您必须使用F1特别权衡异常值,而不必使用AUC。
答案 2 :(得分:0)
如果您查看定义,则可以使AUC和F1分数同时优化“某物”以及标记为“阳性”的样本中实际上是真实阳性的部分。
这个“东西”是:
当您的班级高度不平衡或偏斜时,差异变得很重要:例如,真实的负数比真实的正数多。
假设您正在查看来自一般人群的数据以找到患有罕见疾病的人。 “阴性”比“阳性”的人要多得多,并且尝试使用AUC优化同时处理阳性和阴性样品的效果不是最佳的。您希望阳性样本尽可能包含所有阳性,并且由于假阳性率高,您不希望样本太大。因此,在这种情况下,您使用F1分数。
相反,如果两个类别都占您数据集的50%,或者两者都占相当大的一部分,并且您在乎平等地识别每个类别的性能,那么您应该使用AUC,它会针对两个类别的正数和负数进行优化否定的。