AUC计算公式及python代码

AUC计算公式及python代码前言 auc 的主要用于分析二分类的准确率 并且主要是对回归任务做分析 当然分类也阔以 计算原理一个原理是 roc 曲线的面积 但是比较复杂 代码不好实现所以基本上不会那么写 还一个是基于 rank 的公式计算 原理比较复杂 本文介绍最简单的实现 计算原理 遍历正负样本对正样本的概率大于负样本 auc 1 正样本的概率等于负样本 auc 0 5 正样本的概率小于负样本 auc 0 遍历完毕 auc auc 正负样本对数举个例子 label 1 0 0 pre

前言

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

计算原理

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

计算原理:

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

举个例子:

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

# auc:遍历正负样本对 """ 1、正的概率大于负的,auc加1 2、正的概率等于负的,auc加0.5 3、正的概率小于负的,auc加0 """ def AUC(label, pre): pos = [] neg = [] auc = 0 for 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 += 1 elif pre[i] == pre[j]: auc += 0.5 return 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 metrics auc = metrics.roc_auc_score(label, pre) print('sklearn',auc) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175817.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:21
下一篇 2026年3月26日 下午11:22


相关推荐

  • js深拷贝和浅拷贝具体使用区别_es6深拷贝和浅拷贝

    js深拷贝和浅拷贝具体使用区别_es6深拷贝和浅拷贝“深拷贝” 与 “浅拷贝” 的区别,JS实现深浅拷贝的几种方法

    2022年4月22日
    42
  • 【181212】VC++超市进销存管理系统(Access)源代码

    【181212】VC++超市进销存管理系统(Access)源代码源码下载简介一个相当不错的VC++毕业设计作品,一个超市进销存管理系统,不但界面专业,而且功能也丝毫不落后,编译后运行如上图示。这个进销存系统使用Access作为数据库,系统可完成基础资料维护、销售管理、库存管理、帐务管理、数据管理、辅助工具等,并以系统流程图的方式显示示意图,更直观、更有利于对软件的操作。源码下载地址:点击下载备用下载地址:点击下载…

    2022年5月29日
    42
  • Linux(Ubuntu)系统查看显卡型号

    Linux(Ubuntu)系统查看显卡型号给我的Ubuntu安装显卡驱动时,需要查看显卡型号,因为我的是Windows/Ubuntu双系统,一开始想到的是去windows查看,然后下载驱动,安装成功。方法一、lspci|grep-ivga后来想看一下linux怎么查看显卡型号,搜到命令lspci|grep-ivga,但返回的是一个十六进制数字代码,如下图:遂,继续百度,但都只是说了命令,没解释返回结果什么意思。又……

    2022年7月26日
    8
  • c语言push_back_pushback是什么意思

    c语言push_back_pushback是什么意思push_back()函数的用法函数将一个新的元素加到vector的最后面,位置为当前最后一个元素的下一个元素push_back()在Vector最后添加一个元素(参数为要插入的值)//在vec尾部添加10vector<int>vec;vec.push_back(10);//在容器中添加10intnum=10;vector<int&gt…

    2025年7月8日
    6
  • eclipse中android开发_Android开发教程

    eclipse中android开发_Android开发教程创建第一个Android项目本系列文章主要针对基于Eclipse的IDE下进行Android开发的技术、方法、过程与技巧进行记录。本文将记录,以Win1064位操作系统为例,使用Eclipse创建第一个Android项目,并配置运行的过程。该过程包括:创建Android工程和在Android虚拟设备上运行程序。创建Android工程1)启动Eclipse

    2022年10月4日
    4
  • 2017年04月02日

    2017年04月02日

    2021年9月18日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号