前言

auc的主要用于分析二分类的准确率,并且主要是对回归任务做分析,当然分类也阔以。

计算原理

一个原理是roc曲线的面积,但是比较复杂,代码不好实现所以基本上不会那么写,还一个是基于rank的公式计算,原理比较复杂,本文介绍最简单的实现。

计算原理:

  • 遍历正负样本对
  • 正样本的概率大于负样本,auc += 1
  • 正样本的概率等于负样本,auc += 0.5
  • 正样本的概率小于负样本,auc += 0
  • 遍历完毕,auc = auc / 正负样本对数

举个例子:

label = [1, 0, 0,]
pre = [0.9, 0.8, 0.3]
正负样本对有:(label[0],label[1]),(label[0],label[2])
因为pre[0]>pre[1],所以auc += 1,
因为pre[0]>pre[2],所以auc += 1,
总对数为2:
所以auc = (1 + 1)/2 = 1

python代码-------算法手撕auc建议写这个!!!:

# auc:遍历正负样本对
"""
1、正的概率大于负的,auc加1
2、正的概率等于负的,auc加0.5
3、正的概率小于负的,auc加0"""def AUC(label, pre):pos = []neg = []auc = 0for index,l in enumerate(label):if l == 0:neg.append(index)else:pos.append(index)for i in pos:for j in neg:if pre[i] > pre[j]:auc += 1elif pre[i] == pre[j]:auc += 0.5return auc * 1.0 / (len(pos)*len(neg))if __name__ == '__main__':label = [1, 0, 0, 0, 1, 0, 1, 0]pre = [0.9, 0.8, 0.3, 0.1, 0.4, 0.9, 0.66, 0.7]print(AUC(label, pre))from sklearn import metricsauc = metrics.roc_auc_score(label, pre)print('sklearn',auc)

AUC计算公式及python代码相关推荐

  1. python求反余弦_余弦相似度计算公式:python代码找出相似文章

    余弦相似度计算公式:python代码找出相似文章 用TF-IDF算法可以自动提取关键词.除了找到关键词,怎么找到与原文章相似的其他文章.比如,"百科TA说"在词条最下方,还提供多条 ...

  2. BPR贝叶斯个性化推荐算法—推荐系统基础算法(含python代码实现以及详细例子讲解)

    BPR贝叶斯个性化排序算法 一.问题导入 二.显示反馈与隐式反馈 2.1 显式反馈与隐式反馈基本概念 2.2 显式反馈与隐式反馈的比较 2.3 显式反馈与隐式反馈的评价方法 2.3.1 显式反馈数据模 ...

  3. Python 代码转 Latex 公式,这个开源库用一行代码帮你搞定

    转自 | 机器之心 数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的.在编写代码时,我们常常需要定义数学公式的计算形式.像 S=r^2 这样简单的数学公式,大概不会出 ...

  4. Python代码转Latex公式,这个开源库用一行代码帮你搞定

    视学算法报道 编辑:小舟 转载自公众号:机器之心 你的代码中有数学公式吗? 数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的.在编写代码时,我们常常需要定义数学公式的 ...

  5. catboost原理以及Python代码

    原论文: http://learningsys.org/nips17/assets/papers/paper_11.pdf catboost****原理: One-hot编码可以在预处理阶段或在训练期 ...

  6. 【机器学习】一文读懂层次聚类(Python代码)

    本篇和大家介绍下层次聚类,先通过一个简单的例子介绍它的基本理论,然后再用一个实战案例Python代码实现聚类效果. 首先要说,聚类属于机器学习的无监督学习,而且也分很多种方法,比如大家熟知的有K-me ...

  7. 【机器学习】太香啦!只需一行Python代码就可以自动完成模型训练!

    自动化机器学习(Auto-ML)是指数据科学模型开发的管道组件自动化.AutoML 减少了数据科学家的工作量并加快了工作流程.AutoML 可用于自动化各种管道组件,包括数据理解,EDA,数据处理,模 ...

  8. 目标检测基本概念理解之IoU(交并比)以及Python代码实现

    目标检测基本概念理解之IoU(交并比) 交并比理解 Python代码实现 计算IoU,矩形框的坐标形式为xyxy 计算IoU,矩形框的坐标形式为xywh 交并比理解 在检测任务中,使用交并比(Inte ...

  9. 随机森林原理详解及python代码实现

    随机森林(RF)算法 1.算法原理 2.对数据的要求(无需规范化) 3.算法的优缺点 4.算法需要注意的点 5.python代码实现(待更......) 导入相关包 读取数据并预处理(必须处理缺失值) ...

最新文章

  1. 四十七、磁盘调度算法
  2. java面试请你谈谈mysql_Java面试题之MySQL
  3. Android Studio升级中的“未找到默认活动”
  4. ef 子表和父表不同时保存_canon粉不懂镜头参数?我只能嘲笑你
  5. 软件开发模型:瀑布模型,增量模型,原型模型,螺旋模型,喷泉模型,敏捷开发模型
  6. html超链接下划线改虚线_怎么把下划线变成虚线
  7. 集成Cortex-M0内核-- Integration and Implementation Manual手册学习
  8. “鲲鹏”展翅 宝德“自强”
  9. UVa 437 The Tower of Babylon (DAG最长路)
  10. 电影《终结者2018》
  11. NRF24L01 无线通信模块使用方法
  12. TransactionTemplate VS @transaction
  13. app2sd 与 A2SD+
  14. 阅读总结(计算机专业大学生的注意事项)
  15. “你不认识我,那你干嘛插我的队?”
  16. 网易云音乐(一)爬取全部歌手及歌手id
  17. 大数据hbase nosql数据库
  18. android 空间动态,Android手机QQ空间新版:玩转GIF动态说说
  19. xlrd/xlwt读写excel文件
  20. 【涨姿势】电商领域的SPU和SKU

热门文章

  1. 异步就是异步,根本就没有 异步非阻塞IO这个说法。阻塞 非阻塞,同步I/O 异步I/O 的区别
  2. 理论上有多少tcp连接
  3. 倪健中:全球元宇宙与中国文化精神 | 钱学森诞辰111周年系列活动开幕仪式
  4. Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)
  5. PaddleLite使用比特大陆硬件(bm)编译和预测
  6. 机器学习模型自我代码复现:GBDT
  7. linux 命名管道通信速度,《Linux 进程间通信》命名管道:FIFO
  8. 如何 在java中输入字符
  9. java输入单个字符
  10. 以为是 unable to start correctly (0xc0000142) 实际上却是 gfluidimgproc_func.simd.hpp文件找不到的解决方法(含opencv编译使用)