宏 F1 结果高于不平衡数据集的准确度

数据挖掘 机器学习 阶级失衡 f1score
2022-02-19 13:40:46

在一篇关于假新闻检测的研究论文中,作者收集了一个假新闻二进制数据集(假新闻与真新闻),由16,817真文章和5,323假文章组成。

macro作者使用准确率、精确度、召回率和 F1 来展示结果,但没有具体说明他们在 F1 度量( 、microweighted等)上应用了哪种平均。

结果如下:

在此处输入图像描述

如果你能注意到最后一个系统,精度值是0.689,F1值是0.717高于精度的。

因此,给定数据集的不平衡状态,作者是否有可能使用macro方式对 F1 度量中的类进行平均?

对我来说,这“不可能”发生,我认为他们可能使用了weighedF1 分数。

1个回答

他们计算了为二元分类任务定义的“标准”F1 分数:

precision = 0.656
recall = 0.792
f1 = 2 * (precision * recall) / (precision + recall)
f1

0.7176132596685083

其他版本的 F1 分数用于多个类别,您可以在此处“扩展到多类别分类”下看到:

F 分数还用于评估具有两个以上类别的分类问题(多类分类)。在此设置中,最终分数是通过微平均(受类频率偏向)或宏观平均(将所有类视为同等重要)获得的。对于宏观平均,申请人使用了两个不同的公式:(算术)分类精度和召回平均值的 F 分数或分类 F 分数的算术平均值,后者表现出更理想的特性。

或者,请参阅此处了解 F1 分数的 scikit learn 实现及其参数描述。