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中删除文件的程序代码
Mar 13 Python
python调用新浪微博API项目实践
Jul 28 Python
Java及python正则表达式详解
Dec 27 Python
对python .txt文件读取及数据处理方法总结
Apr 23 Python
python实现连续图文识别
Dec 18 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
Sep 07 Python
Pytorch 实现focal_loss 多类别和二分类示例
Jan 14 Python
python——全排列数的生成方式
Feb 26 Python
Python+Appium实现自动化测试的使用步骤
Mar 24 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
如何基于python实现单目三维重建详解
Jun 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
php中使用sftp教程
2015/03/30 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
Jquery Ajax请求代码(2)
2011/01/07 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
答题辅助python代码实现
2018/01/16 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
对python判断是否回文数的实例详解
2019/02/08 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
4s店机修工岗位职责
2013/12/20 职场文书
《我的第一本书》教学反思
2014/02/15 职场文书
会计核算科岗位职责
2014/03/19 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
承诺函格式模板
2015/01/21 职场文书
个人工作年终总结
2015/03/09 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
医学会议开幕词
2016/03/03 职场文书
golang slice元素去重操作
2021/04/30 Golang