Scikit learn NB精密度/回忆平均值/总分计算的差异

Scikit learn NB精密度/回忆平均值/总分计算的差异,scikit-learn,naivebayes,precision-recall,Scikit Learn,Naivebayes,Precision Recall,我正在进行文本分类分析,并运行了基于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

我正在进行文本分类分析,并运行了基于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类测试实例

问候,


guzden

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

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)中有一个结果,当这些组合并(平均)时,结果会发生变化。检查页面,有一个很好的例子和解释。

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

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

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

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)中有一个结果,当这些组合并(平均)时,结果会发生变化。检查页面,有一个很好的例子和解释。

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

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。谢谢,我去看看。正在网上搜索解释。:)还有一个问题:在有零的情况下,召回率/准确率平均值是如何计算的?