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数据类型之间的转换
Jun 08 Python
简单谈谈Python中的json与pickle
Jul 19 Python
python下载图片实现方法(超简单)
Jul 21 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
python实现控制台打印的方法
Jan 12 Python
六行python代码的爱心曲线详解
May 17 Python
Python3常用内置方法代码实例
Nov 18 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
Python xlwt模块使用代码实例
Jun 10 Python
Python pip install之SSL异常处理操作
Sep 03 Python
python基础详解之if循环语句
Apr 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页面函数设置超时限制的方法
2014/12/01 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
jQuery textarea的长度进行验证
2009/05/06 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
js实现搜索栏效果
2018/11/16 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
集团公司人力资源部岗位职责
2014/01/03 职场文书
交通事故私了协议书
2014/04/16 职场文书
怎样写离婚协议书
2014/09/10 职场文书
公司员工离职证明书
2014/10/04 职场文书
2014年党务工作总结
2014/11/25 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
python多线程方法详解
2022/01/18 Python