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 当前全局变量和入口参数的所有属性
Jul 01 Python
详解Python中的__new__()方法的使用
Apr 09 Python
python单元测试unittest实例详解
May 11 Python
python简单实现旋转图片的方法
May 30 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
Python tkinter label 更新方法
Oct 11 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
Python3并发写文件与Python对比
Nov 20 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 Python
Python Pandas读取Excel日期数据的异常处理方法
Feb 28 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数组函数
2008/08/18 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
简单上手Python中装饰器的使用
2015/07/12 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
简单实现python聊天程序
2018/04/01 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
Django models文件模型变更错误解决
2020/05/11 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
美国羊皮公司:Overland
2018/01/15 全球购物
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
城市创卫标语
2014/06/17 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python