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 AUC与F1得分时,请将其视为基于以下内容比较您的模型性能:
[Sensitivity vs (1-Specificity)] VS [Precision vs Recall]
Run Code Online (Sandbox Code Playgroud)
现在我们需要了解它们的灵敏度,特异性,精确度和召回直观!
灵敏度:由以下公式给出:
直观地说,如果我们有100%的敏感模式,这意味着它根本不漏掉任何一个真阳性,换句话说,有否假阴性(即标记为阴性阳性结果).但是存在大量误报的风险!
特异性:由以下公式给出:
直观地说,如果我们有100%的具体型号,这意味着它根本不漏掉任何一个真阴性,换句话说,有否误报(被标为正,即阴性结果).但是存在很多假阴性的风险!
直观地说,如果我们有一个100%精确的模型,这意味着它可以捕获所有真正的阳性,但没有假阳性.
回忆:由以下公式给出:
直观地说,如果我们有一个100%的召回模型,这意味着它根本不漏掉任何一个真阳性,换句话说,有否假阴性(即标记为阴性阳性结果).
如您所见,这四个概念非常接近!
根据经验,如果假阴性的成本很高,我们希望提高模型灵敏度并召回!
例如,在欺诈检测或患病检测中,我们不希望将欺诈性交易(真实肯定)标记/预测为非欺诈性(假性否定).此外,我们不希望标记/预测传染病患者(真阳性)不生病(假阴性).
这是因为后果将比假阳性更糟糕(错误地将无害交易标记为欺诈性或非传染性患者具有传染性).
另一方面,如果假阳性的成本很高,那么我们希望提高模型的特异性和精确度!
例如,在电子邮件垃圾邮件检测中,我们不希望将非垃圾邮件(True Negative)标记/预测为垃圾邮件(误报).另一方面,未将垃圾邮件标记为垃圾邮件(False Negative)的成本更低.
它由以下公式给出:
F1 Score 在Precision和Recall之间保持平衡.如果存在不均匀的类别分布,我们会使用它,因为精度和召回可能会产生误导性的结果!
所以我们使用F1 Score作为Precision和Recall Numbers之间的比较指标!
它比较敏感度与(1-特异性),换句话说,比较真阳性率与假阳性率.
因此,AUROC越大,真阳性和真阴性之间的区别就越大!
通常,ROC用于许多不同级别的阈值,因此它具有许多F得分值.F1分数适用于ROC曲线上的任何特定点.
您可以将其视为在特定阈值下的精确度和召回率的度量,而AUC是ROC曲线下的面积.对于F得分高,精度和召回都应该很高.
因此,当您在正样本和负样本之间存在数据不平衡时,您应该始终使用F1分数,因为ROC 平均超过所有可能的阈值!
进一步阅读:
信用卡欺诈:处理高度不平衡的类别以及为什么不应使用接收器操作特性曲线(ROC曲线),并且在高度不平衡的情况下应优先使用精确/调用曲线
如果您查看定义,您可以将 AUC 和 F1-score 与标记为“正”的样本部分一起优化“某物”,该部分实际上是真正的正。
这个“东西”是:
当您有高度不平衡或倾斜的类时,差异变得很重要:例如,真正的负面比真正的正面多得多。
假设您正在查看来自一般人群的数据以查找患有罕见疾病的人。“阴性”的人比“阳性”的人多得多,并且尝试使用 AUC 同时优化您在阳性和阴性样本上的表现并不是最佳的。如果可能,您希望正样本包含所有正样本,并且由于误报率高,您不希望它很大。因此,在这种情况下,您使用 F1 分数。
相反,如果两个类都占数据集的 50%,或者两者都占相当大的一部分,并且您关心自己在平等识别每个类方面的表现,那么您应该使用 AUC,它针对两个类(正类和负类)进行优化。