Confusion Matrix

作者 Mingjiang Shi 日期 2019-06-02
Confusion Matrix

在多分类任务中,confusion matrix是一种比较好的方式看查看分类器的性能的指标。

以下为一个confusion matrix的示例,分类器将输入分成三类,分别是ABC。

category A B C
A 90 5 5
B 0 95 5
C 2 0 98

confusion matrix中的每行表示该分类被分到每个类别中的数量。比如第一行表示A被分类到其他分类的数量,其中90个被正确地分到A中,另外各有5个被分到B和C中。理想的分类器的confusion matrix应该只有对角线上有元素,其他地方都是0,表示每个分类都完全正确。

有了confusion matrix,我们还可以计算每个分类的recall和precision。

category A B C recall
A 90 5 5 90/(90+5+5)=90%
B 0 95 5 95/(0+95+5)=95%
C 2 0 98 98/(2+0+98)=98%
precision 90/92=97.8% 95% 98/(5+5+98) = 90.7% accuracy=94.3%

recall就是召回率,表示分类正确的数量除以该分类总的数量。比如,A总共有100个样本,只有90个被正确分类,因此召回率就是90%。在confusion matrix中,只需要将对角线上的元素除以该行的和就是该分类的召回率。

precision就是精确率,表示分类到某个分类中有多少是真正属于该分类的。看上面的confusion matrix,总共有92个元素分类到A中,其中真正属于A有90个,因此A的精确率就是90/92=97.8。在confusion matrix中,只需要将对角线的元素除以该列的和就是该分类的精确率。

除了recall和precision以外,我们还可以在confusion中计算accuracy,accuracy表示分类正确的元素数量除以总的数量。上述例子中就是对角线上的元素和除以总的元素(90+95+98)/300 = 94.3%。

通过confusion matrix,我们可以很直观第看到每个分类的recall和precision,还能看到错误分类的情况。有了我们对分类器的性能有更进一步的认识了,这比只有一个accuracy指标要好很多了。