参考博文,特别的好!!!: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)。

最新文章

  1. Leetcode 4Sum
  2. Java线程(七):Callable和Future
  3. C++ 虚函数在基类与派生类对象间的表现及其分析
  4. BZOJ-1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法+乱搞
  5. [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)
  6. 矢量切片(Vector tile)
  7. 隐藏input光标和输入内容方法
  8. 网页中嵌入google地图
  9. django 单点登录思路-装饰器
  10. Node.js 使用 RSA 做加密
  11. File类 详解!
  12. vue 定义方法执行方法 获取数据 改变数据 执行方法传值 以及事件对象
  13. [leetcode]128. Longest Consecutive Sequence最长连续序列
  14. Windows系统崩溃后快速恢复Oracle数据库的妙招
  15. B+/-Tree原理
  16. scala 2.11.6 卸载 2.12.6 安装
  17. hdu 1828 Picture 切割线求周长
  18. Selenium Webdriver定位元素的几种方式
  19. solrCloud相关的管理命令
  20. 剑指 offer set 23 n 个骰子的点数

热门文章

  1. Ventoy的UEFI模式安全启动操作说明
  2. lagou数据爬取
  3. webStorm关于ESlint6语法格式化解决方案
  4. mycat 简单介绍
  5. ApacheCN JavaScript 译文集 20211122 更新
  6. EKS助力小白实践云原生——通过k8s部署wordpress应用
  7. 在IDE中添加widfly依赖
  8. Android生成xml
  9. ios xib约束适配要点
  10. 第2章 selenium开发环境的搭建