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 11 Python
Python中使用item()方法遍历字典的例子
Aug 26 Python
Python切片用法实例教程
Sep 08 Python
Python中利用函数装饰器实现备忘功能
Mar 30 Python
在Python的Django框架上部署ORM库的教程
Apr 20 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
Python标准模块--ContextManager上下文管理器的具体用法
Nov 27 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
详解python的argpare和click模块小结
Mar 31 Python
简单了解python反射机制的一些知识
Jul 13 Python
python 消除 futureWarning问题的解决
Dec 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
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
php中strtotime函数性能分析
2016/11/20 PHP
PHP实现的策略模式示例
2019/03/20 PHP
JS之小练习代码
2008/10/12 Javascript
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
python 上下文管理器使用方法小结
2017/10/10 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
python之yield和Generator深入解析
2019/09/18 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
企业办公室岗位职责
2014/03/12 职场文书
个人先进材料范文
2014/12/30 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis