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脚本实现xls(xlsx)转成csv
Apr 10 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
pandas string转dataframe的方法
Apr 11 Python
Python 保存矩阵为Excel的实现方法
Jan 28 Python
Python实现微信机器人的方法
Sep 06 Python
python RC4加密操作示例【测试可用】
Sep 26 Python
python3.x 生成3维随机数组实例
Nov 28 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
python+selenium+Chrome options参数的使用
Mar 18 Python
python UIAutomator2使用超详细教程
Feb 19 Python
OpenCV 图像梯度的实现方法
Jul 25 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
JavaScript中的其他对象
2008/01/16 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
js中的string.format函数代码
2020/08/11 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Cython 三分钟入门教程
2009/09/17 Python
python检测服务器是否正常
2014/02/16 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
python 字符串常用方法汇总详解
2019/09/16 Python
python hash每次调用结果不同的原因
2019/11/21 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
python 实现控制鼠标键盘
2020/11/27 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
2014年九一八事变演讲稿
2014/09/14 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
MySQL学习必备条件查询数据
2022/03/25 MySQL