ROC概念
在信号检测理论中,接收者操作特征曲线,或者叫ROC曲线(Receiver operating characteristic curve),用于选择最佳的信号侦测模型、舍弃次佳的模型或者在同一模型中设置最佳阈值。最近在机器学习领域也得到了很好的发展。
ROC分析的是二元分类模型,也就是输出结果只有两种类别的模型,例如(阴性/阳性),(垃圾邮件/非垃圾邮件)
混淆矩阵
ROC 空间
ROC空间将伪阳率(FPR)定义为X轴,将真阳率(TPR)定义为y轴,从(0,0)到(1,1)的对角线将ROC空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。
完美的预测是一个在左上角的点,在ROC空间座标 (0,1)点,X=0 代表着没有伪阳性,Y=1 代表着没有伪阴性(所有的阳性都是真阳性);也就是说,不管分类器输出结果是阳性或阴性,都是100%正确。一个随机的预测会得到位于从 (0, 0) 到 (1, 1) 对角线(也叫无识别率线)上的一个点;最直观的随机预测的例子就是抛硬币。
ROC曲线
将同一二分类模型每个阈值的 (FPR, TPR) 坐标都画在ROC空间里,就成为特定模型的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点 往右上(或右/或上)移动,或不动;但绝不会往左下(或左/或下)移动。
AUC
ROC曲线下方的面积(Area under the Curve of ROC AUC ROC)
AUC计算公式
假设数据集共有M个正样本,N个负样本,预测值也就是M+N个。首先将所有样本按照预测值进行从小到大的排序,并排序编号由1到M+N
- 对于正样本概率最大的,假设排序编号为 r a n k 1 rank_{1} rank1,比它概率小的负样本个数= r a n k 1 rank_{1} rank1 - M;
- 对于正样本概率第二大的,假设排序编号为 r a n k 2 rank_{2} rank