机器学习笔记——roc曲线

接受者操作特征曲线(receiver operating characteristic curve, 或者叫ROC曲线)。

1. 基本概念

分类器是将一个实例映射到一个特定类的过程。roc分析的是二元分类模型。

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

  1. 真阳性(TP):诊断为有,实际上也有病。
  2. 伪阳性(FP):诊断为有,实际上却没有病。
  3. 真阴性(TN):诊断为没有,实际上也没有病。
  4. 伪阴性(FN):诊断为没有,实际上却有病。

2. roc空间

ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。

  • TPR:在所有实际为阳性的样本中,被正确地判断为阳性之比率。
    $$ TPR = \frac{TP}{TP+FN}$$
  • FPR:在所有实际为阴性的的样本中,被错误地判断为阳性之比率。
    $$ FPR = \frac{FP}{FP+TN}$$

给定一个二元分类模型和它的阈值,就能从所有样本的(阳性/阴性)真实值和预测值计算出一个 (X=FPR, Y=TPR) 座标点。

从 (0, 0) 到 (1,1) 的对角线将ROC空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。

完美的预测是一个在左上角的点,在ROC空间座标 (0,1)点,X=0 代表着没有伪阳性,Y=1 代表着没有伪阴性(所有的阳性都是真阳性);也就是说,不管分类器输出结果是阳性或阴性,都是100%正确。

 

 比如上图有4中预测结果:

  • 点与随机猜测线的距离,是预测力的指标:离左上角越近的点预测(诊断)准确率越高。离右下角越近的点,预测越不准。
  • 在A、B、C三者当中,最好的结果是A方法。
  • B方法的结果位于随机猜测线(对角线)上,B的准确度是50% 
  • C虽然预测准确度最差,甚至劣于随机分类,也就是低于0.5(低于对角线)。然而,当将C以 (0.5, 0.5) 为中点作一个镜像后,C'的结果甚至要比A还要好。这个作镜像的方法,简单说,不管C(或任何ROC点低于对角线的情况)预测了什么,就做相反的结论。

3. ROC曲线

一个二元分类模型的阈值可能设定为高或低,每种阈值的设定会得出不同的FPR和TPR。

同一模型每个阈值 的 (FPR, TPR) 座标都画在ROC空间里,就成为特定模型的ROC曲线

下图是人体血液蛋白浓度分布,病人的分布是红色,平均值为A g/dL,健康人的分布是蓝色,平均值是C g/dL。健康检查会测量血液样本中的某种蛋白质浓度,达到某个值(阈值,threshold)以上诊断为有疾病征兆。研究者可以调整阈值的高低(将左上图的B垂直线往左或右移动),便会得出不同的伪阳性率与真阳性率,总之即得出不同的预测准确率。

机器学习笔记——roc曲线_第1张图片

  1.  比较不同分类器时,ROC曲线的实际形状,便视两个实际分布的重叠范围而定,没有规律可循。
  2.  但在同一个分类器之内,阈值的不同设定对ROC曲线的影响,仍有一些规律可循:
  • 当阈值设定为最高时,亦即所有样本都被预测为阴性,没有样本被预测为阳性,此时在伪阳性率 FPR = FP / ( FP + TN ) 算式中的 FP = 0,所以 FPR = 0%。同时在真阳性率(TPR)算式中, TPR = TP / ( TP + FN ) 算式中的 TP = 0,所以 TPR = 0% ,  当阈值设定为最高时,必得出ROC座标系左下角的点 (0, 0)。
  • 当阈值设定为最低时,亦即所有样本都被预测为阳性,没有样本被预测为阴性,此时在伪阳性率FPR = FP / ( FP + TN ) 算式中的 TN = 0,所以 FPR = 100%。同时在真阳性率 TPR = TP / ( TP + FN ) 算式中的 FN = 0,所以 TPR=100% , 当阈值设定为最低时,必得出ROC座标系右上角的点 (1, 1)。
  • 随着阈值的调低:
    TP(真阴性)会逐渐增加,比如从阈值最大到A点部分(红色区域的右边)
    FP(假阴性)会逐渐增加,比如蓝色区域的右边
    FN(伪阴性)会逐渐减少,比如红色区域的左边
    TN(真阴性)会逐渐减少,比如蓝色区域的左边

    FPR和TPR皆必随着阈值调低而增加(或持平)。

4. 曲线下面积(AUC)

ROC曲线下方的面积(英语:Area under the Curve of ROC (AUC ROC))

  • 因为是在1x1的方格里求面积,AUC必在0~1之间。
  • 假设阈值以上是阳性,以下是阴性
  • 若随机抽取一个阳性样本和一个阴性样本,分类器正确判断阳性样本的值高于阴性样本之几率 =AUC
  • 简单说:AUC值越大的分类器,正确率越高。

机器学习笔记——roc曲线_第2张图片

从AUC判断分类器(预测模型)优劣的标准:

  • AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
  • 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
  • AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
  • AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

 

参考文献

1. https://en.wikipedia.org/wiki/Receiver_operating_characteristic 维基百科,如果打不开请自行想办法。

 

你可能感兴趣的:(机器学习)