【概率统计】从统计角度理解AUC:一步步揭开神秘面纱

从统计角度理解AUC:一步步揭开神秘面纱

在机器学习和数据分析领域,AUC(Area Under the Curve)是一个常用的评估指标,但对很多人来说,它的统计意义和计算过程有些晦涩。本文将用通俗易懂的语言,带你一步步从统计角度理解AUC是什么,它是如何计算的,以及如何通过代码实现这一过程。

什么是AUC?

AUC的全称是"Area Under the Receiver Operating Characteristic Curve",即ROC曲线下的面积。简而言之,AUC衡量的是一个分类模型的好坏,数值在0到1之间。AUC的值越接近1,模型的性能越好。具体来说,AUC可以解释为:随机选择一个正样本,它的预测概率大于随机选择的一个负样本的预测概率的概率

AUC的数学公式

从数学角度看,AUC可以用下面的公式表示:

A U C = 1 n × m ∑ I ( y i > y j ) AUC = \frac{1}{n \times m} \sum I(y_i > y_j) AUC=n×m1I(yi>yj)

其中:

  • n n n 是正样本的数量
  • m m m 是负样本的数量
  • ∑ \sum 表示对所有正负样本对 (i, j) 的求和
  • I I I是指示函数,如果 y i y_i yi(正样本的预测概率)大于 y j y_j yj(负样本的预测概率),则 I ( y i > y j ) = 1 I(y_i > y_j) = 1 I(yi>yj)=1,否则 I ( y i > y j ) = 0 I(y_i > y_j) = 0 I(yi>yj)=0

这个公式直观地说明了AUC衡量的是正样本的预测概率大于负样本的预测概率的概率。

AUC的计算步骤

让我们通过一个简单的例子,逐步了解AUC的计算过程。

1. 准备数据

假设我们有100个正样本和100个负样本,每个样本都有一个预测概率。为了简化问题,我们随机生成这些预测概率和标签。

import numpy as np# 随机生成100个正样本(标签为1)和100个负样本(标签为0)的预测概率
np.random.seed(0)
n = 100
preds = np.concatenate([np.random.rand(n), np.random.rand(n)])
labels = np.concatenate([np.ones(n), np.zeros(n)])

2. 排序

接下来,我们需要对所有样本的预测概率进行排序,并记录对应的标签。

# 得到排序后的索引
sorted_indices = np.argsort(preds)
# 按照这些索引对标签和预测概率进行排序
sorted_labels = labels[sorted_indices]
sorted_preds = preds[sorted_indices]

3. 计算每个正样本的贡献

对于每一个正样本,我们计算它的预测概率大于多少个负样本的预测概率。我们可以通过遍历所有样本来实现这一点。

counts = []
for i in range(2 * n):# 计算有多少样本的预测概率小于当前样本count = np.sum(sorted_preds[:i] < sorted_preds[i])counts.append(count)
counts = np.array(counts)

4. 计算AUC

我们把所有正样本的贡献值加起来,再除以正负样本对的总数,得到AUC。

# 计算AUC
auc = np.mean(counts[sorted_labels == 1]) / n
print('AUC: ', auc)

5. 验证结果

最后,我们可以使用sklearn库的roc_auc_score函数来验证我们的结果是否正确。

from sklearn.metrics import roc_auc_score# 使用sklearn计算AUC
sklearn_auc = roc_auc_score(labels, preds)
print('sklearn AUC: ', sklearn_auc)

总结

AUC作为分类模型性能的评价指标,其统计意义在于衡量一个随机选择的正样本的预测概率大于一个随机选择的负样本的预测概率的概率。至此,相信你已经对AUC的计算过程有了更清晰的理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/44469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis的入门导读(一)

目录 单机架构 分布式系统 个人总结 一.Redis的介绍 二.Redis特性 三.Redis的快原因 四.Redis的应用场景 五.Redis的总结 由于Redis和分布式系统息息相关&#xff0c;因此我们需要先了解一下&#xff0c;分布式系统&#xff01; 接下来就是分布式系统的演化过程。 单…

PG在还没有pg_class的时候怎么访问基础系统表?

在没有pg_class的时候&#xff0c;数据库怎么访问系统表&#xff1f;这个问题可以分成两个阶段来看&#xff1a; 数据库簇初始化&#xff0c;此时一个database都没有&#xff0c;所以怎么构造和访问pg_class等系统表是一个问题私有内存初始化系统表。PG的系统表信息是放在back…

JavaScript(7)——数组

JavaScript中数组的用法与Java差不多&#xff0c;但还是有一些区别 声明数组 语法: let 数组名 [数据1,数据2,数据...] let arr new Array(数据1,数据2,...数据n) 添加数据 数组.push()方法将一个或多个元素添加到数组末尾&#xff0c;并返回该数组新长度 <script>…

机器学习(五) -- 监督学习(7) --SVM1

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 监督学习&#xff08;6&#xff09; --逻辑回归 下篇&#xff1a; 前言 tips&#xff1a;标题前有“***”的内容为补充内容&#xff0c;是给好奇心重的宝宝看的&#xff0c;可自行跳过。文章内容被…

如何写好品牌宣传稿提升品牌曝光?看这篇文章就够了

在这个信息爆炸的时代&#xff0c;一句精炼而富有力量的宣传语&#xff0c;足以让品牌在万千竞争者中脱颖而出。撰写一篇成功的品牌宣传稿&#xff0c;不仅是对文字艺术的驾驭&#xff0c;也是对品牌灵魂的深刻洞察与精准传达&#xff0c;更是连接品牌与消费者情感与认知的桥梁…

2024前端面试真题【Vue篇】

Vue 的虚拟DOM 虚拟DOM 虚拟DOM是真实DOM的JavaScript表示。它是一个轻量级的JavaScript对象&#xff0c;可以表示DOM的结构和属性&#xff0c;虚拟DOM与真实DOM一一对应。 在Vue中&#xff0c;每个Vue组件都会维护一个对应的虚拟DOM树。当组件的数据发生变化时&#xff0c;…

蚁剑编码器编写——php木马免杀

蚁剑编码器编写——php木马免杀 我的想法是 木马要先免杀&#xff0c;能够落地&#xff0c;再去考虑流量层面的问题 举几个例子演示一下 命令执行与代码执行是有比较大的区别&#xff0c;蚁剑执行的是php代码&#xff0c;而system&#xff0c;proc_open,passthru,exec,shell_…

Adobe Illustrator 2021 for mac/Win:专业矢量图形设计的巅峰之作

Adobe Illustrator 2021作为Adobe公司旗下的旗舰矢量图形设计软件&#xff0c;无论是对于Mac还是Windows用户&#xff0c;都提供了强大而灵活的设计工具&#xff0c;让设计师们能够轻松应对各种复杂的图形设计挑战。这款软件以其卓越的性能、丰富的功能和友好的用户界面&#x…

后悔没早点考?揭晓六西格玛证书背后的惊人好处

在这个竞争激烈的时代&#xff0c;不断提升自我价值和专业能力是每个职场人士都需要面对的问题。而六西格玛证书&#xff0c;作为一个备受瞩目的职业资格认证&#xff0c;其背后的好处和价值已经远超出了人们的想象。深圳天行健企业管理咨询公司解析如下&#xff1a; 一、提升职…

镍氢电池性能不减,你敢信?

在科技领域&#xff0c;研究者的探索永无止境&#xff0c;尤其在可再生能源和电动交通工具迅速发展的今天&#xff0c;一种成熟的可充电电池技术——镍氢电池&#xff0c;在多个领域中发挥着至关重要的作用。它不仅环保、高效&#xff0c;还具有出色的循环次数特性&#xff0c;…

MySQL Undo Log

总结自bojiangzhou undo log称为撤销日志或回滚日志。在一个事务中进行增删改操作时&#xff0c;都会记录对应的 undo log。在对数据库进行修改前&#xff0c;会先记录对应的 undo log&#xff0c;然后在事务失败或回滚的时候&#xff0c;就可以用这些 undo log 来将数据回滚到…

除自身以外数组的乘积_前缀和

文章目录 1、描述2、思路4、notes6、code 1、描述 题目链接 238.除自身以外数组的乘积 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素…

iPhone数据恢复篇:iPhone 数据恢复软件有哪些

问题&#xff1a;iPhone 15 最好的免费恢复软件是什么&#xff1f;我一直在寻找一个恢复程序来恢复从iPhone中意外删除的照片&#xff0c;联系人和消息&#xff0c;但是我有很多选择。 谷歌一下&#xff0c;你会发现许多付费或免费的iPhone数据恢复工具&#xff0c;声称它们可…

数据结构--二叉树相关性质

1.性质 1.满二叉树每层节点个数&#xff1a;等比数列 3.&#xff08;重要&#xff09;任意二叉树&#xff1a;度为0&#xff08;叶子节点&#xff09;的比度为2的永远多一个。。度&#xff1a;就是看有多少孩子 如下图解析&#xff1a;&#xff08;用推到归纳来分析&#xff…

【测开能力提升-fastapi框架】介绍简单使用

0. 前期说明 立了很多flag(开了很多专题)&#xff0c;但坚持下来的没几个。也干了很多测试工作(起初是硬件(Acoustic方向)测试 - 业务功能测试 - 接口测试 - 平台功能测试 - 数据库测试 - py自动化测试 - 性能测试 - 嵌入式测试 - 到最后的python测试开发)&#xff0c;最终还是…

股票分析系统设计方案大纲与细节

股票分析系统设计方案大纲与细节 一、引言 随着互联网和金融行业的迅猛发展,股票市场已成为重要的投资渠道。投资者在追求财富增值的过程中,对股票市场的分析和预测需求日益增加。因此,设计并实现一套高效、精准的股票分析系统显得尤为重要。本设计方案旨在提出一个基于大…

3d已经做好的模型怎么改单位?---模大狮模型网

在展览3D模型设计行业中&#xff0c;经常会遇到需要将已完成的模型进行单位转换的需求。这可能涉及从一种度量单位转换为另一种&#xff0c;例如从英制单位转换为公制单位&#xff0c;或者根据特定的展览场地要求进行尺寸调整。本文将探讨如何有效地修改已完成的3D模型的单位&a…

VS Code 扩展如何发布到私有Nexus的正确姿势

VS Code扩展的发布 VS Code 扩展的发布需要使用到vsce&#xff0c;vsce是一个用于打包、发布和管理 VS Code 扩展的命令行工具。可以通过 npm 来全局安装它&#xff1a; npm install -g vsce发布扩展到微软的应用市场 VS Code 的应用市场基于微软自己的 Azure DevOps。要发布…

redis的部署及基本使用

一、redis部署 1、关闭防火墙 关闭防火墙&#xff1a; systemctl stop firewalld.service 状态&#xff1a; firewall-cmd --state 卸载防火墙 yum remove firewalld 2、CentOS7部署redis 1、检查编译运行环境&#xff0c;是否有 GCC 编译器 检查环境&#xff08;gcc&…

防御---001

一、实验拓扑二、要求 1&#xff0c;DMZ区内的服务器&#xff0c;办公区仅能在办公时间内(9:00 - 18:00)可以访问&#xff0c;生产区的的设备全天可以访问. 2&#xff0c;生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3,办公区设备10.0.2.10不允许访问DMZ…