AUC计算

用c++写代码之AUC算法 用c++写代码之AUC算法 算法来源 在统计和机器学习中,常常用AUC来评估二分类模型的性能。AUC的全称是 area under the curve,即曲线下的面积。通常这里的曲线指的是受试者操作曲线(Receiver operating characteristic, ROC)。ROC曲线早在第二次世界大战期间就被使用在电子工程和雷达工程当中,被用于军事目标检测。 后来,ROC曲线也被应用到... 阅读详情

1.  最直观的,根据AUC这个名称,我们知道,计算出ROC曲线下面的面积,就是AUC的值。事实上,这也是在早期 Machine Learning文献中常见的AUC计算方法。由于我们的测试样本是有限的。我们得到的AUC曲线必然是一个阶梯状的。因此,计算的AUC也就是这些阶梯 下面的面积之和。这样,我们先把score排序(假设score越大,此样本属于正类的概率越大),然后一边扫描就可以得到我们想要的AUC。但是,这么 做有个缺点,就是当多个测试样本的score相等的时候,我们调整一下阈值,得到的不是曲线一个阶梯往上或者往右的延展,而是斜着向上形成一个梯形。此 时,我们就需要计算这个梯形的面积。由此,我们可以看到,用这种方法计算AUC实际上是比较麻烦的。 

   2. 一个关于AUC的很有趣的性质是,它和Wilcoxon-Mann-Witney Test是等价的。这个等价关系的证明留在下篇帖子中给出。而Wilcoxon-Mann-Witney Test就是测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。有了这个定义,我们就得到了另外一中计 算AUC的办法:得到这个概率。我们知道,在有限样本中我们常用的得到概率的办法就是通过频率来估计之。这种估计随着样本规模的扩大而逐渐逼近真实值。这 和上面的方法中,样本数越多,计算的AUC越准确类似,也和计算积分的时候,小区间划分的越细,计算的越准确是同样的道理。具体来说就是统计一下所有的 M×N(M为正类样本的数目,N为负类样本的数目)个正负样本对中,有多少个组中的正样本的score大于负样本的score。当二元组中正负样本的 score相等的时候,按照0.5计算。然后除以MN。实现这个方法的复杂度为O(n^2)。n为样本数(即n=M+N) 
   3.  第三种方法实际上和上述第二种方法是一样的,但是复杂度减小了。它也是首先对score从大到小排序,然后令最大score对应的sample 的rank为n,第二大score对应sample的rank为n-1,以此类推。然后把所有的正类样本的rank相加,再减去M-1种两个正样本组合的情况。得到的就是所有的样本中有多少对正类样本的score大于负类样本的score。然后再除以M×N。即 

 

      公式解释:

        1、为了求的组合中正样本的score值大于负样本,如果所有的正样本score值都是大于负样本的,那么第一位与任意的进行组合score值都要大,我们取它的rank值为n,但是n-1中有M-1是正样例和正样例的组合这种是不在统计范围内的(为计算方便我们取n组,相应的不符合的有M个),所以要减掉,那么同理排在第二位的n-1,会有M-1个是不满足的,依次类推,故得到后面的公式M*(M+1)/2,我们可以验证在正样本score都大于负样本的假设下,AUC的值为1

      2、根据上面的解释,不难得出,rank的值代表的是能够产生score前大后小的这样的组合数,但是这里包含了(正,正)的情况,所以要减去这样的组(即排在它后面正例的个数),即可得到上面的公式

      另外,特别需要注意的是,再存在score相等的情况时,对相等score的样本,需要 赋予相同的rank(无论这个相等的score是出现在同类样本还是不同类的样本之间,都需要这样处理)。具体操作就是再把所有这些score相等的样本 的rank取平均。然后再使用上述公式。 

AUC计算方法总结 AUC(Area Under The Curve)是一种用来度量分类模型好坏的一个标准,这里不详细叙述AUC的定义及意义,详见WIKI。 算法1:如下图是一个分类器的结果,计算点形成的折线的面积就是AUC的值  代码如下: public double aucAlg1()    {         double n0 =scores[0].size();//scores[0] 阅读详情

相关推荐

AUC及TensorFlow AUC计算相关

最近在打天池的比赛,里面需要用AUC来评测模型的性能,所以这里介绍一下AUC的相关概念,并介绍TensorFlow含有的函数来计算AUC。 先介绍一些前置的概念。在一个二分类问题中,如果本身是正例(positive),预测正确也预测成正例,则称为真正例(true positive),简称TP,而预测错误预测成了反例,则称为假反例(false negative),简称FN,如果本身是反例(nega...

wtrnash的专栏 2万+

Hive SQL 计算AUC

前置条件: 数据表中已有正负样本标签,和预测分值。 TRUE, 9 FALSE, 8 TRUE, 7 FALSE, 6 这四个样本对应的AUC是0.75。 -- ########## 测试一:########## Lable为True / False. create table tmp.test_score_label( score int, label boolean ); insert into tmp.test_score_label values (9,...

rover 4453

【机器学习】AUC计算(Python实现)

目录 1、sklearn中计算AUC值的方法 2、编写函数实现 auc_calculate AUC理论请看【机器学习】POC & AUC 1、sklearn中计算AUC值的方法 from sklearn.metrics import roc_auc_score auc_score = roc_auc_score(y_truth,y_pred) y_pred即可以是类别,也可以是概率。 roc_auc_score直接根据真实值和预测值计算auc值,省略计算roc的过程。 .

littlemichelle 3万+

C++计算AUC

C++计算AUC

random_repick的专栏 408

AUC计算公式推导

AUC计算公式推导 基本公式推算 基本排名的公式推算 2.详解如何计算AUC? 计算AUC时,推荐2个方法。方法一:在有M个正样本,N个负样本的数据集里。一共有MN对样本(一对样本即,一个正样本与一个负样本)。统计这MN对样本里,正样本的预测概率大于负样本的预测概率的个数。,其中, 这样说可能有点抽象,我举一个例子便能够明白。 ID label pro A 0 0.1 B 0 0.4 C 1 0.35 D 1 0.8 假设有4条样本。2个正样本,2个负样本,那么

NT的博客 4411

AUC计算的两种实现方式以及python代码

AUC计算方法 1.通过ROC曲线面积计算AUC AUC(Area Under Curve)被定义为ROC曲线下的面积。我们往往使用AUC值作为模型的评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。 要绘制ROC曲线,首先需要知道混淆矩阵。 P N P’ TP FP N’ FN TN 其中P,N代表实际...

weixin_43264415的博客 1万+

AUC的两种计算方式

推荐 搜索场景下的auc理解_凝眸伏笔的博客-优快云博客_搜索auc随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。TPRate的意义是所有真实类别为1的样本中,预测类别为1的比例。:真正率FPRate的意义是所有真实类别为0的样本中,预测类别为1的比例。:假正率AUC的优势:AUC的计算方法同时考虑了分类器对于正例和负例的分类能力,在样本不平衡的情况下,依然能够对分类器作出合理的评价。...

凝眸伏笔的博客 3万+

更快的 ROC-AUC:用 C++ 编写的用于二元分类问题的 ROC 的 AUC 的快速计算。-matlab开发

AUC = fastAUC(标签,分数,posclass) 计算涉及两个不同目标的问题(即二元分类问题)的 ROC 曲线下面积 (AUC)。 使用此功能的主要优点是: *速度用C ++编写,它的性能比perfcurve(Matlab统计工具箱)快得多。 在 2000 万个实例的基准测试中,此函数在 perfcurve 方面实现了超过 100 的加速因子。 *独立无需安装统计工具箱即可工作。 请通过邮件发送任何问题、意见和/或建议。

AUC的计算方法

摘要: 在机器学习的分类任务中,我们常用许多的指标,诸如召回率(Recall)、准确率(Precision)、F1值、AUC等。 那么,如果如果手动计算AUC应该要怎么计算呢?相信大家很多时候都是用写好的库直接计算,可能对AUC计算不太了解,下面这篇文章就简单的概述一下AUC的计算方法。 (注:本文的重点其实不在于阐述什么是AUC。因为网上关于这方面的文章实在太多了。但是对于AUC的计算的文

SCUT_Sam 13万+

LabVIEW与MySQL实时数据存储:传感器采集与数据库同步实践

本文详细介绍了如何将LabVIEW与MySQL结合,实现传感器数据的实时采集与高效存储。通过设计合理的数据库表结构、配置LabVIEW数据库连接工具包,并编写核心的采集与存储VI,构建了稳定可靠的数据链路。文章重点分享了批量插入、连接管理、时间同步等关键优化技巧与避坑指南,帮助工程师应对工业监控、环境监测等场景下的实时数据同步挑战。

weixin_29281915的博客 261

一种基于因果干预的少样本学习的故障诊断模型

本文提出CIRNet,一种融合元学习与因果干预的少样本故障诊断框架。针对传统方法易学习伪相关特征的问题,CIRNet通过构建结构因果模型,采用类级和特征级双调整策略消除先验知识干扰。实验在多个轴承/齿轮数据集上验证其有效性,在跨组件任务中准确率最高达93.41%,特征可视化显示更好的类可分性。相比现有方法,CIRNet显著提升了模型泛化能力和可解释性。

hasakie的博客 955

sklearn(一)计算auc:使用sklearn.metrics.roc_auc_score()计算二分类的auc

(1)曲线与FP_rate轴围成的面积(记作AUC)越大,说明性能越好,即图上L2曲线对应的性能优于曲线L1对应的性能。即:曲线越靠近A点(左上方)性能越好,曲线越靠近B点(右下方)曲线性能越差。 (2)A点是最完美的performance点,B处是性能最差点。 (3)位于C-D线上的点说明算法性能和random猜测是一样的–如C、D、E点。位于C-D之上(即曲线位于白色的三角形内)说明算法性能优于随机猜测–如G点,位于C-D之下(即曲线位于灰色的三角形内)说明算法性能差于随机猜测–如F点。

凝眸伏笔的博客 6万+

手把手教你用CubeMX给GD32F103点灯、调串口(附完整工程)

本文详细介绍了如何使用CubeMX为GD32F103开发板配置GPIO点灯和串口通信,包含完整的工程创建、代码构建和测试流程。特别强调了GD32与STM32的差异点及常见避坑技巧,帮助开发者快速上手GD32开发。

weixin_42566424的博客 313

auc是怎么计算的?

1 roc曲线计算auc 我们都知道auc是roc曲线下的面积,但这种计算不方便 2 公式计算auc 有另外一种计算方法: 任意给一个正类样本和一个负类样本,正类样本的score大于负类样本的score的概率 公式如下 M 是正样本的个数,N是副样本的个数 值得是第i个样本的序号。对所有的预测样本的score进行从小到大的排序,然后从1进行标号。 原始样本 模型打分 0.8 0.5 0.6 0.3 0.4.

ustbbsy的博客 1万+

基于深度学习的树木种类识别

本文介绍了基于深度学习的树木种类识别技术。我们将通过深度学习模型和图像处理技术实现对树木的自动识别与分类。首先,我们将介绍深度学习的基本原理和相关算法。接着,我们将详细说明树木种类识别的数据准备、模型构建和训练过程。最后,我们将给出代码示例,帮助读者深入了解和实践该技术。

一键难忘的博客 2315

Android 车联网——CarAudioService介绍(六)

CarAudioService 是 Android Automotive OS 中的一个重要组件,用于管理车辆中的音频功能。它是 Android Auto 的一部分,负责处理车辆音频的播放、控制和路由。CarAudioService 使用标准的 Android 组件架构,基于 Binder 通信机制,提供了一组 API,用于管理车辆音频。它包括以下主要功能:音频路由管理:CarAudioService 可以让开发者控制音频的路由,即将音频发送到不同的输出设备,例如车辆的扬声器、耳机等。

小旭的专栏 3200

matlab计算auc,ROC和AUC介绍以及如何计算AUC

ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,对两者的简单介绍见这里。这篇博文简单介绍ROC和AUC的特点,以及更为深入地,讨论如何作出ROC曲线图以及计算AUC。ROC曲线需要提前说明的是,我们这里只讨论二值分类器。对于分类器,或者说分类算法,评价指标主要有precision,rec...

weixin_39637614的博客 2329

数据分享】中国12.5m数字高程模型(DEM)数据(分省)

数据名称:ALOS 12.5m DEM 数据。数据名称:ALOS 12.5m DEM 数据。数据大小:61.5GB。空间分辨率:12.5m。数据大小:61.5GB。空间分辨率:12.5m。

JData_Engineer的博客 5387

AUC如何计算

AUC计算 AUC简言 AUC(Area Under Curve)是机器学习二分类模型中非常常用的评估指标,相比于F1-Score对项目的不平衡有更大的容忍性,目前常见的机器学习库中(比如scikit-learn)一般也都是集成该指标的计算,但是有时候模型是单独的或者自己编写的,此时想要评估训练模型的好坏就得自己搞一个AUC计算模块,本文在查询资料时发现libsvm-tools有一个非常通俗易懂的...

沐叔 4173

五、实战pxe安装ubuntu 22.04 软raid1(实际生产pxe配置)

这段配置文件是一个cloud-init的自动安装配置,用于自动化部署Ubuntu服务器操作系统。它定义了从系统身份、键盘布局、区域设置到磁盘分区和RAID配置的一系列设置,并且包含了在安装过程的最后阶段执行的一些命令。基础设置version: 1指定了autoinstall配置文件的版本。source定义了安装源,这里是ubuntu-server。identity设置了主机名(hostname)、用户(username)和密码(password注意这里的密码是经过加密的。键盘与语言设置。

jundao1997的专栏 999

69页完整版智慧港口综合解决方案

智慧港口需求4港机远程操控等自动化改造需求自动化码头AGV无线通信及专用视频系统需求安全生产视频监控类需求港机RCMS及设备管理需求岸边智能理货码头三维全景应用智慧港口解决方案5自动化码头AGV/跨运车/无人集卡无线接入港机远控视觉及冗余无线通信视觉集卡防吊起系统集装箱码头岸边智能理货港机RCMS系统无线接入港机智能化管理(无线高清视频监控、一键报警、远程抄表系统)港口拖轮无线接入岸边溢油监测系统TD-LTE覆盖及业务终端接入港口生产管理系统港口可视化集群调度港口GiNMS综合网络设备智能管理全球作业效率最

zuoan1993的博客 2128

auc计算 matlab代码,AUC计算

思路为最终比较划分好测试集和不存在边集【全集1-train-test-对角元】,根据集合中非零元【即边的数目】构建比较矩阵test_rd【比较n次,随机生成n个值右取整作为抽取的要比较的边】,下一步对test的邻接矩阵赋值,相似性指标给予一个分值存入test_pre,然后依据判断条件【test==1】只取其中非零边【为什么?降低内存?】,对应位置的test_pre存入test_data,再把最初的...

weixin_39862097的博客 1025

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AUC,ROC快速计算——Python代码

我们在建模过程需要通过KS,AUC等指标评估模型的效果,关于KS,AUC怎么来的这里就不介绍了,网上有大量的资料介绍。本篇博文重点介绍AUC值怎么快速计算得到。 我们一般计算AUC的时候是根据混淆矩阵先计算出tpr,fpr,通过tpr和fpr可以得到ROC曲线,类似下面的ROC图。 AUC值就是ROC曲线下面的面积,问题是怎么计算呢?可以采用积分方法求得,不过未免有些麻烦。Python的skea...

sinat_30715661的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

sql计算AUC

AUC可以直接根据ROC曲线,利用梯形积分进行计算。此外,还有一个比较有意思的是,可以利用AUC与Wilcoxon-Mann-Whitney检验的U统计量的关系,来计算AUC。这可以从AUC的概率意义推导而来。假设我们将测试集的正负样本按照模型预测得分从小到大排序,对于第j个正样本,假设它的排序为。个正样本前面(得分比它小)的负样本个数为。,那么说明排在这个正样本前面的总样本有。个正样本在所有的正样本里面排第。

程序认生 1045
上一篇: ROC曲线详解
下一篇: 数据挖掘的一些评价标准
小林叔叔
博客等级 码龄12年 11粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值