AUC-

AUC-Accuracy

简要记录:
除了AUC之外,二分类场景里用得更多的一个评价指标是accuracy,也就是准确率。
比方说经典的用朴素贝叶斯模型去预测邮件是否是垃圾邮件的场景,我们先假设在现实生活中正常邮件和垃圾邮件出现的比例是接近1:1。在模型训练好之后,每来一个样本,我们会用已训练好的模型去预测这个样本是垃圾邮件的概率,所以每个样本都会有一个对应的预测结果prob(概率):

当prob > 0.5时,认为对应的样本(邮件)是垃圾邮件,此时令该样本的label为1
当prob < 0.5时,认为对应的样本(邮件)不是垃圾邮件,此时令该样本的label为0
然后我们就根据预测出来的label和样本真实的label是否相等来计算准确率,准确率越高,我们认为模型的效果越好

也就是说,计算准确率我们需要知道每个样本对应的预测label,而为了获得label,我们需要人为指定一个阈值来对prob进行划分对吧,那为什么上面的例子里阈值是0.5呢?为啥不能设置成0.6、0.7,甚至0.9?

答案当然是可以!!!这个值是人为给定的。但是你会发现,当阈值设定为0.5的时,最终计算出的accuracy会不错,比方说80%;但是如果你随便设定阈值为一个其他值,比方说0.9,你会发现accuracy会很低,也是说即使是相同的模型,选择不同的阈值,最终从准确率上看模型的性能会差别很大。

  • AUC(Area Under Curve)被定义为ROC曲线下的面积。其中,ROC曲线全称为受试者工作特征曲线 (receiver operating characteristic curve),它是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(敏感性)为纵坐标,假阳性率(1-特异性)为横坐标绘制的曲线

假设你的数据有两部分,一部分是预测值probs,例如:probs = [0.9, 0.8, 0.6, 0.7, 0.95];另外一部分是对应的labels,例如:labels = [1, 1, 0, 1, 0]。注意,以下思路或者伪代码都是以Python的形式给出

先将probs和labels组成一个tuple(暂且命名为t)
以probs为key对t从大到小进行排序,例如排序后 t = [(0.95, 0), (0.9,1), (0.8,1), (0.7,1), (0.6,0)]
**

  1. 按probs从高到低计算阈值,过程如下:
    第一个阈值为1(其实这个阈值只要大于0.95即可),大于该阈值的视为正例,小于该阈值为负例,然后按公式计算TPR和FPR,得到ROC图上的一个坐标,此时TPR和FPR都为0

  2. 第二个阈值为(0.95+0.9)/2, 大于该阈值的视为正例,小于该阈值为负例(实际这个阈值只要是小于0.95且大于0.9即可,不一定要是均值),然后按公式计算TPR和FPR,得到ROC图上的第二个坐标

  3. 第三个阈值为(0.9+0.8)/2, 大于该阈值的视为正例,小于该阈值为负例,然后按公式计算TPR和FPR,得到ROC图上的第三个坐标

  4. 重复上述过程,最后一个阈值为0(其实这个阈值只要比probs的最小值小即可),依然是大于该阈值的视为正例,小于该阈值为负例,此时所有样本都被判定为正例,按公式计算TPR和FPR可知,TPR=FPR=1,得到ROC图上的最后一个坐标

**
也就是说,ROC曲线肯定是从坐标(0,0)到坐标(1,1)的一条曲线,而曲线越靠近左上角,说明正样本中混入的负样本越少,模型对正负样本的区分能力越强,此时ROC曲线下方的面积越大;当给定某一个阈值时,正负样本刚好被隔开,即预测值大于该阈值的刚好都是正样本,预测值小于该阈值的刚好都是负样本,这个模型就可以认为是一个完美的模型,此时ROC曲线下方的面积就是1。至于这个完美的阈值是多少,我们并不需要知道,只需要存在这样一个阈值就行了

假设有M个正样本和N个负样本 从M个正样本中随机抽取一个样本a,其prob为p_a, 然后从N个负样本中随机抽取一个样本b,其prob为p_b,这样一共有 [公式] 个抽取结果,每个抽取结果是一个pair (p_a, p_b)
假设所有抽取结果中有K个结果满足p_a > p_b,那么 auc = k/(M*N)

**

> 文章参考:https://zhuanlan.zhihu.com/p/82978513

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值