Weighted-F1 和 Micro-F1 的区别主要体现在计算方式和对类别不平衡(class imbalance)的处理方式上。它们都是 F1-score 的变体,F1-score 是用于衡量分类模型性能的指标,结合了精确率(Precision)和召回率(Recall)。
1. Micro-F1
Micro-F1 是在 全局 计算 F1-score,适用于类别不均衡时强调整体准确率。
计算方法
- 先计算 全局 的 True Positives(TP)、False Positives(FP)、False Negatives(FN)。
- 计算整体的 Precision 和 Recall:
Precision m i c r o = ∑ T P ∑ ( T P + F P ) \text{Precision}_{micro} = \frac{\sum TP}{\sum (TP + FP)} Precisionmicro=∑(TP+FP)∑TP
Recall m i c r o = ∑ T P ∑ ( T P + F N ) \text{Recall}_{micro} = \frac{\sum TP}{\sum (TP + FN)} Recallmicro=∑(TP+FN)∑TP - Micro-F1 公式:
Micro-F1 = 2 × Precision m i c r o × Recall m i c r o Precision m i c r o + Recall m i c r o \text{Micro-F1} = \frac{2 \times \text{Precision}_{micro} \times \text{Recall}_{micro}}{\text{Precision}_{micro} + \text{Recall}_{micro}} Micro-F1=Precisionmicro+Recallmicro2×Precisionmicro×Recallmicro - Micro-F1 实质上是计算整体 TP、FP、FN 后得到的 F1-score。
适用场景
- 当类别分布不均衡时,Micro-F1 不会受到小类别的影响,因为它计算的是全局 TP、FP、FN,而不是逐类别计算后求平均。
- 适用于多标签(Multi-label)分类任务,因为它更关注全局的正确性。
2. Weighted-F1
Weighted-F1 是对每个类别单独计算 F1-score,然后按照类别的样本数量进行加权平均。
计算方法
- 对于每个类别 ( i ) 计算 Precision、Recall 和 F1-score:
F1 i = 2 × Precision i × Recall i Precision i + Recall i \text{F1}_i = \frac{2 \times \text{Precision}_i \times \text{Recall}_i}{\text{Precision}_i + \text{Recall}_i} F1i=Precisioni+Recalli2×Precisioni×Recalli - 根据每个类别的样本占比 ( w_i )(即该类别样本数在整个数据集中占比)计算加权平均:
Weighted-F1 = ∑ i w i × F1 i \text{Weighted-F1} = \sum_{i} w_i \times \text{F1}_i Weighted-F1=i∑wi×F1i
其中:
w i = 样本数 i 总样本数 w_i = \frac{\text{样本数}_i}{\text{总样本数}} wi=总样本数样本数i
适用场景
- 当类别分布不均衡时,Weighted-F1 不会被小类别影响过多,因为它根据样本数量加权,而不是简单地取平均。
- 适用于不均衡数据集的多分类任务,因为它能更好地反映不同类别的影响。
3. Micro-F1 vs Weighted-F1 的主要区别
指标 | Micro-F1 | Weighted-F1 |
---|---|---|
计算方式 | 直接计算全局 TP、FP、FN,然后计算 F1-score | 先计算每个类别的 F1-score,然后按类别样本数加权平均 |
类别不均衡的影响 | 小类别的 F1 对最终结果影响较小,主要由大类别主导 | 小类别的 F1 影响较大,但仍然受类别样本权重控制 |
适用于 | 多标签分类(multi-label classification) 和 类别不均衡时更关注整体准确率的任务 | 类别不均衡的多分类任务(multi-class classification),需要关注各类别的性能 |
计算时的权重 | 无类别权重,所有类别的错误都一样重要 | 类别权重取决于样本数量,少数类影响小,多数类影响大 |
4. 直观示例
假设一个数据集有 3 个类别:
类别 | 样本数量 | Precision | Recall | F1-score |
---|---|---|---|---|
A | 1000 | 0.80 | 0.75 | 0.77 |
B | 200 | 0.70 | 0.60 | 0.65 |
C | 50 | 0.50 | 0.40 | 0.44 |
Micro-F1 计算
- 计算全局 TP、FP、FN 后求 F1-score,不会考虑类别样本数量,而是直接基于所有预测结果。
Weighted-F1 计算
- 按样本数量计算权重:
w A = 1000 1250 = 0.8 , w B = 200 1250 = 0.16 , w C = 50 1250 = 0.04 w_A = \frac{1000}{1250} = 0.8, \quad w_B = \frac{200}{1250} = 0.16, \quad w_C = \frac{50}{1250} = 0.04 wA=12501000=0.8,wB=1250200=0.16,wC=125050=0.04 - 计算加权 F1:
Weighted-F1 = 0.8 × 0.77 + 0.16 × 0.65 + 0.04 × 0.44 = 0.75 \text{Weighted-F1} = 0.8 \times 0.77 + 0.16 \times 0.65 + 0.04 \times 0.44 = 0.75 Weighted-F1=0.8×0.77+0.16×0.65+0.04×0.44=0.75 - 由于 A 类别的样本数最多,它的 F1-score 贡献最大,而 C 类别贡献最小。
5. 结论
- Micro-F1 更关注整体的正确性(所有类别的 TP、FP、FN 一起计算)。
- Weighted-F1 更关注类别的 F1-score 但会按样本数量加权(类别样本数多的影响更大)。
- Micro-F1 适用于多标签分类(multi-label classification),而 Weighted-F1 适用于类别不均衡的多分类(multi-class classification)。