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格式化压缩后的JS文件的方法
Mar 05 Python
python中zip和unzip数据的方法
May 27 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
Python中的函数作用域
May 07 Python
python 为什么说eval要慎用
Mar 26 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
python实现图片横向和纵向拼接
Mar 05 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
python 动态绘制爱心的示例
Sep 27 Python
PYTHON InceptionV3模型的复现详解
May 06 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 strtr() 函数使用说明
2008/11/21 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
JavaScript进制转换实现方法解析
2020/01/18 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python3基础之基本运算符概述
2014/08/13 Python
python中PIL安装简单教程
2016/04/21 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python中count函数简单的实例讲解
2020/02/06 Python
如何理解python面向对象编程
2020/06/01 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
C#公司笔试题
2014/03/28 面试题
展会邀请函范文
2014/01/26 职场文书
实习单位评语
2014/04/26 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书