Macro / Micro / Weighted AUC 如何计算实例讲解

news/2024/10/5 21:25:18

情景:二分类模型在验证集上的 outputs 为 [[-0.0464, -0.0268], [-0.0234, -0.0091]],验证集 labels 为 [0, 1]。一步一步推导出 AUC。

  • 首先明确几个概念
  1. TPR: sensitive/recall,检测出来的阳性样本的占比,适用于癌症筛查

  2. FPR:模型是否把所有的阴性样本都预测成了阳性

    👉极限情况1:TPR = 1 & FPR = 1,说明模型把所有样本都预测成了阳性(包含两个含义:对于阳性样本,模型都能检出;但对于阴性样本,模型都判断错误)。但显然,这种情况下,那些未患病的被试(阴性样本)会经历没必要的检查,所以不应该鼓励模型把所有样本都预测成阳性。
    👉极限情况2:TPR = 0 & FPR = 0,说明模型把所有样本都预测成了阴性(同样包含两个含义:没有无辜的被试受模型所害,但真正患病的被试也被模型漏掉了)。这样一来,模型也失去了诊断价值,白白浪费被试们的时间。实际临床应用中,应该根据实际需求选择偏重提高TPR还是降低FPR。

  3. AUC 值为 ROC 曲线下面积:ROC 曲线图的横坐标为 FPR,纵坐标为 TPR,根据不同阈值下的 [FPR, TPR] 点对 ROC 曲线进行绘制。

  • 计算AUC
  1. 将outputs通过Softmax先转换成概率分布(参考我们的另一篇文章),得到 [[0.4955, 0.5045], [0.4977, 0.5023]]。

  2. 将 outputs 看成 one-hot 格式,得到预测样本为正类(1)对应的的概率是:[0.5045, 0.5023]。

  3. 将 [0.5045, 0.5023] 作为两个阈值,讨论当阈值分别为 ∞、0.5045 和 0.5023 时,正负样本的预测情况。

    1. 阈值的作用
      在二分类问题中,模型输出的分数通常表示样本属于正类的概率或相关性。我们可以通过设置不同的阈值来决定样本是被预测为正类还是负类:如果预测分数高于/等于阈值(sklearn.metrics.roc_curve),我们将样本分类为正类;如果预测分数低于阈值,我们将样本分类为负类。

    2. 具体过程如下
      1> 阈值为 ∞ 时,两个样本均为负类。
      2> 阈值为 0.5045 时,第一个样本:分数为 0.5045,等于阈值,所以预测为正类;第二个样本:分数为 0.5023,低于阈值,所以预测为负类。
      3> 阈值为 0.5023 时,第一个样本:分数为 0.5045,高于阈值,所以预测为正类;第二个样本:分数为 0.5023,等于阈值,所以预测为正类。

  4. 计算不同阈值下的 TPR、FPR 分别是多少(真实标签为 [0, 1])
    1> 阈值为 ∞ 时,预测标签为 [0, 0],TPR=0,FPR=0。
    2> 阈值为 0.5045 时,预测标签为 [1, 0],TPR=0,FPR=1。
    2> 阈值为 0.5023 时,预测标签为 [1, 1],TPR=1,FPR=1。

  5. 根据上面的三个点绘制 ROC 曲线(横坐标:FPR,纵坐标:TPR),根据阈值从大到小,三个点分别为(0, 0)、(1, 0)、(1, 1)。

  6. 绘制出的 ROC 曲线的曲线下面积为 0, 所以 AUC=0。

⭐只有在多分类问题下面,讨论 macro / micro / weighted AUC 的区别才有意义。因为如果是二分类问题,只会有一组正类和负类、一条ROC曲线。计算普通的 average/macro AUC 即可。多分类问题下,每个正类都画一条 ROC 曲线,然后选择不同的方法(macro / micro / weighted),得到最终多分类的 ROC 曲线,从而计算 AUC。

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

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

相关文章

PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”

未检测到您服务器环境中的 sqlite3 数据库扩展,在此温馨提示您,请认真检查 php.ini 配置文件中是否已经成功开启该扩展! 另外,值得注意的是,已经检测到您的服务器支持 pdo_sqlite 扩展,在此情况下,您也可以考虑修改数据库配置的连接驱动为 pdo_sqlite 来尝试解决问题!扫…

场景题:如何提升Kafka效率?

Kafka 以其高吞吐量、低延迟和可扩展性而备受青睐。无论是在实时数据分析、日志收集还是事件驱动架构中,Kafka 都扮演着关键角色。 但是,如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是…

redis-缓存崩溃

缓存崩溃 作者:w08eredis实战之各种崩溃 雪崩 击穿 穿透 以及预热缓存雪崩 回答话术 缓存雪崩是应用系统指在某个时间点上,缓存中的大部分数据同时失效,导致大量的请求直接访问底层数据库或后端服务,从而造成数据库负载剧增,甚至导致数据库崩溃的情况。通常情况下,缓存中…

redis-持久化

redis 数据持久化 作者:w08e数据持久化三连问redis 宕机数据会丢失吗 回答话术 先说结论,如果我们没开启任何持久化机制,那么会丢失全部数据,否则只会丢失部分数据,丢失数据的多少取决于持久化配置。Redis 提供了两套持久化机制,RDB 快照和 AOF 日志文件追加。 RDB 它会根…

Guava工具总结

Table双键Map public class OTest {public static void main(String[] args) {Map<String, Map<String, Integer>> map = new HashMap<>();//存放元素Map<String, Integer> workMap = new HashMap<>();workMap.put("Jan", 20);workMap…

B 端产品未来几年的发展趋势XG

在当今数字化高速发展的时代,B 端产品经理作为企业数字化转型的关键推动者,肩负着重大的责任。不仅要深入了解企业的业务需求,还要紧跟技术发展的步伐,为企业提供高效、创新的解决方案。那么,未来几年,B 端产品领域将会呈现出哪些发展趋势呢?一、人工智能与机器学习的深…

Clobotics 计算机视觉场景存储实践:多云架构、 POSIX 全兼容、低运维的统一存储HB

Clobotics 是一家将计算机视觉和机器学习技术应用于风电以及零售行业的企业。在风电行业,Clobotics 利用无人机对风力发电机叶片进行检查,显著降低了对人工作业的依赖。在零售领域,公司通过分析捕获的包装商品图像来提供基于实时数据的洞察,以增加销售额并减少运营成本。 存…

uni-app之camera组件-人脸拍摄i6

小程序录制视频;10-30秒;需要拍摄人脸,大声朗读数字(123456)这种。 1.camera组件 camera页面内嵌的区域相机组件。注意这不是点击后全屏打开的相机 camera只支持小程序使用;官网链接1.2 效果图1.3 页面布局 camera 设置宽100%,高度通过uni.getSystemInfo获取,全屏展示。…