为什么要用AUC

  • 因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。

  • 在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),此时如果用precision/recall等指标的话,数据分布的波动就会出现预测的较大波动

  • AUC考虑了分类器对于正例和负例的分类能力,在样本不平衡的情况下,依然能够对分类器作出合理的评价

  • 下图是ROC曲线和Precision-Recall曲线的对比,(a)和(c)为ROC曲线,(b)和(d)为Precision-Recall曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。

  • 可以看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。

平面的横坐标是false positive rate(FPR),纵坐标是true positive rate(TPR)

  • ROC曲线是一系列threshold下的(FPR,TPR)数值点的连线。此时的threshold的取值分别为测试数据集中各样本的预测概率,但取各个概率的顺序是从大到小的。

AUC
AUC其实就是上面ROC曲线下的面积,最多的就是说AUC评估的是随机给定一个正样本和一个负样本,模型对正样本的预测概率大于模型对于负样本预测概率的概率,听起来很绕口,但是呢,你别说,AUC还真是表达的是这么个含义。

啰嗦了这么多,本文的重点来了,既然我说了AUC就是表达的这么个含义,那么我肯定得给出数学证明,因为涉及到许多的公式,所以我这里选择以贴图的形式来推导,使用的设备还是我的小ipad(这东西真香),下面开始整。

证明
我这里全部使用我用ipad画的图了~有点难看,大家凑合看一下吧,讲的不明白的地方可以留言。

按照定义,AUC即ROC曲线下的面积,而ROC曲线的横轴是FPRate,纵轴是TPRate,当二者相等时,即y=x,如下图:

表示的意义是:对于不论真实类别是1还是0的样本,分类器预测为1的概率是相等的。

换句话说,分类器对于正例和负例毫无区分能力,和抛硬币没什么区别,一个抛硬币的分类器是我们能想象的最差的情况,因此一般来说我们认为AUC的最小值为0.5(当然也存在预测相反这种极端的情况,AUC小于0.5,这种情况相当于分类器总是把对的说成错的,错的认为是对的,那么只要把预测类别取反,便得到了一个AUC大于0.5的分类器)。
而我们希望分类器达到的效果是:对于真实类别为1的样本,分类器预测为1的概率(即TPRate),要大于真实类别为0而预测类别为1的概率(即FPRate),即y >x,因此大部分的ROC曲线长成下面这个样子:

2021-09-02AUC相关推荐

  1. 橘子CPS联盟操作手册2021.09

    橘子CPS联盟操作手册2021.09 目录 橘子CPS联盟操作手册2021.09 橘子CPS联盟是干嘛的 橘子CPS基本操作流程 PC端操作 1.注册 2.登陆 3.渠道管理 4.分享网站 5.分享网 ...

  2. 2021.09.27 MySQL笔记

    2021.09.27 MySQL笔记 文章目录 2021.09.27 MySQL笔记 一.展示当前存在的所有数据库 二.使用(选中)一个数据库 三.创建一个数据表 四.查询并展示该数据库内的所有数据表 ...

  3. 实习日志 (2021.09.13)

    2021.09.13星期一 今天把之前的算法题终于给弄明白了,并能够按照自己的思路去把他给完成,总结这个题目并不是很难,最重要的是要把链表给弄懂,一开始由于我对链表不是很熟悉,导致我在写该题目的时候花 ...

  4. 2021.09青少年软件编程(Python)等级考试试卷(三级)

    2021.09青少年软件编程(Python)等级考试试卷(三级) 一.单选题(共25题,每题2分,共50分) 1.使用map函数可以实现列表数据元素类型的转换,而无需通过循环.则将列表L=['1',' ...

  5. 2021.09.24—皮皮与帅帅的第二篇情话

    2021.09.24我们小情书的第二天 每天晚上,小兔子都会一个人来到溪水边,坐在地上数着星星.而且他个人也非常喜欢一闪一闪的东西.对于小兔子来说,每颗星星都是特别的,于是她就给每颗星星都起了一个可爱 ...

  6. 《惢客创业日记》2021.09.15(周三)套路的最高境界

    今天,凉粉儿给我发了一段她想的关于惢客的宣传词:"你被套路过吗?想不再被套路吗?上惢客."总结一句话是"不被套路上惢客".我觉得能把惢客跟套路联系在一起,很贴切 ...

  7. Go 1.18将原生支持fuzz test | Gopher Daily (2021.09.21) ʕ◔ϖ◔ʔ

    每日一谚:Clear is better than clever. Go技术生态 Go 1.18合并了对Fuzz测试原生支持的代码 - https://github.com/golang/go/com ...

  8. 2021.09.27-10.3 AI行业周刊(第65期):坚持的力量

    本周话题:坚持的力量 国庆节花费了13个小时,从无锡开车回老家. 原本只需要4个小时,结果生生的开了一天,虽然很累,但是回家乡的执念一直在坚持. 开车回家的一路上,一直在回想这些年坚持做的很多事情: ...

  9. 详解即将于Go 1.18加入的Go泛型特性 | Gopher Daily (2021.09.27) ʕ◔ϖ◔ʔ

    每日一谚:use errors.Is(err, pkg.ErrFoo) rather than err == pkg.ErrFoo. Go技术生态 详解即将于Go 1.18加入的Go泛型特性 - ht ...

  10. Go程序内存泄露问题快速定位 | Gopher Daily (2021.09.01) ʕ◔ϖ◔ʔ

    每日一谚:Less is more. Go技术生态 github针对go仓库提供免费的持续benchmark服务 - https://github.com/marketplace/gobencher ...

最新文章

  1. 【阿里云新品发布·周刊】第12期
  2. 就算是戴上口罩,AI也知道你在说什么丨EMNLP 2020最佳论文
  3. keras系列︱keras是如何指定显卡且限制显存用量
  4. 大数据分析-裙子颜色蓝黑还是白金是怎么炒作起来的?
  5. 关于HOOK API Lib 0.1 For Delphi
  6. 机器学习中的有监督学习,无监督学习,半监督学习
  7. PyTorch中MaxPool的ceil_mode属性
  8. python读取excel
  9. shell下正则表达式与其工具grep
  10. 微擎应用笔记3--manifest.xml文件使用说明
  11. php重签ipa,ipa重签(fastlane - sigh)
  12. php类的继承和,详细对比php中类继承和接口继承
  13. 松下伺服电机a6测试软件,松下A6伺服选型步骤
  14. 微信赞赏功能升级设置中的坑
  15. influxdb java api使用_Influxdb入门使用
  16. 如何制作GIF表情包,GIF怎么做
  17. 彩色模型RGB,HSI,HSV,CMYK区分
  18. Matlab求时变微分方程组解,Matlab求常微分方程组的解析解
  19. win32com word表格内指定位置插入数据
  20. Web项目实战 | 购物系统v1.0 | 开发记录(一) | 大学生闲置物品交易系统 | 选择页面模板(附资源),使用 JQuery AJAX实现注册、登陆

热门文章

  1. AppLinks使用详解
  2. 《51单片机应用开发从入门到精通》——2.10 变频报警实例
  3. Maven_1 安装配置
  4. nginx + lua 构建网站防护waf(一)
  5. 浅谈压缩感知(二十七):压缩感知重构算法之稀疏度自适应匹配追踪(SAMP)
  6. STL笔记 ( 迭代器 )
  7. 第四周项目1-三角形类的构造函数
  8. Windows phone 7
  9. 投身管理工作(项目经理修炼手册正文的开头)
  10. Deepin在matlab的安装