【问题标题】:Compute accuracy from F1, precision and recall scores根据 F1、精度和召回分数计算准确度
【发布时间】:2020-04-16 21:02:21
【问题描述】:

在训练期间,我忘记保存模型和模型在测试集上的预测。我只有 F1、精度和召回分数。我想知道是否有任何方法可以仅根据 F1、精度和召回分数来计算准确率?

f1 = 0.9466979550787799
precision = 0.9424328383113633
recall = 0.951001852163664

【问题讨论】:

    标签: machine-learning deep-learning precision-recall


    【解决方案1】:

    简短的回答是,您有三个方程,但有四个变量,因此您可以,但前提是您已经知道要预测的元素总数。要详细了解这一点,让我们将真阳性、真阴性、假阳性和假阴性分别记为TP, TN, FP, FN

    从精度定义为TP/(TP+FP),可以得到

    FP=TP(1-precision)/precision   (1)
    

    同样,根据召回的定义,你会得到

    FN=TP(1-recall)/recall         (2)
    

    现在让我们使用F1 score 的定义为F1=2/(precision^{-1}+recall^{-1})。通过插入上面的FNFP 表达式,我们将得到以下表达式:

    F1=2TP / (2TP +TP(1-recall)/recall + TP(1-prec)/prec)
    

    你可以很容易地解出这个方程并得到TP的值。将其插入 (1) 和 (2) 中,您将达到知道 TP, FN, FP 的地步。

    您仍然需要知道真正的否定TN 才能计算准确度(假设您按照准确度的通常定义为(TP+TN)/(TP+TN+FP+FN))。

    要确定TN,需要知道total_n的元素总数:

    TN=total_n - (TP+FN+FP)
    

    一旦你知道你可以计算准确度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 2017-06-21
      • 2020-10-02
      • 2017-11-13
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 2015-10-03
      相关资源
      最近更新 更多