世上最全的模型评价指标解析

分类模型评价指标

评价指标:

准确率 (Accuracy),混淆矩阵 (Confusion Matrix),精确率(Precision)即查准率,召回率(Recall)即查全率,灵敏度(sensitivity),特异度(specificity),TPR,, FPR,PR曲线,平均正确率(AP),mean Average Precision(mAP),交除并(IoU),ROC + AUC,非极大值抑制(NMS),F度量值(F-measure)即F-score,

1. 准确率 (Accuracy)

分对的样本数除以所有的样本数 ,即:准确(分类)率 = 正确预测的正反例数总数 / 所有样本总数。

准确率一般用来评估模型的全局准确程度,不能包含太多信息,无法全面评价一个模型性能。

2. 混淆矩阵 (Confusion Matrix

横轴模型预测的类别统计,纵轴是样本数据的真实标签的类别统计

TP,TN,FP,FN都是从模型预测的结果的角度来说,T即True,指的是预测类别与真实label一致,F即False,模型预测的类别与真实label不一致,请特别谨记这点。
世上最全的模型评价指标解析

对角线上TP,TN表示模型预测label和数据标签一致的数量,所以对角线之和除以测试集总数就是准确率。对角线上数字越大越好

True Positives: 真的正样本,正样本被模型预测为正样本

True Negatives:真的负样本,负样本被模型预测为负样本

False Positives:假的正样本,负样本被模型错误预测为正样本

False Negatives:假的负样本,正样本被模型错误预测为负样本

**TPR(图中tp rate): 它是所有实际正样本中,正确识别的正样本的比例,它和召回率的表达式没有区别, Recall(召回率)=sensitivity(灵敏性)=TPR=TP/(TP+FN),**真正率,可理解为正确的被判断为正确的

FPR(图中fp rate):它是所有实际负样本中,错误的识别为正样本的比例, FPR=FP/(FP+TN),假真率。

TNR 即specificity(特异性):它是所有实际负样本中,正确识别为负样本的比例,,specificity(特异性)= TN/(FP+TN)=1-FPR

3. 精确率(Precision)(即查准率)与召回率(Recall)即(查全率)

上图的具体我们通过韦恩图来解释更易理解,原有数据样本是整个长方形,左边长方形是正样本,右边是负样本。模型对样本预测后会出现四种结果,即图中四种颜色,圆区域是模型预测的正类,其他区域(即false negatives, true negatives)是模型预测的负类。里面绿色的半圆就是TP(True Positives), 红色的半圆就是FP(False Positives), 左边的灰色长方形(不包括绿色半圆),就是FN(False Negatives)。右边的 浅灰色长方形(不包括红色半圆),就是TN(True Negatives)。
世上最全的模型评价指标解析
精确率(Precision)的定义在上图可以看出,是绿色半圆除以红色绿色组成的圆。

精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本,指的是找的对。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),也就是
世上最全的模型评价指标解析

召回率(Recall)的定义也在图上能看出,是绿色半圆除以左边的长方形。

召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了,指的是找的全。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。
世上最全的模型评价指标解析

4. ROC曲线和AUC值

以TPR也即召回率recall为y轴,以FPR为x轴,我们就直接得到了ROC曲线
世上最全的模型评价指标解析

  • 横坐标:假正率(False positive rate, FPR),FPR = FP / [ FP + TN] ,代表所有负样本中错误预测为正样本的概率,假警报率;
  • 纵坐标:真正率(True positive rate, TPR),TPR = TP / [ TP + FN] ,代表所有正样本中预测正确的概率,命中率。即召回率。

当一个样本被分类器判为正例,若其本身是正例,则TPR增加;若其本身是负例,则FPR增加,因此ROC曲线可以看作是随着阈值的不断移动,所有样本中正例与负例之间的“对抗”。曲线越靠近左上角,意味着越多的正例优先于负例,模型的整体表现也就越好。

从FPR和TPR的定义可以理解,TPR越高,FPR越小,我们的模型和算法就越高效,从图上能看出,曲线越接近左上角,分类器的性能越好。从几何的角度讲,ROC曲线下方的面积越大越大,则模型越优。所以有时候我们用ROC曲线下的面积,即AUC值来作为算法和模型好坏的标准。

ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线基本不会产生大的变化(原因是TPR用到的TP和FN同属P列,FPR用到的FP和TN同属N列,所以即使P或N的整体数量发生了改变,也不会影响到另一列。也就是说,即使正例与负例的比例发生了很大变化,ROC曲线也不会产生大的变化,而像Precision使用的TP和FP就分属两列,则易受类别分布改变的影响。

ROC曲线绘制:

(1)根据每个测试样本属于正样本的概率值从大到小排序;

(2)从高到低,依次将每个样本的预测概率作为阈值threshold,即依次将每个样本划分为正例,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本 则TP+1,否则为负样本 则FP+1;

(3)每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。

当我们将threshold设置为1 (即把所有样本均预测为反例)和0(即把所有样本均预测为正例)时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对 连起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。

AUC(Area Under Curve)即为ROC曲线下的面积。AUC越接近于1,分类器性能越好。

**物理意义:**首先AUC值是一个概率值,当你从所有正样本中随机挑选一个正样本以及再从所有负样本中随机选一个负样本,当前的分类算法根据计算得到的置信度Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。由于画ROC曲线时都是先将所有样本按分类器的预测概率排序,所以AUC反映的是分类器对样本的排序能力

计算公式:就是求曲线下矩形面积。
世上最全的模型评价指标解析
AUC主要考察模型对正样本以及负样本的覆盖能力(即“找的全”)

5. IOU

IoU这一值,可以理解为系统预测出来的框与原来图片中标记的框的重合程度。 计算方法即检测结果Detection Result与 Ground Truth 的交集比上它们的并集,即为检测的准确率。
世上最全的模型评价指标解析
6. PR曲线

以精确率为y轴,以召回率为x轴,我们就得到了PR曲线。仍然从精确率和召回率的定义可以理解,精确率越高,召回率越高,我们的模型和算法就越高效。也就是画出来的PR曲线越靠近右上越好。
世上最全的模型评价指标解析

  • 横坐标:召回率recall ( FPR)即查全率,TPR = TP / [ TP + FN] ,代表所有正样本中预测正确的概率。

  • 纵坐标:精确率precision即查准率,P = TP / [ TP + FP] ,代表预测为正的样本中有多少是真正的正样本。

    PR曲线绘制

    这里我们用一张图片作为例子,多张图片道理一样。假设一张图片有M个需要检测的目标,分别是object1,object2,object3共分为三类,使用检测器得到了N个Bounding Box(BB),每个BB里包含BB所在的位置以及object1,object2,object3对应的分数confidence。

    (1),对每一类object i 进行如下操作:

    对模型检测出的N个bounding box中的每个box,计算其与真实M个ground truth(GT)的IOU值,且取其中最大值MaxIOU。设定一个阈值thresh,一般设置thresh为0.5。当MaxIoU < thresh的时候,记录其类别i的分数confidencei以及FPi = 1(表示假的正样本1个),当MaxIoU>=thresh分为以下俩种情况:

    当MaxIoU对应的GT类别为 i 的时候,记录其类别i的分数以及TPi = 1(表示真的正样本1个)。
    当MaxIoU对应的GT类别不为 i 的时候,记录其类别i的分数以及FPi = 1。

    (2),由步骤1我们可以得到N个分数与TP/FP的元组,形如(confidencei, TPi或者FPi),对这N个元组按照confidence进行排序(从大到小)。

    (3),按照顺序1,2,3,4。。。Ni截取(意思是当模型预测1个box,2个box,,,M个box,分别计算对应的recall和precision),计算每次截取所对应获得的recall和precision ,recall = TP总数/M, M是目标实例数量,precision = TP总数/(TP总数+FP总数) ,这里(TP总数+FP总数)即Ni的值,预测框数量,TP总数是当预测框为Ni时,预测的正样本数量。
    这样得到M个recall和precision点,便画出PR曲线了。

AP就是PR 曲线下面的面积,通常来说一个越好的分类器,AP值越高。

计算AP值,代码中实际上是利用微积分定义法(多个小矩形求和),对PR曲线与x轴求面积
​ 假设检测出了N个样本实例中有M个正例,那么我们会得到M个recall值(1/M, 2/M, …, M/M),对于每个recall值r,我们可以计算出对应(r’ > r)的最大precision,然后对这M个precision值取平均即得到最后的AP值。

​ 假设从测试集中共检测出20个box 实例,而测试集中共有6个正例,则PR表如下:
世上最全的模型评价指标解析
mAP是多个类别AP的平均值。这个mean的意思是对每个类的AP再求平均,得到的就是mAP的值,mAP的大小一定在[0,1]区间,越大越好。该指标是目标检测算法中最重要的一个。

MAP主要考察模型对正样本的覆盖能力以及识别能力(即对正样本的“找的全”和“找的对”)

7、PR曲线和ROC曲线比较

PR曲线与ROC曲线的相同点是都采用了TPR (Recall)

ROC曲线特点:

(1)优点:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。因为TPR聚焦于正例,FPR聚焦于负例,使其成为一个比较均衡的评估方法。

在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

(2)缺点:上文提到ROC曲线的优点是不会随着类别分布的改变而改变,但这在某种程度上也是其缺点。因为负例N增加了很多,而曲线却没变,这等于产生了大量FP。像信息检索中如果主要关心正例的预测准确性的话,这就不可接受了。在类别不平衡的背景下,负例的数目众多致使FPR的增长不明显,导致ROC曲线呈现一个过分乐观的效果估计。ROC曲线的横轴采用FPR,根据FPR ,当负例N的数量远超正例P时,FP的大幅增长只能换来FPR的微小改变。结果是虽然大量负例被错判成正例,在ROC曲线上却无法直观地看出来。(当然也可以只分析ROC曲线左边一小段)

PR曲线:

(1)PR曲线使用了Precision,因此PR曲线的两个指标都聚焦于正例类别不平衡问题中由于主要关心正例,所以在此情况下PR曲线被广泛认为优于ROC曲线。

使用场景:

  1. ROC曲线由于兼顾正例与负例,所以适用于评估分类器的整体性能,相比而言PR曲线完全聚焦于正例。
  2. 如果有多份数据且存在不同的类别分布,比如信用卡欺诈问题中每个月正例和负例的比例可能都不相同,这时候如果只想单纯地比较分类器的性能且剔除类别分布改变的影响,则ROC曲线比较适合,因为类别分布改变可能使得PR曲线发生变化时好时坏,这种时候难以进行模型比较;反之,如果想测试不同类别分布下对分类器的性能的影响,则PR曲线比较适合。
  3. 如果想要评估在相同的类别分布下正例的预测情况,则宜选PR曲线。
  4. 类别不平衡问题中,ROC曲线通常会给出一个乐观的效果估计,所以大部分时候还是PR曲线更好。
  5. 最后可以根据具体的应用,在曲线上找到最优的点,得到相对应的precision,recall,f1 score等指标,去调整模型的阈值,从而得到一个符合具体应用的模型。

8、非极大值抑制(NMS)

Non-Maximum Suppression就是需要根据置信度score和预测box的坐标信息,从中找到置信度比较高的bounding box。对于有重叠在一起的预测框,只保留得分最高的那个。

(1)NMS计算出每一个bounding box的面积,然后根据score进行排序,把score最大的bounding box作为队列中首个要比较的对象;

(2)计算其余bounding box与当前最大score与box的IoU,去除IoU大于设定的阈值的bounding box,保留小的IoU得预测框;

(3)然后重复上面的过程,直至候选bounding box为空。

最终,检测了bounding box的过程中有两个阈值,一个就是IoU,另一个是在过程之后,从候选的bounding box中剔除score小于阈值的bounding box。需要注意的是:Non-Maximum Suppression一次处理一个类别,如果有N个类别,Non-Maximum Suppression就需要执行N次。

9、F-Measure

很多情况下,不管是查准率Precision还是查全率Recall均不能比较全面地对我们模型所进行评估。因此,人们提出了F度量值(F-measure)查全率查准率在非负权重β下的加权调和平均值(Weighted Harmonic Mean)
世上最全的模型评价指标解析