micro-F1和macro-F1评价指标的理解

本文探讨了在多标签分类问题中,为何选择micro-F1而非macro-F1作为评价指标。micro-F1受到数量多的一类样本影响较大,适合数据量平衡或忽略类别的场景。而macro-F1平等对待每类,适用于类别数据量不平衡且所有类别重要的情况。在数据集类别分布不均衡时,weighted-F1则能体现对某些类别的侧重。选择评价指标应根据数据集的类别分布和任务需求来决定。
摘要由CSDN通过智能技术生成

一、问题背景

  在做多标签分类问题的时候,我发现很多论文用的评价指标是micro-F1,由于之前较少遇到这个评价指标,于是想仔细调研下为什么用micro-F1而不用macro-F1的原因。

二、实际原因

  首先micro-F1是指的微F1,计算方式,将这个多标签分类看成是n个二分类,因此就有n个混淆矩阵,然后就可以计算出n个类别的TP、FP、FN,从而求和得到整体的TP_all、FP_all、FN_all,这样再求出整体的Precisoin和Recall,进而求出micro-F1值;同样,macro-F1恰恰是将所有类的F1先求出来,然后直接计算F1_n的算术平均;
  从计算方法上来看,微F1值会受到数量多一类的样本的影响较大,而宏F1易受到高准或高召样本类的影响(因为它是平等的看待每一类);
  见下方举个多标签分类的例子,

多标签分类中存在5种label(A/B/C/D/E):
predict:[0,0,1,0,1]、[0,1,1,0,1]、[1,0,1,1,1]、[1,0,1,0,0]
label:[0,0,1,1,1]、[1,1,1,1,0]、[0,1,1,0,1]、[1,0,1,0,0]
计算过程如下:
accuracy           =      0.250
micro_precision    =      0.667
micro_recall       =      0.727
micro-F1           =      0.696

macro_precision    =      0.600
macro_recall       =      0.633
macro-F1           =      0.593

weighted_precision =      0.773
weighted_recall    =      0.727
weighted-F1        =      0.733

因此在多分类的情况下,我们具体选用哪个指标,我们需要根据我们任务的数据集中不同类的数量分布来决定:

  1. 通常情况下,若数据集各类别数据量是不平衡的且所有类别都是同样重要,那用macro-F1就行,因为它是按类别计算,再取平均的F1作为最后值。大多数应该就是这种情况了(micro-F1在极度不平衡数据下会≈数据量大的那一类F1,不能很好的衡量模型的整体效果)。
  2. 若是在一个非平衡的数据集上,你个人希望侧重于一些类,那当然是weighted-F1 了(这个相当于就是macro-F1的加权平均,权重则是各类的数量占总体数量的权重)。
  3. 若是平衡的数据集,且是忽略类别的情况那就用micro-F1好了
  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值