ROC和AUC简介

背景

由于工作原因,遇到了许多二分类的问题,例如,通过一些算法进行模型训练,我们能得到某个用户u对新闻i的评分预测值v(通常介于0和1之间),v大于某个预测阈值就 给 用户推荐,否则就不推荐,这是典型的二分类问题,那么我如何评价这个模型呢?我怎么知道这个模型预估的好不好呢?经过mentor介绍,了解到ROC和AUC,下面详细介绍这两个衡量方法。

ROC

受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve)。得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应,只不过是在几种不同的判定标准下所得的结果而已。接受者操作特性曲线就是以虚报概率为横轴,击中概率为纵轴所组成的坐标图,和被试在特定刺激条件下由于采用不同的判断标准得出的不同结果画出的曲线。
ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。传统的诊断试验评价方法有一个共同的特点,必须将试验结果分为两类,再进行统计分析。ROC曲线的评价方法与传统的评价方法不同,无须此限制,而是根据实际情况,允许有中间状态,可以把试验结果划分为多个有序分类,如正常、大致正常、可疑、大致异常和异常五个等级再进行统计分析。因此,ROC曲线评价方法适用的范围更为广泛。

上面说了一大堆估计没几个能看懂的,各位看官接着往下看吧:
上文说到了ROC是为了评判二分类的分类器,既然是二分类,那一定对应着这四种情况:
  1. 预测为阳性,真实值为阴性(伪阳性)
  2. 预测值为阴性,真实值 为阳性(伪阴性)
  3. 预测值为阴性,真实值的确是阴性(真阴性)
  4. 预测值为阳性,真实值 的确是阳性(真阳性)

而ROC曲线的横坐标是FPR(false positive rate),纵坐标是TPR(true positive rate)
FPR = FP/(FP + TN) = FP/所有真实值为阴性的样本个数
TPR = TP/(TP + FN) = TP/所有真实值为阳性的样本个数
我们肯定希望TPR为1,FPR为0,这样所有样本都分类正确了,但是实际上,几乎不可能出现这种情况。
阈值设定的越高,FPR和TPR都会减少,每设定一个阈值,我们 就能得到一个FPR和TPR,将这些点画到图上就成了ROC曲线。

AUC

AUC是ROC曲线下与横坐标轴之间的面积,面积越大分类器越好。

ROC曲线的优势

当样本的正例和负例数量相差太大时,ROC曲线波动并不明显,很稳定。评价分类器不受限于正例和负例的个数比例。
计算AUC:

第一种方法:AUC为ROC曲线下的面积,那我们直接计算面积可得。面积为一个个小的梯形面积之和。计算的精度与阈值的精度有关。 
第二种方法:根据AUC的物理意义,我们计算正样本score大于负样本的score的概率。取N*M(N为正样本数,M为负样本数)个二元组,比较score,最后得到AUC。时间复杂度为O(N*M)。 
第三种方法:与第二种方法相似,直接计算正样本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)。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值