在算法面试中,常常会被一个问题AUC的物理含义是什么。本文参考论文1,介绍一下AUC的物理含义。

概念

在二分类模型中,预测值ppp表示事件发生的概率。对于分类任务,需要给出一个阈值(threshold)来判别哪些任务是正例、哪些是负例。AUC(Area Under the Curve)提供了一种判别所有阈值效果的指标。AUC的计算逻辑如下所示:

  • 将模型预测值排序
  • 对于每一个阈值计算TPR(True Positive Rate)和FPR(False Positive Rate)
  • 绘制ROC曲线
  • 使用梯形近似计算AUC

根据上述流程,绘制的AUC曲线如下所示


其中横轴代表FPR,纵轴代表TPR。

AUC与Mann-Whitney U statistic

面试中,常常会问AUC的物理含义,绝大部分人都会说:“给出一个正样本与一个负样本,正样本比负样本分值大的概率”。再进一步,为什么是这样的,绝大部分人就懵逼了。下面将回答这个从"what"到"why"的问题。为了便于解释和推导,这里假设不同样例预测值完全不同(not ties)。针对ties的情况,可参见论文[1]。not ties的情况如下

index label score(100%)score(100 \%)score(100%)
1 1 98.4
2 1 95.2
3 1 94.4
4 0 92.8
5 1 83.2
6 1 81.6
7 1 58.4
8 0 57.6
9 0 28.0
10 0 13.6
11 1 3.2
12 0 2.4
13 0 1.6
14 0 0.8
15 0 0.0

ties情况

index label score(100%)score(100 \%)score(100%)
1 1 98.4
2 1 98.4
3 1 98.4
4 0 98.4
5 1 83.2
6 1 81.6
7 1 58.4
8 0 57.6
9 0 28.0
10 0 13.6
11 1 3.2
12 0 2.4
13 0 1.6
14 0 0.8
15 0 0.0

假设在整个验证集有nnn个样本,eee个正样本,e′=n−ee'=n-ee′=n−e个负样本。由于假设了预测结果not ties,理想状态下,不同阈值可以将样本切分成nnn块。在上述not ties的例子中,阈值为[100,98.3,95.1,94.3,.....][100,98.3,95.1,94.3,.....][100,98.3,95.1,94.3,.....]。此时,每选择一个阈值仅会出现下属两种情况下的一种:

  • TPR上升
  • FPR上升

绘制出来如下所示


其中横轴代表FPR,纵轴代表TPR。从图片可知,只有当TPR上升时,才会有新增面积。此时新增面积为

areagained=e′−fe′earea \ gained = \frac{e'-f}{e'e} area gained=e′ee′−f​

其中fff表示当前点,负例被预测成正例的数量。进而,整个ROC曲线下面的面积为

AUC=1e′e∑i=1e(e′−fi)=1−1e′e∑i=1efiAUC = \frac{1}{e'e}\sum_{i=1}^{e}(e'-f_{i})=1-\frac{1}{e'e}\sum_{i=1}^{e}{f_{i}} AUC=e′e1​i=1∑e​(e′−fi​)=1−e′e1​i=1∑e​fi​

若想求ROC曲线下面的面积,即转化为求F=∑i=1efiF=\sum_{i=1}^{e}{f_{i}}F=∑i=1e​fi​,计算公式如下所示:

F=∑i=1efi=∑i=1e(ri−i)=∑i=1eri−e(e+1)2(1)F=\sum_{i=1}^{e}{f_{i}}=\sum_{i=1}^{e}{(r_{i}-i)}=\sum_{i=1}^{e}{r_{i}}-\frac{e(e+1)}{2} \qquad (1) F=i=1∑e​fi​=i=1∑e​(ri​−i)=i=1∑e​ri​−2e(e+1)​(1)

其中rir_{i}ri​表示当前验证集中的排序位置。对于上面的no ties的例子,∑i=1efi=7\sum_{i=1}^{e}{f_{i}}=7∑i=1e​fi​=7。

熟悉统计学的人知道,有一种检验方式叫Mann–Whitney U test(曼-惠特尼U检验),它的目的是检验两个总体均值为u1u_{1}u1​和u0u_{0}u0​的样本是否有显著差异。给定两个样本,数量分别为eee、e′e'e′,Mann–Whitney U test的计算方式如下:

U=∑i=1er1i−e(e+1)2U = \sum_{i=1}^{e}{r_{1i}}-\frac{e(e+1)}{2} U=i=1∑e​r1i​−2e(e+1)​

其中r1ir_{1i}r1i​表示第iii个正例的rankrankrank。显然Mann–Whitney U test与FFF的计算方式相同,因而将上面的公式组合可知:

AUC=1−Ue′eAUC = 1 - \frac{U}{e'e} AUC=1−e′eU​

即AUCAUCAUC可以直接通过Mann–Whitney U test直接得到。看到这里,可能会有人疑问。维基百科明明写着

AUC=Ue′eAUC = \frac{U}{e'e} AUC=e′eU​

到你这里怎么变成这样了。仔细阅读的读者会发现,公式(1)(1)(1)使用的rir_{i}ri​是按照预测概率从大到小排列的rankrankrank。若rir_{i}ri​按照从小到大排列,此时

U′=∑i=1e(n−ri+1)−e(e+1)2U'=\sum_{i=1}^{e}{(n-r_{i}+1)}-\frac{e(e+1)}{2} U′=i=1∑e​(n−ri​+1)−2e(e+1)​

进而

U+U′=∑i=1e(n+1)−e(e+1)=ee′U + U' = \sum_{i=1}^{e}{(n+1)}-e(e+1)=ee' U+U′=i=1∑e​(n+1)−e(e+1)=ee′

从而

AUC=U′e′eAUC=\frac{U'}{e'e} AUC=e′eU′​

通过上述公式推导可知,在相关文档中为了公式简明,将rir_{i}ri​从大到小转化为从小到大排列,进而产生了维基百科中的公式。

AUC物理含义

通过上面的公式推导可知,AUC的物理含义其实就是Mann–Whitney U test的物理含义。Wilcoxon-Mann-Witney Test的一种计算方法是:

  • 从e×e′e \times e'e×e′个正负样本对中,有多少个中的正样本的score大于负样本的score。
  • 若分值一样,则记为0.5
  • 加和结果除以e×e′e \times e'e×e′

其物理含义是:测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。

总结

本篇博客从AUC的计算出发,介绍了AUC与Mann-Witney Test的等价关系,进而给出AUC的物理含义。接下来将介绍AUC在工业场景的应用。


  1. Areas beneath the relative operating characteristics (ROC) and relative operating levels (ROL) curves: Statistical signi? cance and interpretation ↩︎

AUC(一):AUC与Mann–Whitney U test相关推荐

  1. 【杂纪】从ROC曲线到AUC值,再到Mann–Whitney U统计量

    统计检验中的两类错误 在进行假设检验时,分别提出原假设(Null Hypothesis)和备择假设(Alternative Hypothesis),检验结果可能出现的两类错误: 原假设实际上是正确的, ...

  2. 曼-惠特尼U检验Mann–Whitney U Test

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...

  3. #通俗理解# 什么是ROC曲线和AUC以及AUC存在的问题

    1. 什么是AUC 简单用一句话总结一下AUC(Area under Curve)的含义:在所有样本中随机挑选一个正样本和一个负样本,模型对正样本预测为正的概率为p1,对负样本预测为正的概率为p2,A ...

  4. auuc 评估指标_分类之性能评估指标

    本文主要介绍几种常用的用于分类的性能评估指标,同时介绍如何绘制ROC曲线以及计算AUC值的便捷方法.最后再附上一个绘制ROC曲线和计算AUC的Python源码实现. Precision和Recall ...

  5. 全面梳理:准确率,精确率,召回率,查准率,查全率,假阳性,真阳性,PRC,ROC,AUC,F1

    二分类问题的结果有四种: 逻辑在于,你的预测是positive-1和negative-0,true和false描述你本次预测的对错 true positive-TP:预测为1,预测正确即实际1 fal ...

  6. 精确率、召回率、F1 值、ROC、AUC等分类模型评价指标含义与作用详解

    文章目录 摘要 一.精确率.召回率.F函数.准确率和错误率 1.定义 2.区别与应用 二.ROC曲线.P-R曲线.AUC 1.P-R曲线 2.ROC曲线 3.AUC 摘要 在涉及机器学习领域的分类问题 ...

  7. 机器学习(16)ROC曲线与AUC指标(癌症分类的模型检测--AUC指标)

    目录 一.基础理论 0.引言 1.TPR与FPR 1.TPR(召回率) 2.FPR 2.ROC曲线 3.AUC指标 二.癌症分类的模型检测(AUC指标) 1.正反例转1.0 2.计算AUC指标 总代码 ...

  8. R语言构建LogisticRegression模型并计算AUC指标

    R语言构建LogisticRegression模型并计算AUC指标 目录 R语言构建LogisticRegression模型并计算AUC指标 #AUC指标 #数据加载

  9. 2020-08-24绘制ROC   PR曲线 核心方法总结 ,计算AUC核心方法

    #1   绘制ROC AUC   PR曲线 #核心方法 roc_curve(y_test, preds)  #  preds为概率形式 #source code import matplotlib.p ...

最新文章

  1. linux通信机制总结
  2. 自定义组合控件:Banner、轮播图、广告栏控件
  3. Kafka设计解析(七)- 流式计算的新贵 Kafka Stream
  4. Honeycomb Gym - 102028F(bfs)
  5. 线段树-Count on a Treap-神题
  6. [转]从青铜到王者,一文教你节省90%内存占用
  7. sublime text 3编写C语言或者C++的snippet
  8. 聊聊React的路由React-Router、react-router-dom
  9. 罗永浩宣布春节后回归科技界;2021年年终奖人均水平为2.3万元;消息人士:字节跳动日均进账10.07亿 | EA周报...
  10. 学生签到系统c代码_手把手教你做一个Java web学生信息、选课、签到考勤、成绩管理系统附带完整源码及视频开发教程...
  11. php ood,ooa ood oop编程思想_php oop思想_冒号课堂编程范式与oop思想
  12. idea进入方法快捷键详情大全(idea快捷键大全最新设置)
  13. 机器人也会骑车?日本村田顽童来京秀车技
  14. 苹果手机投屏win10电脑
  15. 大学学习历程简单总结
  16. [励志英语片段]practicing deliberately
  17. 这家协同办公软件厂商,也曾如盛夏莲花般绽放
  18. Linux软件包管理工具-yum
  19. CGB2107-Day03-mybatis
  20. 【散文】一场白露,怎知秋心

热门文章

  1. SEO优化工作需要正能量
  2. 九、为影院添加影片《仿淘票票系统前后端完全制作(除支付外)》
  3. 数据结构课设+校园导航系统+西安邮电大学
  4. 什么是函数式编程,以及优缺点
  5. Cisco 3750/Cisco 4506 交换机vlan划分
  6. 合泰HT32单片机串口通信
  7. java浮动广告_[Java教程]JavaScript制作浮动广告_星空网
  8. Java程序优雅关闭
  9. 怎样从PHP文件中提取特征码,关于判断文件唯一性,怎么提取特征码
  10. 稳、准、狠:京东开放平台的“速度与激情”