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编写百度贴吧的简单爬虫
Apr 02 Python
Python实现LRU算法的2种方法
Jun 24 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
利用Django-environ如何区分不同环境
Aug 26 Python
Python 给某个文件名添加时间戳的方法
Oct 16 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
python简单鼠标自动点击某区域的实例
Jun 25 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
Python numpy数组转置与轴变换
Nov 15 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 02 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
做一个有下拉功能的留言版
2006/10/09 PHP
php常用的url处理函数总结
2014/11/19 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
js实现验证码功能
2020/07/24 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
python 通过 socket 发送文件的实例代码
2018/08/14 Python
利用python实现AR教程
2019/11/20 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
iPython pylab模式启动方式
2020/04/24 Python
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
家长学校工作方案
2014/05/07 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
2014年秘书工作总结
2014/11/25 职场文书
办公室卫生管理制度
2015/08/04 职场文书
七年级作文之下雨天
2019/12/23 职场文书