ROC/AUC以及相关知识点
2024-08-23 14:50:53
参考博文,特别的好!!!:https://www.jianshu.com/p/82903edb58dc
AUC的计算:
法1:AUC为ROC曲线下的面积,那我们直接计算面积可得。面积为一个个小的梯形面积(曲线)之和。计算的精度与阈值的精度有关。
法2:根据AUC的物理意义,我们计算正样本预测结果大于负样本预测结果的概率。取n1*n0(n1为正样本数,n0为负样本数)个二元组,比较score(预测结果),最后得到AUC。时间复杂度为O(N*M)。
- 取n1*n0(n1为正样本数,n0为负样本数)个二元组,比较score,即每取一个正样本,再取一个负样本,对他们的预测结果(LR的预测结果是概率)进行比较,比如取正样本a,预测其为正样本的概率是0.8,负样本b,预测其为负样本的概率是0.3, 0.8>0.3,这一组的:正样本预测结果大于负样本预测结果的概率就是1。
法3:我们首先把所有样本按照score排序,依次用rank表示他们,如最大score的样本,rank=n (n=n0+n1,其中n0为负样本个数,n1为正样本个数),其次为n-1。那么对于正样本中rank最大的样本,rank_max,有n1-1个其他正样本比他score小,那么就有(rank_max-1)-(n1-1)个负样本比他score小。其次为(rank_second-1)-(n1-2)。最后我们得到正样本大于负样本的概率为
AUC=∑正样本rank(score)−n1∗(n1+1)2n0∗n1AUC=∑正样本rank(score)−n1∗(n1+1)2n0∗n1
时间复杂度为O(N+M)。
最新文章
- Leetcode 4Sum
- Java线程(七):Callable和Future
- C++ 虚函数在基类与派生类对象间的表现及其分析
- BZOJ-1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法+乱搞
- [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)
- 矢量切片(Vector tile)
- 隐藏input光标和输入内容方法
- 网页中嵌入google地图
- django 单点登录思路-装饰器
- Node.js 使用 RSA 做加密
- File类 详解!
- vue 定义方法执行方法 获取数据 改变数据 执行方法传值 以及事件对象
- [leetcode]128. Longest Consecutive Sequence最长连续序列
- Windows系统崩溃后快速恢复Oracle数据库的妙招
- B+/-Tree原理
- scala 2.11.6 卸载 2.12.6 安装
- hdu 1828 Picture 切割线求周长
- Selenium Webdriver定位元素的几种方式
- solrCloud相关的管理命令
- 剑指 offer set 23 n 个骰子的点数