分类器的评价指标

首先介绍四个概念:TP、TN、FP和FN,下表其实就是混淆矩阵(Confusion Matrix)
分类器的评价指标

准确率(Accuarcy)

这个大家肯定非常熟悉,直接摆出计算公式

Accuracy:\frac{分类正确的样本数}{样本总数} = TP + TNTP + TN + FP + FN\frac{TP\ +\ TN}{TP\ +\ TN\ +\ FP\ +\ FN}

缺点:当样本比例不平衡时,准确率用来分类器的如正例的数量999个,负例1个,一个分类器把所有样本都预测成正例,此时的准确率高达99.9%,但很显然这个分类器是毫无价值的。

精确率(Precision)和召回率(Recall)

精确率又叫查准率:被预测为正例的样本中有多少是真正的正例
Precision:\frac{真正例数}{预测的正例数} = TPTP + FP\frac{TP}{TP\ +\ FP}
误检率 = 1-查准率

召回率又叫查全率:样本中的正例有多少被正确预测出来
Recall:\frac{真正例数}{样本的正例数} = TPTP + FN\frac{TP}{TP\ +\ FN}
漏检率 = 1-查全率

注意:Precision和Recall往往是一对矛盾的关系,一般来说,P高了,R就低;R高了,P就低。在现实场景中,往往根据需要着重提高某一指标。比如在一些疾病检测领域,往往更关注查全率,最近的新冠肺炎检测工作,每个人需要自我隔离14天,宁可错杀一千,不可放过一个。

正因P和R往往是一对矛盾的关系,所以我们需要综合考虑两者的性能,由此产生F-score:
F = (a² +1)P  Ra²(P + R)\frac{(a²\ +1)P\ * \ R}{a²(P\ +\ R)}
当a取1的时候,就是常见的F1-score:
F1 = 2PRP + R\frac{2PR}{P\ +\ R}

ROC和AUC

和前面几个指标一样,ROC和AUC也是为了评价分类器好坏而引入的概念,ROC的全名叫做Receiver Operating Characteristic,其实就是在二维平面上的一个曲线——ROC curve。平面的横坐标是false positive rate(FPR),纵坐标是true positive rate(TPR)。

AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的performance。

TPR:其实就是查全率,TPR = TPTP + FN\frac{TP}{TP\ +\ FN}

FPR:和查全率刚好相反,样本中的负例有多少被错误预测成正例,FPR = FPFP + TN\frac{FP}{FP\ +\ TN}

那么对于某一具体分类器,不是只能算出一个TPR和一个FPR么,那在平面图中只有一个点,所谓的ROC可是一条曲线呀,这可能是大家第一次碰到ROC比较疑惑的点。

在分类任务中,模型的输出往往并不直接是类别,而是属于该类别的概率值,比如在二分类中,某样本属于类别A的概率为0.8,默认判断的阈值是0.5,由于0.8>0.5,所以我们认为该样本属于类别A,但如果我们调整这个阈值呢?比如改为0.9,那么该样本就被认为是类别B了,所以阈值的选择会影响分类结果。

选定一个阈值,我们就可以得到一个点对(FPR,TPR),让阈值在[0,1]的区间内变化,就可以得到许多点对,将这些点对连起来,就形成ROC曲线了。

为什么ROC曲线必过(0,0)和(1,1)点?
当判断阈值为0时,所有的样本都被预测成正例,此时TPR为1,FPR为1;当判断阈值为1时,所有的样本都被预测成负例,此时TPR为0,FPR也为0

分类器的评价指标
为什么说一般的分类器AUC值介于0.5和1之间?
因为一个随机猜测的分类器画出来的ROC曲线如上图的虚线所示,是一条直线,AUC为0.5,如果一个分类器的AUC值小于0.5,那么该分类器还不如随机预测的效果好,是毫无意义的,反而应该和它对着干。

AUC的物理意义:
假设分类器的输出是样本属于正类的socre(置信度),则AUC的物理意义为,任取一对(正、负)样本,正样本的score大于负样本的score的概率。(如何证明博主目前还不清楚)

AUC如何计算:
1:直接计算ROC曲线下方的面积。在真实场景中,样本个数往往是有限的,所以画出来的ROC曲线图如右图所示,面积为一个个小的梯形面积之和,计算的精度与阈值的选取间隔有关。

2:根据AUC的物理意义:我们计算正样本score大于负样本的score的概率。取NMN*M(N为正样本数,M为负样本数)个二元组,比较score,最后得到AUC。时间复杂度为O(N*M)。

3:与第二种方法相似,直接计算正样本score大于负样本的score的概率。我们首先把所有样本按照score排序,依次用rank表示他们,如最大score的样本,rank=n(n=N+M),其次为n-1。那么对于正样本中rank最大的样本(rank_max),有M-1个其他正样本比他score小,那么就有(rank_max-1)-(M-1)个负样本比他score小。其次为(rank_second-1)-(M-2)。最后我们得到正样本大于负样本的概率为:
分类器的评价指标
时间复杂度为O(N+M)

参考:
https://blog.****.net/yangzishiw/article/details/95613257