此时不同类别内的样本相当于带上了权重,则Macro-F1 较能更真实反应情况,选用Macro-F1更合适 ...
F1micro=2⋅Precisionmicro⋅RecallmicroPrecisionmicro+Recallmicro. 因为其考虑了各种类别的数量,所以更适用于数据分布不平衡的情况。在这种情况下,数量较多的类别对F1的影响会较大。 三、Macro-F1(宏观F1) 不同于micro f1,macro f1需要先计算出每一个类别的准召及其f1 score,然后通过求均值得到在整个样本上的...
macro-F1:在计算公式中考虑到了每个类别的数量,所以适用于数据分布不平衡的情况;但同时因为考虑到数据的数量,所以在数据极度不平衡的情况下,数量较多数量的类会较大的影响到F1的值。micro-F1:没有考虑到数据的数量,所以会平等地看待每一类(因为每一类的precision和recall都在0-1之间),会相对受...
不同于micro f1,macro f1需要先计算出每一个类别的准召及其f1 score,然后通过求均值得到在整个样本上的f1 score。 类别A的: 类别B的: 类别C的: 整体的f1为上面三者的平均值: F1 = (0.6667 + 0.57265 + 0.39759)/3 = 0.546 调用sklearn的api进行验证: fromsklearn.metricsimportf1_score f1_s...
需要注意的是因为Micro-F1考虑了各类别的数量,所以更适用于数据分布不平衡的情况。但是在这种情况下,数量较多的类别对Micro-F1的影响会较大。 2.3 Macro-F1 根据2.2节对、、的定义,第类的Precision和Recall为: 先对各类别的Precision和Recall求平均: 然后同样利用F1计算公式计算出来的值即为Macro-F1值: ...
所以micro的 精确度P 为 TP/(TP+FP)=8/(8+4)=0.666 召回率R TP/(TP+FN)=8/(8+6)=0.571 所以F1-micro的值为:0.6153 可以用sklearn来核对,把average设置成micro y_true = [1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4] ...
根据F1分数的计算公式,F1-micro值为0.6153。微平均结果可以用sklearn库验证,通过设置average参数为'micro',以确保计算结果的一致性。宏平均(Macro-averaging)宏平均方法在处理多类分类任务时,为每个类别单独计算F1分数,然后取平均值。这种方法强调对每个类别性能的公平评估,不考虑类别间的不平衡。宏...
不过在“Training algorithms for linear text classifiers”[1]中,作者指出,macro-F1是所有类中F1-score的平均值,即第一种方式才是macro-F1的计算方式。论文Macro F1 and Macro F1[2]对两种macro的方法进行简单分析,第二种方式对错误的分布不太敏感,这一点有点像micro-F1,论文作者也推荐方法一。
总结 如果各个类的分布不均衡的话,使用micro F1score比macro F1score 比较好,显然macro F1score没有考虑各个类的数量大小 参考该网址一位答主的回答,我搬运过来