AUC计算方法与Python实现代码


Posted in Python onFebruary 28, 2020

-AUC计算方法

-AUC的Python实现方式

AUC计算方法

AUC是ROC曲线下的面积,它是机器学习用于二分类模型的评价指标,AUC反应的是模型对样本的排序能力。它的统计意义是从所有正样本随机抽取一个正样本,从所有负样本随机抽取一个负样本,当前score使得正样本排在负样本前面的概率。

AUC的计算主要以下几种方法:

1、计算ROC曲线下的面积。这是比较直接的一种方法,可以近似计算ROC曲线一个个小梯形的面积。几乎不会用这种方法

2、从AUC统计意义去计算。所有的正负样本对中,正样本排在负样本前面占样本对数的比例,即这个概率值。

具体的做法就是它也是首先对prob score从大到小排序,然后令最大prob score对应的sample 的rank为n,第二大score对应sample的rank为n-1,以此类推。

然后把所有的正类样本的rank相加,再减去M-1种两个正样本组合的情况。

得到的就是所有的样本中有多少对正类样本的score大于负类样本的score。

最后再除以M×N。

公式如下:

AUC计算方法与Python实现代码

AUC的Python实现

通过上面方法二的公式,AUC计算的Python实现如下:

def calAUC(prob,labels):
  f = list(zip(prob,labels))
  rank = [values2 for values1,values2 in sorted(f,key=lambda x:x[0])]
  rankList = [i+1 for i in range(len(rank)) if rank[i]==1]
  posNum = 0
  negNum = 0
  for i in range(len(labels)):
    if(labels[i]==1):
      posNum+=1
    else:
      negNum+=1
  auc = 0
  auc = (sum(rankList)- (posNum*(posNum+1))/2)/(posNum*negNum)
  print(auc)
  return auc

其中输入prob是得到的概率值,labels是分类的标签(1,-1)

以上这篇AUC计算方法与Python实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中用于计算对数的log()方法
May 15 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
python实现下载pop3邮件保存到本地
Jun 19 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 Python
python 字符串常用方法汇总详解
Sep 16 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
浅谈Python 参数与变量
Jun 20 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
Oct 30 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
PyQt QMainWindow的使用示例
Mar 24 Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 #Python
Python计算IV值的示例讲解
Feb 28 #Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 #Python
Python自动采集微信联系人的实现示例
Feb 28 #Python
python代码实现TSNE降维数据可视化教程
Feb 28 #Python
Python range与enumerate函数区别解析
Feb 28 #Python
使用python的turtle函数绘制一个滑稽表情
Feb 28 #Python
You might like
PHP 面向对象 final类与final方法
2010/05/05 PHP
php数组随机排序实现方法
2015/06/13 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
Python简单获取自身外网IP的方法
2016/09/18 Python
Python迭代和迭代器详解
2016/11/10 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
Django中的ajax请求
2018/10/19 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
详解rem 适配布局
2018/10/31 HTML / CSS
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
幼儿园小班植树节活动方案
2014/03/04 职场文书
2014年学前班工作总结
2014/12/08 职场文书