F1-score与Macro-F1、Micro-F1计算与理解

Posted by fxl on August 13, 2019

基本概念

在理解F1-score之前,首先需要了解一下几个概念,分别为accuracy, precision, recall, 以及TP (true positive), FP (false positive), TN (true negitive), FN (false negitive)。

  • TP - 被模型预测为样本
  • FP - 被模型预测为样本
  • TN - 被模型预测为样本
  • FN - 被模型预测为样本

假设存二分类模型使得模型在测试数据集上的结果如下表所示,横坐标为Ground Truth, 纵坐标为预测值:

 
0.4(TP) 0.2 (FP)
0.1 (FN) 0.3 (TN)

则 $TP = 0.3$, $FP = 0.1$, $TN = 0.4$, $FN = 0.2$。

准确率 - Accuracy

准确率是指,对于给定的测试数据集,分类器正确分类的样本书与总样本数之比,也就是预测正确的概率。即:

对应上述例子,有。准确率作为我们最常用的指标,当出现样本不均衡的情况时,并不能合理反映模型的预测能力。例如测试数据集有90%的正样本,10%的负样本,假设模型预测结果全为正样本,这时准确率为90%,然而模型对负样本没有识别能力,此时高准确率不能反映模型的预测能力。

精确率 - Precision

Precision表示预测为正样本中,实际为正样本的比例,即:

对应上述例子,有。可以看到,Precision是针对预测结果而言的。

召回率 - Recall

Recall表示实际为正的样本被判断为正样本的比例,即:

对应上述例子,有。可以看到,Recall是针对原样本而言的。

F1值 - F1-score

Precision和Recall是一对矛盾的度量,一般来说,Precision高时,Recall值往往偏低;而Precision值低时,Recall值往往偏高。当分类置信度高时,Precision偏高;分类置信度低时,Recall偏高。为了能够综合考虑这两个指标,F-measure被提出(Precision和Recall的加权调和平均),即:

参数影响两种度量间的权重。当时,即:

F1的核心思想在于,在尽可能的提高Precision和Recall的同时,也希望两者之间的差异尽可能小。F1-score适用于二分类问题,对于多分类问题,将二分类的F1-score推广,有Micro-F1和Macro-F1两种度量。

  • Micro-F1:统计各个类别的TP、FP、FN、TN,加和构成新的TP、FP、FN、TN,然后计算Micro-Precision和Micro-Recall,得到Micro-F1
  • Macro-F1:统计各个类别的TP、FP、FN、TN,分别计算各自的Precision和Recall,得到各自的F1值,然后取平均值得到Macro-F1

从上面二者计算方式上可以看出,Macro-F1平等地看待各个类别,它的值会受到稀有类别的影响;而Micro-F1则更容易受到常见类别的影响。