机器学习和统计里面的auc怎么理解?

转自: https://www.zhihu.com/question/39840928


作者:小小丘 (该作者对 auc的意义 讲得非常棒, 感谢付出)
链接:https://www.zhihu.com/question/39840928/answer/84906286
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

看到前面答主的答案,我表示很激动的想来一个简化的版本。
曾经面试的时候被问到过这么一个问题,怎么向一个没有任何计算机、数学、统计等基础的人介绍下什么是AUC,当时我败北了。不过后来我有一天顿悟了,为了检验我的顿悟是否有效,特此一答。
我给出的答案是 AUC是指 从一堆样本中随机抽一个,抽到正样本的概率 比 抽到负样本的概率 大的可能性。 其实这个解释百度下到处都是,我是看别人说的然后理解了。 (这里列出无数参考文献,请自行百度)
详细解释如下: 随机抽取一个样本, 对应每一潜在可能值X都对应有一个抽中的概率P。
按概率从高到矮排个降序, 对于正样本中概率最高的,排序为rank_1, 比它概率小的有M-1个正样本(M为正样本个数), (rank_1 - M) 个负样本。
正样本概率第二高的, 排序为rank_2, 比它概率小的有M-2个正样本,(rank_2 - M + 1) 个 负样本。
以此类推
正样本中概率最小的, 排序为rank_M,比它概率小的有0个正样本,rank_M - 1 个负样本。
总共有MxN个正负样本对(N为负样本个数)。把所有比较中 正样本概率大于负样本概率 的例子都算上, 得到公式(rank_1 - M + rank_2 - M + 1 .... + rank_M - 1) / (MxN) 就是正样本概率大于负样本概率的可能性了。 化简后(因为后面是个等差数列)得:
<img src="https://pic3.zhimg.com/a84974778b7d3c1387971c181876c4e2_b.png" data-rawwidth="571" data-rawheight="113" class="origin_image zh-lightbox-thumb" width="571" data-original="https://pic3.zhimg.com/a84974778b7d3c1387971c181876c4e2_r.png">这就是传说中的AUC公式。这只是用于理解,具体计算时候需要考虑rank平列的情况这就是传说中的AUC公式。这只是用于理解,具体计算时候需要考虑rank平列的情况

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IO流总述

IO流分类 1)按照流向分类&#xff1a; 输入流&#xff1a;读取数据用的 输出流&#xff1a;写数据用的 2)按照读写的数据分类(体系结构) <1>字节流[读写任何类型的文件(任何文件底层都是字节数据)] 字节输入流&#xff1a;IntputStream(抽象类) –FileInuptStream: 读取…

分布式ID生成器的解决方案总结

转载自 分布式ID生成器的解决方案总结在互联网的业务系统中&#xff0c;涉及到各种各样的ID&#xff0c;如在支付系统中就会有支付ID、退款ID等。那一般生成ID都有哪些解决方案呢&#xff1f;特别是在复杂的分布式系统业务场景中&#xff0c;我们应该采用哪种适合自己的解决方案…

IO流相关应用

1.1.字节流复制文件 //运用字节输入输出流将a.txt文件复制到b.txt中 public class Demo1 {public static void main(String[] args) throws IOException {//创建输入流对象FileInputStream fis new FileInputStream("day11_myIO\\a.txt");//可以使用BufferedInputS…

回归模型和分类模型的区别

转自&#xff1a; https://www.zhihu.com/question/21329754 分类和回归的区别在于输出变量的类型。 定量输出称为回归&#xff0c;或者说是连续变量预测&#xff1b; 定性输出称为分类&#xff0c;或者说是离散变量预测。 举个例子&#xff1a; 预测明天的气温是多少度&…

java计算混淆矩阵(分类指标:查准率P,查全率R,P和R的调和均值F1,正确率A)

【0】README 本文使用 java 计算混淆矩阵&#xff0c;并利用 混淆矩阵值计算 分类指标&#xff1b;通用分类指标有&#xff1a; 查准率&#xff0c;查全率&#xff0c;查准率和查全率的调和均值F1值&#xff0c;正确率&#xff0c; AOC&#xff0c; AUC等&#xff1b;本文计算…

什么是CPU密集型、IO密集型?

转载自 什么是CPU密集型、IO密集型&#xff1f;CPU密集型&#xff08;CPU-bound&#xff09; CPU密集型也叫计算密集型&#xff0c;指的是系统的硬盘、内存性能相对CPU要好很多&#xff0c;此时&#xff0c;系统运作大部分的状况是CPU Loading 100%&#xff0c;CPU要读/写I/O(硬…

Properties类与IO流

1.概念 Properties是Map的子类&#xff0c;是一个双列集合&#xff0c;键和值都是字符串类型。Map集合的方法它都能使用&#xff1b; 但是推荐是Properties自己特有的方法&#xff0c;对集合进行操作。 2.特有方法 //properties属于Map集合【该集合一般添加字符串键值对】 /…

什么是无监督学习(监督学习,半监督学习,无监督聚类)?

作者&#xff1a;王丰 链接&#xff1a;https://www.zhihu.com/question/23194489/answer/25028661 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 这个问题可以回答得很简单&#xff1a;是否有监督&#xff08;sup…

Java中的6颗语法糖

转载自 Java中的6颗语法糖语法糖&#xff08;Syntactic Sugar&#xff09;&#xff0c;也称糖衣语法&#xff0c;指在计算机语言中添加的某种语法&#xff0c;这种语法对语言本身功能来说没有什么影响&#xff0c;只是为了方便程序员的开发&#xff0c;提高开发效率。说白了&am…

其他流总述

1.转换流 InputStreamReader: 把InputStream转换为Reader&#xff0c;可以指定编码表 OutputStreamWriter: 把OutputStream转换为Writer&#xff0c;可以指定编码表 //转换流[用于指定编码表读入或写出] public class Demo1 {public static void main(String[] args) throws …

如何查阅相关工作所用到的文献资料

以百度学术为例。 step1&#xff1a;百度学术里输入 最关键的paper 名称&#xff0c;并点击 被引量链接&#xff1b; step2&#xff1a;通过最近年份 或 其他条件 筛选paper &#xff08;注意看发表期刊或会议的级别&#xff09; step3&#xff1a;主要看paper的摘要或 intro&…

递归算法介绍及Java应用实战

转载自 递归算法介绍及Java应用实战 什么是递归算法 递归算法是把问题转化为规模缩小了的同类问题的子问题&#xff0c;然后递归调用函数&#xff08;或过程&#xff09;来表示问题的解。一个过程(或函数)直接或间接调用自己本身&#xff0c;这种过程(或函数)叫递归过程(或函数…

K最近邻分类器

转自&#xff1a; http://www.cnblogs.com/qwertWZ/p/4582096.html 本章介绍了《机器学习实战》这本书中的第一个机器学习算法&#xff1a;k-近邻算法&#xff0c;它非常有效而且易于掌握。首先&#xff0c;我们将探讨k-近邻算法的基本理论&#xff0c;以及如何使用距离测量的方…

多线程安全问题1

1.问题的产生 原因&#xff1a;多个线程操作同一个共享数据。 原理&#xff1a;多个线程在访问共享数据时&#xff0c;由于CPU的随机性&#xff0c;一个线程还没有执行完&#xff0c;执行权被其他线程抢走了&#xff0c;这个时候就有可能出现线程安全问题。 解决方式&#xff…

Java父类强制转换子类原则

转载自 Java父类强制转换子类原则最近&#xff0c;微信群友在讨论子类父类的转换问题&#xff0c;其实不难&#xff0c;给大家用实例来说明一下就很明了了。 我们知道Java中子类转换成父类是没有任何问题的&#xff0c;那父类可以转换成子类吗&#xff1f; 来看下面这段程序&am…

生产者和消费者案例

1.案例描述 这里以吃饭为例&#xff0c;假设有一个桌子&#xff0c;用来存汉堡包&#xff0c;然后有厨师和消费者&#xff0c;厨师往桌子上放汉堡包&#xff0c;消费者从桌子上取走汉堡包。当两者在一个时间段同时进行多次自己的操作时&#xff0c;很明显这就是多线程编程的生…

用Python开始机器学习(4:KNN分类算法)

转自&#xff1a; http://blog.csdn.net/lsldd/article/details/41357931 1、KNN分类算法 KNN分类算法&#xff08;K-Nearest-Neighbors Classification&#xff09;&#xff0c;又叫K近邻算法&#xff0c;是一个概念极其简单&#xff0c;而分类效果又很优秀的分类算法。 他的…

Mybatis传递多个参数的4种方式

转载自 Mybatis传递多个参数的4种方式&#xff08;干货&#xff09;现在大多项目都是使用Mybatis了&#xff0c;但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己写&#xff0c;而写sql就需要传递多个参数。面对各种复杂的业务场景&#xff0c;传递参数也是一…

多线程安全问题2

1.volatile关键字 <1>作用&#xff1a;强制线程每次在使用的时候,都会看一下共享区域最新的值[用于提供线程安全] <2>与synchronized的区别和联系&#xff1a; 把代码块声明为 synchronized&#xff0c;有两个重要后果&#xff0c;通常是指该代码具有 原子性&…

Maven Optional Exclusions使用区别

转载自 Maven Optional & Exclusions使用区别 Optional和Exclusions都是用来排除jar包依赖使用的&#xff0c;两者在使用上却是相反。 Optional定义后&#xff0c;该依赖只能在本项目中传递&#xff0c;不会传递到引用该项目的父项目中&#xff0c;父项目需要主动引用该依赖…