详细介绍多分类任务(例如实体识别等)中的评估指标(精确率,召回率,F1 score)

时间:2024-04-13 12:10:22

详细介绍多分类任务(例如实体识别等)中的评估指标(精确率,召回率,F1 score)
先上一张图,这是典型的二分类任务。对于多分类任务类似。
比如对于命名实体识别或者词性标记这种序列标注任务,可以把这类任务看成是多分类任务,例如实体识别就是要将文本中的单词识别出相应的地名,人名,机构名等。
我以四个标签(PER,LOC,ORG,O)的实体识别为例,也就是四分类任务,做出如下表格

标签 PER LOC ORG O
PER 80 2 3 4
LOC 5 90 3 1
ORG 6 8 100 7
O 7 6 3 110

对照着顶上的图,由于是四分类任务,我们要考虑四种情况:
对于PER来说A区域就是80,B区域就是2+3+4=9,C区域就是5+6+7=18,
那么对于类别一PER来说它的P自然就是80/(80+9),R自然就是80/(5+6+7),f1值也就算出来了,其它的三个类别类似,对于LOC,如果感觉不像四个正方形区域就把LOC和PER对换一下一目了然。显然LOC的A区域是90,B区域是5+3+1, C区域是2+8+6

解释一下图片中ABCD区域和表格中数字的含义,A区域也叫True Positive,就是真正类,假如你要预测PER这个类别(那么此时PER是正类,其它三个类别是负类),那么A区域就代表你将原本是PER的正类别正确的预测为PER的数目80,B区域也叫False Positive,就是假正类,也就是你讲原本不是PER的类别预测成了PER的类别,那么精确率P=A/(A+B)就代表预测结果中为正的样本数目中有多少是真正的正样本,C区域也叫False Negative,就是假负类,也就是你将原本是正类PER的类别识别成了其它的三个类别,那么召回率R=A/(A+C)就代表原来样本中为正类的类别数目有多少个被你正确的预测出来,可见精确率是针对预测结果而言的,而召回率是针对原来样本而言的。
F1score=2PRP+RF1_{score}=\displaystyle\frac{2*P*R}{P+R}

那么对于模型而言要看的是整体的f1值,一种简单的办法就是计算四个类别的f1值后取平均作为衡量模型整体f1值的标准