false positive 与 false negative

本文针对 ROC 曲线相关的各种概念进行基本阐述,以供日后查阅

基本概念

二元分类模型的个案预测有四种结局:

  • 真阳性(TP):诊断为有,实际上也有高血压。
  • 伪阳性(FP):诊断为有,实际却没有高血压。
  • 真阴性(TN):诊断为没有,实际上也没有高血压。
  • 伪阴性(FN):诊断为没有,实际却有高血压。
Confusion matrix 实际为 True 实际为 False
检测为 True TP FP
检测为 False FN TN

以上定义来自 wiki,从表中可以很清晰地看出对应的关系,注意 TP 等概念指的是对应的项目个数,同样的,这里并不涉及到各种检测率的概念,只是单纯的程序是否判断正确的个数统计。注意,涉及到多类问题的时候,应该将每一类分开计算,其余类别均属于错误范围内。

ROC 区间

如图:

图中所示:

  • TPR:TP/(TP+FN)
  • FPR:FP/(FP+TN)

从 (0, 0) 到 (1,1) 的对角线将 ROC 空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。图中的 A 是三个分类器中性能最好的一个,而 C 的反向分类确是最完美的一个,意思就是无论 C 分类器给出的判断是什么,均取反即可

ROC 曲线

对于每个不同的分类器来说,分为 1 与 0 总是需要取一个阈值的,也就是可以理解为在神经网络中最后一层,选择怎样的阈值对网络得出的结果进行判断,如下图所示,当设定的阈值进行变化时,整个 ROC 空间会得到一连串的不同坐标,而这些坐标放在一起连成曲线,就能得到所谓的 ROC 曲线,其中最接近左上角的点,就是最佳阈值的取值点

应当注意的是:

  • 当阈值设定为最高时,必得出 ROC 座标系左下角的点 (0, 0)
  • 当阈值设定为最低时,必得出 ROC 座标系右上角的点 (1, 1)
  • 随着阈值调低,ROC 点 往右上(或右/或上)移动,或不动;但绝不会往左下 (或左/或下) 移动。

曲线下面积(AUC)

AUC 从下图中就可以看出代表的含义,就是曲线下的面积占总面积比,不难得到,AUC 的值越大,则分类器的正确率越高,在比较不同的分类模型时,可以将每个模型的 ROC 曲线都画出来,比较曲线下面积做为模型优劣的指标。

其他概念

  • 准确率(precision rate):TP/(TP+FP)
  • 召回率(recall rate):TP/(TP+FN)

准确率代表的是,检测出来的所有的值为1的项当中有多少是检测正确的项,但事实上不一定准确率越高的分类器性能越好,因为还存在召回率的问题,实际操作中,一般要求召回率在85%-100%之间为宜。