ROC曲线和AUC值
ROC曲线和AUC值
ROC曲线
ROC曲线(Receiver Operating Characteristic)全称:受试者工作特征曲线
提到ROC曲线就要先说明一下两个概念:FPR(伪正类率),TPR(真正类率)
它们都是对分类任务的一个评测指标。
对于一个二分类任务(假定为1表示正类, 0表示负类),对于一个样本,分类的结果总共有四种:
类别实际为1,被分为0,FN(False Negative)
类别实际为1,被分为1,TP(True Positive)
类别实际为0,被分为1,FP(False Positive)
类别实际为0,被分为0,TN(True Negative)
而FPR(False Positive Rate)= FP /(FP + TN),即负类数据被分为正类的比例
TPR(True Positive Rate)= TP /(TP + FN),即正类数据被分为正类的比例
简而言之: FPR:对->对 TPR:错->对 ,很容易看出来FPR越高越好,TPR越低越好。
对于样本数据,我们使用分类器对其进行分类,分类器会给出每个数据为正例的概率,我们可以针对此来设定一个阈值,当某个sample被判断为正例的概率大于这个阈值时,认为该sample为正例,小于则为负例,然后通过计算我们就可以得到一个(TPR , FPR)对,即图像上的一个点,我们通过不断调整这个阈值,就得到若干个点,从而画出一条曲线。
并且阈值增大,TPR和FPR都会减小,这是为什么呢?
现在举一个简单明了的例子:
假如有一堆苹果,其中好的苹果有100个,坏的苹果有50个,现在有一批人来从这堆苹果中挑选出好的来,并且不同的人挑选的水平不一致。
现在其中一号选手挑选的苹果,挑选出来的苹果中:好的有25个,坏的有25个,那么FPR=25/50=0.5,TPR=25/100=0.25
因为不同的选手挑选苹果的要求不一样,现在又二号选手,他的要求更加严格(理解为阈值越大),他最终只挑选出来了20个苹果,其中:好的苹果有10个,坏的苹果有10个,那么 FPR=10/50=0.2, TPR=10/100=0.1
可以很清楚的发现挑选苹果越严格(阈值)增大,TPR和FPR都会减小。因为阈值越高,更少的样本会被分类为正确的,这会直接导致TPR和FPR减小。
现在不同的选手对应的一组(FPR,TRP),然后将FPR作为x轴,TRP作为y轴,多个点连成的曲线就叫做ROC曲线。
例如下图这种:

AUC值
了解完ROC曲线之后,AUC值就更加明了,AUC值(Area Under Curve)就是ROC曲线下的面积,取值为0-1。

- AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
- 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
- AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
- AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
ROC的优点
ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。下图是ROC曲线和Precision-Recall曲线的对比:

在上图中,(a)和©为ROC曲线,(b)和(d)为Precision-Recall曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,©和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。




