【问题标题】:Differences in calculations of NB precision / recall avg / total scoresNB 精度/召回平均值/总分计算的差异
【发布时间】:2016-10-04 06:21:12
【问题描述】:

我正在进行文本分类分析并运行基于 NB 的分类器,结果如下:

Classification Report:
             precision    recall  f1-score   support

          0       0.00      0.00      0.00         2
          1       0.67      1.00      0.80         4

avg / total       0.44      0.67      0.53         6

Classification Report:
             precision    recall  f1-score   support

          0       0.00      0.00      0.00         0
          1       1.00      0.83      0.91         6

avg / total       1.00      0.83      0.91         6

让我困惑的是以下问题。为什么平均/总分的计算方式不同?为什么第二个表中的平均/总分只是第 1 类的精度/召回结果的副本?因为没有 0 类测试实例?

问候,

古兹登

【问题讨论】:

    标签: scikit-learn naivebayes precision-recall


    【解决方案1】:

    两种情况下的分数计算相同:

    Ex.1: 1) f1 = 2 * 0.67 * 1.00 / (0.67 + 1.00) = 0.80
     average f1 = 2 * 0.44 * 0.67 / (0.44 + 0.67) = 0.53
    
    Ex.2: 2) f1 = 2 * 1.00 * 0.83 / (1.00 + 0.83) = 0.91
     average f1 = 2 * 1.00 * 0.83 / (1.00 + 0.83) = 0.91
    

    您在这里面临的问题称为辛普森悖论:您在不同的组(0 和 1)中有一个结果,当这些组合并(平均)时会发生变化。查看Wiki页面,有很好的例子和解释。


    编辑:

    第一种情况下的召回率/精度平均值计算:

    Av. precision = (0.67 * 4 + 0.00 * 2) / (4 + 2) = 0.44
    Av. recall    = (1.00 * 4 + 0.00 * 2) / (4 + 2) = 0.67
    

    【讨论】:

    • 嘿@Vadim。谢谢,我会检查一下。正在网上搜索解释。 :) 还有一个问题:在你有零的情况下,召回率/精度平均值是如何计算的?
    猜你喜欢
    • 1970-01-01
    • 2021-04-09
    • 2018-07-23
    • 2020-09-26
    • 2012-11-26
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多