NB precision / recall avg / total scores 的计算差异
Differences in calculations of NB precision / recall avg / total scores
我正在进行文本 class 化分析,我 运行 基于 NB 的 class 生成器,生成了以下结果:
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
让我困惑的是以下问题。为什么平均/总分的计算方式不同?为什么第二个 table 的平均/总分只是 class 1 的精度/召回结果的副本?因为没有 class 0 个测试实例?
此致,
古兹登
两种情况下的分数计算相同:
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
我正在进行文本 class 化分析,我 运行 基于 NB 的 class 生成器,生成了以下结果:
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
让我困惑的是以下问题。为什么平均/总分的计算方式不同?为什么第二个 table 的平均/总分只是 class 1 的精度/召回结果的副本?因为没有 class 0 个测试实例?
此致,
古兹登
两种情况下的分数计算相同:
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