ROC和AUC

指标物理意义

假设分类器的输出是样本属于正类的socre(置信度),则AUC的物理意义为,任取一对(正、负)样本,正样本的score大于负样本的score的概率。

计算方式

  • 第一种方法取每一个分数作为阈值,划分0和1,然后求得真阳率(TP/(TP+FN))和假阳率(FP/(FP+TN)),然后绘制ROC曲线(真阳率为纵轴,假阳率为横轴),求得ROC曲线的面积就是AUC值。
  • 第二种方法:根据AUC的物理意义,我们计算正样本score大于负样本的score的概率。取N*M(N为正样本数,M为负样本数)个二元组,比较score,最后得到AUC。时间复杂度为O(N*M)。
  • 第三种方法:与第二种方法相似,直接计算正样本score大于负样本的score的概率。我们首先把所有样本按照score排序,依次用rank表示他们,如最大score的样本,rank=n(n=N+M),其次为n-1。那么对于正样本中rank最大的样本(rank_max),有M-1个其他正样本比他score小,那么就有(rank_max-1)-(M-1)个负样本比他score小。其次为(rank_second-1)-(M-2)。时间复杂度为O(N+M)。最后我们得到正样本大于负样本的概率为:
    这里写图片描述

AUC指标的优点

当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。
(在实际的数据集中经常会出现类不平衡现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。)

这里写图片描述
a)和(c)为ROC曲线,(b)和(d)为Precision-Recall(横轴Recall纵轴Precision)曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。
从公式上解释:
ROC曲线只要看TPR和FPR即可,因为TPR和FPR分别反应了正样本分为正样本的概率和负样本分为正样本的概率,所以只要新增的正(负)样本与原来的正(负)样本分布式相同的,这两个值就是不变的,即ROC曲线不变。
对于Precision-Recall曲线,Predision=TP/(TP+FP),可以看到新增加了负样本,TP是不变的,分母会有增加(新增负样本会有一部分被分为正样本),因此Predision下降。

参考:[1]: https://blog.csdn.net/tc-orpion/article/details/78916736