先上一张图,这是典型的二分类任务。对于多分类任务类似。
比如对于命名实体识别或者词性标记这种序列标注任务,可以把这类任务看成是多分类任务,例如实体识别就是要将文本中的单词识别出相应的地名,人名,机构名等。
我以四个标签(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)就代表原来样本中为正类的类别数目有多少个被你正确的预测出来,可见精确率是针对预测结果而言的,而召回率是针对原来样本而言的。