2018-05-03 开胃学习Data系列 - ROC
在做决策时,ROC分析能不受成本/效益的影响,给出客观中立的建议。
分类模型(又称分类器,或诊断)是将一个实例映射到一个特定类的过程。
ROC分析的是二元分类模型,也就是输出结果只有两种类别的模型,例如:
(阳性/阴性)(有病/没病)(垃圾邮件/非垃圾邮件)(敌军/非敌军)。
当讯号侦测(或变数测量)的结果是一个连续值时,类与类的边界必须用一个阈值(英语:threshold)来界定。
举例来说,用血压值来检测一个人是否有高血压,测出的血压值是连续的实数(从0~200都有可能),以收缩压140/舒张压90为阈值,阈值以上便诊断为有高血压,阈值未满者诊断为无高血压。二元分类模型的个案预测有四种结局:
真阳性(TP):诊断为有,实际上也有高血压。
伪阳性(FP):诊断为有,实际却没有高血压。
真阴性(TN):诊断为没有,实际上也没有高血压。
伪阴性(FN):诊断为没有,实际却有高血压。
Ture Positive
False Positve
相对比较好记忆
这个东西可以合成 confusion matrix 中文是 混淆矩阵
ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。
-
TPR:在所有实际为阳性的样本中,被正确地判断为阳性之比率。
-
TPR=TP/(TP+FN)
-
也就是阳性判断对的概率
-
FPR:在所有实际为阴性的样本中,被错误地判断为阳性之比率。
-
FPR=FP/(FP+TN)
-
也就是阴性判断对的概率
-
准确度 (ACC, accuracy)
-
ACC = (TP + TN) / (P + N)
-
(真阳性+真阴性) / 总样本数
-
点与随机猜测线的距离,是预测力的指标:离左上角越近的点预测(诊断)准确率越高。离右下角越近的点,预测越不准。
-
在A、B、C三者当中,最好的结果是A方法。
好的,接下来说曲线:
同一个二元分类模型的阈值可能设定为高或低,每种阈值的设定会得出不同的FPR和TPR。
将同一模型每个阈值 的 (FPR, TPR) 座标都画在ROC空间里,就成为特定模型的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、FP、TN、FN都是累积次数,TN和FN随着阈值调低而减少(或持平),TP和FP随着阈值调低而增加(或持平),所以FPR和TPR皆必随着阈值调低而增加(或持平)。
→ 随着阈值调低,ROC点 往右上(或右/或上)移动,或不动;但绝不会往左下(或左/或下)移动。
ROC下的面积 AUC
ROC曲线下方的面积(英语:Area under the Curve of ROC (AUC ROC)),其意义是:
- 因为是在1x1的方格里求面积,AUC必在0~1之间。
- 假设阈值以上是阳性,以下是阴性;
- 若随机抽取一个阳性样本和一个阴性样本,分类器正确判断阳性样本的值高于阴性样本之机率 = AUC 。
- 简单说:AUC值越大的分类器,正确率越高。
从AUC判断分类器(预测模型)优劣的标准:
- AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
- 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
- AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
- AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。