【深度学习】直观理解AUROC

news2024/9/19 10:44:14

文章目录

  • 前言
  • 如何计算
  • 直观解释
  • 常用计算方式

前言

AUROC常用于衡量二分类分类器的性能,本文旨在详解该指标计算过程

如何计算

设想我们有一个分类器,对数据做二分类。我们设输入数据为 x x x, 预测标签为 y y y, ground-truth标签为 y ^ \hat{y} y^。对每个 x x x,我们都预测 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x),即将样本分类成正类的概率。
现在有一组带标注数据,其中一部分数据的真实标签 y ^ \hat{y} y^是0,另一部分的真实标签 y ^ \hat{y} y^是1 ,我们通过分类器预测 x x x属于正例的概率 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x),对每个预测结果 y y y与真实标签 y ^ \hat{y} y^的匹配情况可分为四类
在这里插入图片描述
现在计算AUCROC,步骤如下

  • 确定一个概率阈值 λ \lambda λ , 当预测属于正例的概率大于 λ \lambda λ, 我们则将该样本分为正例
  • 在该阈值下,我们得到两个值
    • TPR (真阳性率) / 召回:所有真实标签为正的样本中,被预测为正例的数据所占的比例
      • T P F N + T P \frac{TP}{FN+TP} FN+TPTP
    • FPR (假阳率):所有真实标签为负的样本中,被预测为正例的数据所占的比例
      • F P T N + F P \frac{FP}{TN+FP} TN+FPFP
  • 以FPR为横轴,TPR为纵轴,我们绘制坐标轴,在坐标轴上画点
  • 取多种不同阈值可以得到多个点,将这些点连成线,所围成的面积就是AUROC
    在这里插入图片描述

直观解释

对于好的分类器,我们希望,对真实标签为正的样本,我们预测 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x)能够比较大,对真实标签为负的样本,该值比较小。这里通过一个具体的例子对AUROC进行说明。
场景:我们数据的真实标签一半为0,一半为1,现在我们按预测的 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x)对数据从小到大排序,左边一半就是 y ^ = 0 \hat{y}=0 y^=0的数据,右边一半是 y ^ = 1 \hat{y}=1 y^=1的数据。

  • 我们取一个很小的阈值,将所有样本都分类为正例, 此时,横纵坐标都为1,绘制点(1, 1)
    在这里插入图片描述

  • 我们取大一点的阈值,此时横坐标减小为 x 2 x_2 x2,纵坐标仍为1, 绘制点( x 2 x_2 x2, 1)
    在这里插入图片描述

  • 再大一点,此时横坐标为0,纵坐标仍为1,绘制点(0,1)
    在这里插入图片描述

  • 再大一点,横坐标为0,纵坐标变小为 y 2 y_2 y2,绘制点(0, y 2 y_2 y2)
    在这里插入图片描述

  • 最后,横坐标纵坐标都为0,绘制点(0,0)
    在这里插入图片描述

我们绘制的AUCROC曲线为红色部分,与坐标轴围成的面积为1。
在这里插入图片描述

可以看到,AUROC期望任意一个正样本被分类为正的概率大于任意一个负样本被分类为正的概率

  • ACROC最大值为1,越大说明分类效果越好
  • 不考虑正样本之间的概率相对大小以及负样本内部的概率大小
  • 不考虑实际的概率值大小
  • 实际使用中,我们往往取多个(100)阈值,或将样本中的每个概率都作为一次阈值来绘制曲线,以对分类效果进行细粒度评估

常用计算方式

from sklearn.metrics import roc_auc_score

# 假设你有以下真实标签和预测概率
y_true = [0, 0, 1, 1]  # 真实标签
y_scores = [0.1, 0.4, 0.35, 0.8]  # 预测概率

# 计算AUROC
auc = roc_auc_score(y_true, y_scores)
print(f"AUROC: {auc}")

图像参考:https://www.zhihu.com/question/428614381/answer/3423485003

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

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

相关文章

JAVA多场景多项目排队叫号系统小程序源码

🔥【告别长龙,智能排队新风尚】多场景多项目排队叫号系统大揭秘🔍 🚀【一码在手,轻松畅游各大场景】 还在为医院挂号、银行办事、餐厅等号的长队头疼吗?😩 多场景多项目排队叫号系统&#xff0…

关于nginx标准配置参数介绍

标准配置参数: user root;#配置用户或者组,默认为nobody worker_processes 4;#允许生成的进程数,默认为1 项目中nginx.conf配置文件 user root; worker_processes 4; //最大的进程数,要看服务器的内核是多少核的&#xff0…

IEEE-802.3总线局域网

关于以太网相关基础知识,这批文章说的挺好的。

MacOS 阿里云docker镜像仓库无法登录的解决办法

问题情况 Error response from daemon: Get “https://registry.cn-hangzhou.aliyuncs.com/v2/”: Method Not Allowed 解决办法 MacOS下,打开该文件 open ~/.docker删除config.json文件 重新登录 已经提示Login Successed 接下去进行其他操作即可。 PS&…

MiDaS、ZoeDepth、Depth-Anything ai算法深度图估计

1、MiDaS 参考: https://github.com/isl-org/MiDaS https://pytorch.org/hub/intelisl_midas_v2/ https://colab.research.google.com/github/pytorch/pytorch.github.io/blob/master/assets/hub/intelisl_midas_v2.ipynb#scrollTo5A32CL3tocrZ 代码 import cv2 i…

如何使用midjourney?MidJourney订阅计划及国内订阅教程

国内如何订阅MidJourney 第三方代理 参考: zhangfeidezhu.com/?p474 使用信用卡订阅教程 办理国外信用卡: 这个各自找国外的银行办理就好了。 登录MidJourney: 登录MidJourney网站,进入订阅中心。如果是在Discord频道&#x…

idea启动报错Improperly specified VM option.

我本来是想解决idea启动占内存的问题,在网上找了个修改启动参数,这么改的 因为格式不正确,idea启动报错: Improperly specified VM option. To fix the problem, edit your JVM optionsand remove the options that are obsolete…

19 OptionMenu 组件

OptionMenu 组件使用指南 Tkinter 的 OptionMenu 组件是一个下拉选择框,允许用户从一组预定义的选项中选择一个。它通常用于提供用户一个有限的选项集合来选择。以下是对 OptionMenu 组件的详细说明和一个使用案例。 OptionMenu 组件属性 variable: 与 OptionMen…

一个开源可视化网页编辑器,为开发者提供一个快速构建 Web 应用的平台

大家好,今天给大家分享的是一款功能强大、灵活且开源的 可视化网页编辑器框架GrapesJS。它允许用户通过拖拽、点击等直观的方式,无需编写代码即可创建自定义的网页、邮件模板、仪表盘等 项目介绍 GrapesJS 是一个免费的开源 Web 构建器框架,…

常用FTP等工具配置

一、WINSCP 常用配置 1、配置putty:选项-应用程序-路径,记住会话密码传给PUTTY. 2、配置传输777权限:选项->传输->编辑->设置0777权限。 二、PUTTY 常用配置 1、putty 日志路径配置。logging-logfilename: D:/puttylog/&H-&a…

统一多场景自动编译加速——支持动态shape场景,一套架构搞定训推需求

为了让飞桨开发者们掌握第一手技术动态、让企业落地更加高效,飞桨官方在7月至10月特设《飞桨框架3.0全面解析》系列技术稿件及直播课程。技术解析加代码实战,带大家掌握包括核心框架、分布式计算、产业级大模型套件及低代码工具、前沿科学计算技术案例等…

【TCP】确认应答、超时重传机制和TCP报头

TCP 相关机制 TCP 基本特点:有连接、可靠传输、面向字节流、全双工 有连接、面向字节流和全双工都能在前面的代码中体现有连接:必须要先调用 accept 建立联系才能处理面向字节流:会拿到 clientSocket 对象的 InputStream 和 OutputStream&a…

【hot100篇-python刷题记录】【数组中的第K个最大元素】

R5-堆篇 笑死,摆烂式 class Solution:def findKthLargest(self, nums: List[int], k: int) -> int:nums.sort()return nums[-k] 堆排序 堆排序(英语:Heapsort)是指利用堆(heap)这种数据结构所设计的一…

C++面试基础系列-double_colon(::)

系列文章目录 文章目录 系列文章目录C面试基础系列-double_colon(::)Overview1.double_colon(::)关键点2.double_colon(::)使用示例2.1.访问类成员2.2.静态成员访问2.3.命名空间中的实体2.4.全局变量和函数2.5.友元类2.6.类型转换2.7.枚举类成员访问2.8.模板参数 关于作者 C面试…

简述灰点工业相机的相关知识

灰点相机是一种特殊的相机类型,它的名称来源于其拍摄时可能产生的灰点效果,但并非所有灰点相机都会直接产生这种效果,这一命名更多是基于其品牌或某种特定的视觉特性。以下是对灰点相机的解析: 一、基本定义 类型:灰…

【Redis】Redis典型应用-缓存(cache)

目录 什么是缓存 使用Redis作为缓存 缓存的更新策略 缓存预热(cache preheating) 缓存穿透(cache penetration) 缓存雪崩(cache avalanche) 缓存击穿(cache breakdown) 什么是…

最小路径和[中等]

优质博文:IT-BLOG-CN 一、题目 给定一个包含非负整数的m x n网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[…

四十一、【人工智能】【机器学习】- Bayesian Logistic Regression算法模型

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

分布式缓存———数据一致性问题

分布式基础理论 CAP理论 与 BASE理论-CSDN博客 分布式系统会的三座大山:NPC。 N:Network Delay,网络延迟P:Process Pause,进程暂停(GC)C:Clock Drift,时钟漂移 在当前…

汇昌联信科技做拼多多电商有哪些策略?

在当今竞争激烈的电商平台上,汇昌联信科技以其独到的策略成功立足拼多多。他们不仅凭借对市场的深刻理解,还通过一系列创新举措,实现了品牌的快速成长和市场份额的不断扩大。接下来,我们将深入探讨汇昌联信科技在拼多多平台上所采…