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 相关文章推荐
在类Unix系统上开始Python3编程入门
Aug 20 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
django基础之数据库操作方法(详解)
May 24 Python
virtualenv实现多个版本Python共存
Aug 21 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
Python日志无延迟实时写入的示例
Jul 11 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
Python爬虫使用代理IP的实现
Oct 27 Python
python 读取更新中的log 或其它文本方式
Dec 24 Python
python实现信号时域统计特征提取代码
Feb 26 Python
keras多显卡训练方式
Jun 10 Python
获取python运行输出的数据并解析存为dataFrame实例
Jul 07 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
星际原理概述
2020/03/04 星际争霸
使用PHP实现Mysql读写分离
2013/06/28 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
php实现记事本案例
2020/10/20 PHP
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
高一自我鉴定
2013/12/17 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
保险经纪人求职信
2014/03/11 职场文书
自我鉴定总结
2014/03/24 职场文书
委托公证书范本
2014/04/03 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
2014年大学班长工作总结
2014/11/14 职场文书