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 相关文章推荐
python3中str(字符串)的使用教程
Mar 23 Python
Python处理Excel文件实例代码
Jun 20 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 Python
Python实现的从右到左字符串替换方法示例
Jul 06 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
Python将视频或者动态图gif逐帧保存为图片的方法
Sep 10 Python
python实现银行管理系统
Oct 25 Python
pymysql模块的操作实例
Dec 17 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
通过python连接Linux命令行代码实例
Feb 18 Python
python实现图片横向和纵向拼接
Mar 05 Python
python实现商品进销存管理系统
May 30 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 危险函数解释 分析
2009/04/22 PHP
PHP的几个常用数字判断函数代码
2012/04/24 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
javascript每日必学之多态
2016/02/23 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
Python进阶之@property动态属性的实现
2019/04/01 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
Python实现验证码识别
2020/06/15 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
Under Armour西班牙官网:美国知名的高端功能性运动品牌
2018/12/12 全球购物
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
学习作风建设心得体会
2014/10/22 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
小学主题班会教案
2015/08/17 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL