AUC是ROC曲线与横坐标围成的面积,如下(图是抄别人的):
根据混淆矩阵
ROC曲线的横轴FPR,和纵轴TPR分别定义为:
F P R = F P F P + T N FPR=\frac{FP}{FP+TN} FPR=FP+TNFP
T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP
所以,FPR和TPR的分母分别是负样本个数和真样本个数,当样本空间确定时,FPR和TPR的分母都是定值。假设我们有M个样本,根据模型预估得到了M个预估分,根据预估分从高到低排序,在设定一个阈值指针,阈值指针从最高分的样本开始向最低分移动,每次移动后,以该阈值指针为分割点,大于等于该阈值指针指向样本预估分的样本,为预测正例,小于的为预测负例,并计算对应的(FPR,TPR)对,这样阈值指针移动完,就得到了M对(FPR,TPR),就可以画ROC曲线了,如下(也是抄别人的):
随便造一组数据,包括N正样本,N负样本,1表示实际的正样本,0表示实际的负样本。假设我们按照模型预测的分数从左到右排序如下(N=12):
Sequence A: 1,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0
预估分从左到右递减
TPR与FPR计算如下,注意分母是个定值。
F P R = F P N FPR=\frac{FP}{N} FPR=NFP
T P R = T P N TPR=\frac{TP}{N} TPR=NTP
我们会计算2N个(FPR,TPR)对,在ROC上画点求曲线围的面积。如果正例数随机减少了一半,变为 N 2 \frac{N}{2} 2N,样本总数就是 3 N 2 \frac{3N}{2} 23N,我们分开看FPR和TPR是如何变化的。
Sequence B: 1,
1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0
首先,FPR的分母不会变,还是N,分子FP表示把负样本预估成正例的个数,对于阈值指针指向的任何一个样本,预估分大于等于该样本对应预估分的负样本,原来有多少,现在还是有多少,可以看一下Sequence A和Sequence B中标红的样本点,其FP均是5。所以,正样本数随机减少了一半后,依据剩余点计算的FPR是没有任何变化的,也就是说ROC曲线上点的横坐标没有任何变化。
再来看TPR,TPR的分母变为 N 2 \frac{N}{2} 2N,那么整个TPR就会变为原来的两倍?当然不是,因为分子TP也会变为原来的 1 2 \frac{1}{2} 21,TP表示把正样本预估成正例的个数,由于我们是随机删掉一半正样本,所以阈值指针指向的任何一个样本点对应的预估分,大于等于该预估分的正样本数也会随机删掉一半,可以看一下Sequence A和Sequence B中标红的样本点,其TP之前是11,现在是5,近似缩小一半。所以,正样本数随机减少了一半后,依据剩余点计算的TPR是没有变化的,也就是说ROC曲线上点的纵坐标没有变化。
总结一下,2N个样本,正样本数随机减少了一半后,样本总数变为 3 N 2 \frac{3N}{2} 23N,这 3 N 2 \frac{3N}{2} 23N个样本计算得到的(FPR,TPR)和以前一样,所以ROC曲线还是没有变,只不过用来画ROC曲线的点减少了 N 2 \frac{N}{2} 2N。
同理,我们把正样本数增多,得到的结果也是一样的。因此正负样本数不均匀和正负样本数均匀得到的ROC曲线很相似,这就是AUC为何会对正负样本数不均匀情况鲁棒的原因。
那么,如何破坏AUC,让他失效呢,也很简单,至少有如下两个方法:
PR曲线如下(图还是抄别人的。。。):
PR曲线画的过程也是从高到低排列预估分,移动阈值指针,只不过PR曲线计算的不是(FPR,TPR)对,计算的是(Recall,Precision)对,Precision和Recall的计算如下:
p r e c i s i o n = T P T P + F P precision = \frac{TP}{TP + FP} precision=TP+FPTP
r e c a l l = T P T P + F N recall = \frac{TP}{TP +FN} recall=TP+FNTP
PR的横坐标,就是AUC的纵坐标,我们根据上面的分析,正样本随机减少一半,PR横坐标不变。但是纵坐标就没那么幸运了,根据上一部分分析,TP还是会减少一半,FP却保持不变,因此总体precision会变小。
同理,正样本随机增加,也会影响PR,所以PR不具有正负样本数分布不均匀的鲁棒性。
Sequence A: 1,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0
Sequence B: 1,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0
AUC(ROC)具有正负样本数分布不均匀的鲁棒性,但至少要保证正负样本都是随机采样;PR不具备正负样本数分布不均匀的鲁棒性。
参考文献:
如何画roc曲线?为什么使用Roc和Auc评价分类器?:http://m.elecfans.com/article/736801.html
P-R曲线深入理解:https://blog.csdn.net/b876144622/article/details/80009867