micro和macro F1 score分别是什么意思?谢谢各位大神!
2个回答
F1 score是一个用来评价二元分类器的度量。先回顾一下它的计算公式:
$$F_1=\frac{2}{\frac{1}{\text{recall}} + \frac{1}{\text{precision}}}=2\frac{\text{recall}\times \text{precision}}{\text{recall} + \text{precision}}$$
F1是针对二元分类的,那对于多元分类器,有没有类似F1 score的度量方法呢?有的,而且还不止一种,常用的有两种,这就是题主所问的两种,一种叫做macro-F1,另一种叫做micro-F1。
macro-F1
假设对于一个多分类问题,有三个类,分别记为1、2、3,
$TP_i$是指分类$i$的True Positive;
$FP_i$是指分类$i$的False Positive;
$TN_i$是指分类$i$的True Negative;
$FN_i$是指分类$i$的False Negative。
接下来,我们分别计算每个类的精度(precision)
$$\text{precision}_{i}=\frac{TP_i}{TP_i+FP_i}$$
macro精度就是所有精度的均值
$$\text{precision}_{ma}=\frac{\text{precision}_{1}+\text{precision}_{2}+\text{precision}_{3}}{3}$$
类似地,我们分别计算每个类的召回(recall)
$$\text{recall}_{i}=\frac{TP_i}{TP_i+FN_i}$$
macro召回就是所有召回的均值
$$\text{recall}_{ma}=\frac{\text{recall}_{1}+\text{recall}_{2}+\text{recall}_{3}}{3}$$
最后macro-F1的计算公式为
$$F_{1, ma}=2\frac{\text{recall}_{ma}\times \text{precision}_{ma}}{\text{recall}_{ma} + \text{precision}_{ma}}$$
micro-F1
假设对于一个多分类问题,有三个类,分别记为1、2、3,
$TP_i$是指分类$i$的True Positive;
$FP_i$是指分类$i$的False Positive;
$TN_i$是指分类$i$的True Negative;
$FN_i$是指分类$i$的False Negative。
接下来,我们来算micro精度(precision)
$$\text{precision}_{mi}=\frac{TP_1+TP_2+TP_3}{TP_1+FP_1+TP_2+FP_2+TP_3+FP_3}$$
以及micro召回(recall)
$$\text{recall}_{mi}=\frac{TP_1+TP_2+TP_3}{TP_1+FN_1+TP_2+FN_2+TP_3+FN_3}$$
最后micro-F1的计算公式为
$$F_{1, mi}=2\frac{\text{recall}_{mi}\times \text{precision}_{mi}}{\text{recall}_{mi} + \text{precision}_{mi}}$$
如果这个数据集中各个类的分布不平衡的话,更建议使用mirco-F1,因为macro没有考虑到各个类别的样本大小。
F1是针对二元的,对于多元的F1,我们就要变着法子求个均值F1,macro和micro就是不同的求均值的方式。
至于具体怎么求,上面已经回答的很清楚了。