分类任务中常用的性能度量

分类任务中常用的性能度量

1.错误率与精度
错误率与精度是分类任务中常用的两者性能度量,既适用于二分类也适用与多分类。概念其实很容理解,错误率即错误分类的样本数(预测结果与真是标记不一致)占总样本数的比例:
分类任务中常用的性能度量 错误率
精度反之,正确分类的样本数(注意:正例分类正确与反例分类正确的和)占总样本数比例。
分类任务中常用的性能度量精度

2.查准率、查全率与F1
错误率和精度虽常用,但并不能满足所以任务要求。比如有时候我们更关心“所有的正例中有多少正例被分类出来了”→查全率,或者“预测正确分类中真正例比例占多少”→查准率
对于二分类问题,我们可以就分类结果得到混淆矩阵如下:
分类任务中常用的性能度量

查准率,又叫准确率,缩写表示用P。查准率是针对我们预测结果而言的,它表示的是预测为正的样例中有多少是真正的正样例。定义公式如3所示。

分类任务中常用的性能度量
精确度,缩写表示用A。精确度则是分类正确的样本数占样本总数的比例。A反应了分类器对整个样本的判定能力(即能将正的判定为正的,负的判定为负的)。所以准确率与精确度有所区别,还需小心对待。

查全率,又叫召回率,缩写表示用R。查全率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确。定义公式如4所示。
分类任务中常用的性能度量

注意:大家可以比较一下查准率和查全率的计算公式。其实就是分母不同,查准率的分母是预测为正的样本数。查全率的分母是原样本的所有正样例数。

当然查准率与查全率这两个指标也可以用于多分类任务中。
可以参考如下链接

多分类问题中查全率和查准率的理解(Precision-Recall)
Tensorflow slim.metrics 常见指标Accuracy、Precision、Recall针对多分类的计算方法

另外,查全率R与查准率P是一对矛盾的度量。一般来说,查准率高的时候查全率往往比较低。比如说要想查准率高,那么我们只把那些得分率高的预测为正例,此时另外一些正例会被漏判从而导致查全率较低。同理若想得到较高的查全率,我们只需把所有的预测都判为正例,那么所有的真正例都被选出来了,但是此时的查准率就很低。通常我们可以绘制出P-R曲线去显示模型在样本上总体上的查全率与查准率。
分类任务中常用的性能度量
在进行比较时,若一个模型的P-R曲线被另一个模型的曲线完全“包住”,则可说后者的性能优于前者。如果两者模型发生了交叉,则难以判断孰优孰劣。

前面已经讲了,P和R指标有的时候是矛盾的,那么有没有办法综合考虑他们呢?我想方法肯定是有很多的,最常见的方法应该就是F-Measure了,有些地方也叫做F-Score,其实都是一样的。
F1是P与R的加权调和平均,公式定义如下
分类任务中常用的性能度量
很容易理解,F1综合了P和R的结果,当F1较高时则说明模型性能比较理想。

3.AP与mAP
AP,mAP是常用于多标签图像分类的评价方法,AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。具体计算方法及理解可以参考下面链接的博文。
ap、mAP多标签图像分类任务的评价方法