形象理解AUC计算公式

形象理解AUC计算公式形象理解 AUC 计算公式 AUC 是评价一个二分类器性能的主流数值指标 定义为 ROC 曲线下方的面积 但这个算起来比较复杂 需要统计假阳性 另一个定义更直观 随机给一个正样本和一个负样本 多大概率正样本的 score 更高 换一种说法 假设正样本有 MMM 个 负样本有 NNN 个 在所有 M NM NM N 个正负样本对中 有多少正样本比负样本分高 提高 AUC 意味着 将所有样本按 score 排序 正样本要尽量排在负样

形象理解AUC计算公式

AUC是评价一个二分类器性能的主流数值指标,定义为ROC曲线下方的面积,但这个算起来比较复杂,需要统计假阳性。另一个定义更直观,随机给一个正样本和一个负样本,多大概率正样本的score更高。

换一种说法,假设正样本有 M M M个,负样本有 N N N个,在所有 M ∗ N M*N MN个正负样本对中,有多少正样本比负样本分高。提高AUC意味着,将所有样本按score排序,正样本要尽量排在负样本前面。各大博客贴出的AUC计算公式为
A U C = ∑ 正 样 本 R a n k i − 0.5 ∗ ( M + 1 ) ∗ M M ∗ N AUC=\frac{\sum_{正样本}{Rank_i} – 0.5 * (M+1) * M}{M*N} AUC=MNRanki0.5(M+1)M
下面给不能一眼看懂这个公式的童鞋(比如当年的我)举几个例子,希望能有帮助。

举个例子—- n 2 n^2 n2算法

Rank 5 4 3 2 1
正负性 + +

如果稍差一点,6个正负样本[(5, 4), (5, 2), (5, 1), (3, 4), (3, 2), (3, 1)]对中只有(3, 4)正样本没排在负样本之前, A U C = 5 / 6 AUC=5/6 AUC=5/6

Rank 5 4 3 2 1
正负性 + +

再看,这次[(5, 4), (5, 3), (5, 1), (2, 4), (2, 3), (2, 1)] 里有2个正样本没排在负样本之前, A U C = 4 / 6 AUC = 4/6 AUC=4/6

Rank 5 4 3 2 1
正负性 + +

改进—-动态规划

上面的穷举法时间复杂度为 O ( n 2 ) O(n^2) O(n2), 其实可以考虑,对每个正样本来说,它能贡献分子中的几项,比如上面的例子,右边有几个样本可以用动态规划从右往左扫一遍得出,贡献几项可以这样得出:e.g. Rank为 r r r的正样本比它后面 r − 1 r-1 r1个样本排得前,扣除它右边的正样本数即可,复杂度 O ( n ) O(n) O(n)

Rank 5 4 3 2 1
正负性 + +
右边有几个正样本 1 1 1 0 0
贡献几项 5-1-1=3 0 0 2-1=1 0

再进一步

由上可知, A U C AUC AUC的分子计算需要对正样本的Rank值求和,减正样本数,再扣除每个正样本右边正样本的数量之和,聪明的你一定发现了,既然有 M M M个正样本,右边正样本数量之和一定为 ( M − 1 ) + . . . + 2 + 1 (M-1) + … + 2 + 1 (M1)+...+2+1,那么分子就是
∑ i = 1 M R a n k 正 样 本 i − M − [ ( M − 1 ) + . . . + 2 + 1 ] = ∑ i = 1 M R a n k 正 样 本 i − M ( M + 1 ) 2 \sum_{i=1}^{M}{Rank_{正样本i}} – M – [(M-1) + … + 2 + 1] = \sum_{i=1}^{M}{Rank_{正样本i}} – \frac{M(M+1)}{2} i=1MRankiM[(M1)+...+2+1]=i=1MRanki2M(M+1)

(完)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175747.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:31
下一篇 2026年3月26日 下午11:31


相关推荐

  • keil c51注册机2032

    keil c51注册机2032keilc51是一款非常优秀的C语言单片机编程软件,同时也是美国KeilSoftware公司出品的51系列软件,是兼容单片机C语言软件开发系统的最新版本,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而使得用户易学易用。但是软件是需要收费的,或者是功能上有所限制,因此小编今天为大家带来了keilc51注册码,同样也是注册机,详细的使用教程,以软件安装为例,且期限是到2032年有效,亲测有效,有需要的朋友欢迎下载体验。原文链接:http://www.ddooo.com/soft

    2022年6月12日
    54
  • 嵌入式学习网站推荐[通俗易懂]

    嵌入式学习网站推荐[通俗易懂]嵌入式学习网站推荐  http://blog.chinaunix.net/uid-2413049-id-158374.html转到这里来是为了自己日后好找:-)2.  TheFirstStopfortheLatestICsandComponents非常好的关于微处理器,DSP,可以编程控制器资讯的网站,更新非常快。强烈推荐一些领导级别的人常去,了解行

    2022年5月23日
    35
  • 游戏开发完整流程

      1. 立项   Ø 一个项目立项的原因可能性非常多,有可能是公司拿到一个好的IP,也有可能是几个负责人有个很棒的idea,亦或是老板的梦想是做一个XX类型的游戏,这边不做过多的讨论。   Ø 立项过程中应该包含市场调查和产品定位,需要分析当前市场并且预测未来市场趋势,同时还要知道产品面对的对象以及这些对象应该有的特征、消费习惯等等。  …

    2022年4月5日
    366
  • 读取位置时发生访问冲突0xC0000005_应用程序异常0xc0000409

    读取位置时发生访问冲突0xC0000005_应用程序异常0xc0000409转首先排除一种小概率事件就是系统冲突导致的,比如系统盘目录存在类似的第三方库文件,程序运行将崩溃,并报错0xC0000005:读取位置0x00000000时发生访问冲突。上面的意思就是你吧值付给了不该赋给的变量,或者说你把值付给了不能付给的变量(或者常量)(1)最简单也最直接的错误可能就是scanf()的问题,我们都知道输入的时候都是scanf(“%格式”,&变量),那…

    2022年10月3日
    5
  • 云安全基线

    云安全基线云安全基线参考实践

    2026年3月19日
    2
  • mysql要怎么做乐观锁_mysql乐观锁详解

    mysql要怎么做乐观锁_mysql乐观锁详解乐观锁 OptimisticLo 相对悲观锁而言 乐观锁机制采取了更加宽松的加锁机制 悲观锁大多数情况下依靠数据库的锁机制实现 以保证操作最大程度的独占性 但随之而来的就是数据库性能的大量开销 特别是对长事务而言 这样的开销往往无法承受 而乐观锁机制在一定程度上解决了这个问题 乐观锁 大多是基于数据版本 Version 记录机制实现 何谓数据版本 即为数据增加一个版本标识 在

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号