《机器学习》—— AUC评估指标

文章目录

  • 一、什么是AUC?
    • 1、什么是ROC曲线?
    • 2、ROC曲线的绘制
  • 二、如何计算AUC的值
  • 三、代码实现AUC值的计算
  • 四、AUC的优缺点

一、什么是AUC?

  • 机器学习中的AUC(Area Under the Curve)是一个重要的评估指标,特别是在二分类问题中。
  • AUC特指ROC曲线(Receiver Operating Characteristic Curve)下的面积用于衡量分类器区分正负类的能力
    • 在机器学习和统计分类中,正负类(Positive Class 和 Negative Class)是二分类问题中的两个类别标签。这两个标签是相对的,并没有固定的含义,而是根据具体问题的上下文来定义的。

      • 正类(Positive Class):通常用于表示我们感兴趣或希望模型能够正确识别出来的类别。在不同的应用场景中,正类的具体含义可能会有所不同。例如,在医疗诊断中,正类可能代表“患病”;在欺诈检测中,正类可能代表“欺诈行为”;在电子邮件分类中,正类可能代表“垃圾邮件”。
      • 负类(Negative Class):则是与正类相对的类别,表示我们不特别感兴趣或希望模型能够识别出来以避免的类别。同样地,负类的具体含义也取决于问题的上下文。继续上面的例子,在医疗诊断中,负类可能代表“健康”;在欺诈检测中,负类可能代表“正常交易”;在电子邮件分类中,负类可能代表“非垃圾邮件”。
  • AUC值越大,表示模型的性能越好,即模型能够更好地区分正负样本。

1、什么是ROC曲线?

  • ROC曲线(Receiver Operating Characteristic Curve,受试者工作特征曲线)是一种用于评估分类模型性能的图形化方法,特别是在二分类问题中。ROC曲线通过绘制真正例率(True Positive Rate, TPR)与假正例率(False Positive Rate, FPR)的关系来展示模型在不同阈值下的性能。

  • 在说明 TPR 和 FPR 是什么意思之前,先来了解一下混淆矩阵

    • 混淆矩阵的基本结构如下:

      _预测为正类别预测为负类别
      实际为正类别True Positive (TP)False Negative (FN)
      实际为负类别False Positive (FP)True Negative (TN)
    • True Positive (TP): 模型将实际为正类别的样本正确预测为正类别。

    • False Negative (FN): 模型将实际为正类别的样本错误预测为负类别。

    • False Positive (FP): 模型将实际为负类别的样本错误预测为正类别。

    • True Negative (TN): 模型将实际为负类别的样本正确预测为负类别。

  • 真正例率(True Positive Rate, TPR):也称为灵敏度(Sensitivity)或召回率(Recall),是正确预测的正例占所有实际正例的比例。

    • TPR=TP / (TP+FN)

      其中,TP是真正例的数量,FN是假负例的数量。
  • 假正例率(False Positive Rate, FPR):是错误预测为正例的负例占所有实际负例的比例。

    • FPR= FP / (FP+TN)

      其中,FP是假正例的数量,TN是真负例的数量。
  • 阈值(Threshold):在分类问题中,模型通常会输出一个介于0和1之间的概率值,表示属于某个类别的概率。通过设置不同的阈值(比如0.5),可以将概率值转换为类别标签(0或1)。

2、ROC曲线的绘制

  • ROC曲线是通过在不同阈值下计算TPR和FPR的值,并将这些点绘制在二维坐标图上得到的。横轴是FPR纵轴是TPR。理想情况下,我们希望模型的ROC曲线尽可能接近左上角(FPR=0, TPR=1),这表示模型具有高灵敏度和高特异性。
  • 正常训练模型所画出的ROC曲线如下图所示:
    • 绿色曲线便是ROC曲线
    • 阴影部分的面积便是AUC的值
      在这里插入图片描述
  • 理想状态下的ROC曲线
    • 实际训练模型很难达到
      在这里插入图片描述

二、如何计算AUC的值

  • AUC有两种计算方法,这里我们介绍用公式求解的方法

  • 下面是一个经过很多复杂的推到得到的求解公式
    在这里插入图片描述

    • M——>正样本的个数
    • N——>负样本的个数
      在这里插入图片描述
    • 表示将为正样本的序列值相加
  • 例子:

    • 假设有4个样本,对应的真实标签有 1 和 0 , 并经过一个二分类模型训练后,所得到为正样本的概率,这里我们规定标签为1的是正样本(其实就是结果为标签1的概率)

      样本真实标签模型预测的概率
      A00.1
      B00.4
      C10.35
      D10.8
    • 按概率升序排列后得到:

      样本真实标签模型预测的概率rank
      A00.11
      C10.352
      B00.43
      D10.84
    • 按照上面的公式,只把正样本的序号加起来也就是只把样本C,D的rank值加起来后减去一个常数项:M(M+1)/2再除以正负样本数量的乘积

    • AUC的计算为:

      • AUC = [ (4+2) -2*(2+1)/2]/2*2=0.75
  • 如果出现概率相等的情况又该如何计算呢?

    • 下面的例子中有4个样本测试后的概率为0.5,而且既有正样本也有负样本的情况

    • 计算的时候,其实原则就是相等概率的rank取平均值

      样本真实标签模型预测的概率
      A10.8
      B10.7
      C00.5
      D00.5
      E10.5
      F10.5
      G00.3
    • 排序:

      样本真实标签模型预测的概率rank
      G00.31
      F10.52
      E10.53
      D00.54
      C00.55
      B10.76
      A10.87
    • 这里需要注意的是:相等概率的样本,无论正负,谁在前,谁在后无所谓。

    • 由于只考虑正样本的rank值

      • 对于正样本A,其rank值为7
      • 对于正样本B,其rank值为6
      • 对于正样本E,其rank值为(5+4+3+2)/4
      • 对于正样本F,其rank值为(5+4+3+2)/4
    • AUC的计算为:

      • AUC = [ 7 + 6 +(5+4+3+2)/4 + (5+4+3+2)/4 - 4*(4+1)/2] / 4*3 = 10/12=5/6

三、代码实现AUC值的计算

  • 可以直接调用Python中 sklearn.metrics 类中 roc_auc_score() 方法

  • 只需要将数据的真实标签模型预测为正例的概率传入即可计算出结果

  • 我们将上面示例中的数据传入,得出结果

    import numpy as np
    from sklearn.metrics import roc_auc_scorey_label_1 = np.array([0, 0, 1, 1])
    x_scores_1 = np.array([0.1, 0.4, 0.35, 0.8])
    AUC_1 = roc_auc_score(y_label_1, x_scores_1)
    print(AUC_1)# 结果为:0.75 y_label_2 = np.array([1, 1, 0, 0, 1, 1, 0])
    x_scores_2 = np.array([0.8, 0.7, 0.5, 0.5, 0.5, 0.5, 0.3])
    AUC_2 = roc_auc_score(y_label_2, x_scores_2)
    print(AUC_2)# 结果为:0.8333333333333334
    
  • 对比可以看出,代码计算出的结果与例子中计算的结果一致

四、AUC的优缺点

  • 优点
    • 衡量排序能力:AUC主要关注模型对样本的排序能力,即能否将正样本排在负样本之前,适合排序类任务。
    • 对正负样本均衡不敏感:在样本不均衡的情况下,AUC仍然能够提供有效的评估,不会像准确率等指标那样受到样本比例的影响。
      无阈值依赖:AUC是一种无阈值依赖的评估指标,它不需要设定一个具体的分类阈值来判断样本的类别。这使得AUC在评估模型性能时更加灵活和稳定。
  • 缺点
    • 忽略预测概率值:AUC主要关注排序能力,而忽略了预测的具体概率值。这可能导致在某些情况下无法准确反映模型的拟合程度。例如,当模型对所有样本的预测概率都接近时,即使AUC值较高,模型的预测能力也可能较差。
    • 信息笼统:AUC反应的信息较为笼统,无法直接反映召回率、精确率等实际业务关心的指标。因此,在评估模型性能时,还需要结合其他评估指标进行综合考量。
    • 无法衡量样本内部排序:AUC只关心正负样本之间的排序,而不关心正负样本内部的排序。这可能导致在某些个性化推荐等场景中无法准确评估模型的性能。

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

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

相关文章

HarmonyOS--认证服务-操作步骤

HarmonyOS–认证服务 文章目录 一、注册华为账号开通认证服务二、添加项目:*包名要与项目的包名保持一致三、获取需要的文件四、创建项目:*包名要与项目的包名保持一致五、添加json文件六、加入请求权限七、加入依赖八、修改构建配置文件:bui…

软硬链接

建立软连接 ln -s 指向的文件 软连接文件 建立硬连接 ln 原来文件 硬连接文件 上面我们发现,建立的软链接文件的inode编号和指向文件不同,而建立的硬链接文件inode编号没变,为什么呢? 为什么不能给目录创建硬链接&#xff1f…

解决添加MPJ插件启动报错

在项目中需要用到多数据源的级联查询,所以引入了MPJ插件,MPJ的版本是1.2.4,MP的版本是3.5.3,但却在启动的时候报错,报错如下: 解决办法: 将MP的版本降到3.5.1

UnrealEngine学习(02):虚幻引擎编辑器界面详解

学习一款软件,我个人建议是先学习怎么用,然后是学习怎么用的好,再研究源码。 上一篇文章详细描述了我们该如何安装虚幻5引擎: UnrealEngine学习(01):安装虚幻引擎https://blog.csdn.net/zuodingquan666/article/deta…

【学术英语】Unit3:Academic Writing(学术写作)

文章目录 一、摘要1.1 摘要简介1.2 摘要的两种类型1.3 写摘要的技巧1.4 摘要的关键词1.5 例子1.5.1 例子11.5.2 例子2 二、注释和致谢2.1 注释的格式2.1.1 Book2.1.2 论文2.1.3 例子 2.2 致谢的格式 三、书目选编 一、摘要 1.1 摘要简介 摘要对学术写作极其重要和有用&#x…

小白之 FastGPT Windows 本地化部署

目录 引言环境步骤1. 安装 docker2. 启动 docker3. 浏览器访问4. One API 配置语言模型、向量模型渠道和令牌5. 创建 FastGPT 知识库6. 创建 FastGPT 应用 官方文档 引言 部署之前可以先看一下 RAG 技术原理,也可以后面回过头来看,对一些概念有些了解&a…

Latex插入eps图片不显示报错not found解决方案

Latex插入eps图片不显示并报错: 解决方案: 首先确保.tex文件中添加包\usepackage{epstopdf} winR输入cmd进入系统命令行 进入.tex文件系统盘,代码:D: 进入.tex所在文件夹,代码:cd D:\Desktop\xxx 执行最重要…

Physics of Language Models学习小结

1.概述 Physics of Language Models 参考:https://zhuanlan.zhihu.com/p/711391378 这是一系列论文和一个新的LLM研究方向,官网的概述如下。 苹果掉落,盒子移动,但重力和惯性等普遍规律对技术进步至关重要。虽然GPT-5或LLaMA-…

保号套餐千万别随便办理,小心有坑!

现在网上到处都是讨论保号套餐的消息,保号套餐虽好,但是小编提醒大家千万别随便办理,小心有坑! 为什么这么说呢,我们先来看一张图: 移动的保号套餐,月租8元,分成两个套餐&#xff0…

算法笔试-编程练习-H-02-24

w这套题,侧重模拟和题目理解,只要按照题目描述正常复现整体分数应该不错 一、数据重删 数据重删是一种节约存储空间的技术,通常情况下,在数据存储池内是有很多重复的数据库。重删则是将这些重复的数据块找出并处理的技术。简单地…

黑神话怎么玩?隐藏BOSS寅虎打法攻略

这期来教大家黑神话悟空寅虎BOSS怎么打,寅虎是游戏中比较强力的一只boss,很多玩家拼尽全力都还是惜败一招,其实想要打赢它需要采用特定的方法和技巧才能攻克,因此接下来小编会给大家介绍下它的打法,还没攻克这个boss的…

P2P 文件共享:现代网络中的高效文件传输

在互联网的世界中,不同应用程序的数据传输方法各异。P2P文件共享(Peer-to-Peer File Sharing) 作为一种高效的文件传输方式,使得用户可以在没有中央服务器的情况下直接进行文件交换。本文将详细介绍P2P文件共享的基本原理、优势及…

游戏开发设计模式之装饰模式

目录 装饰模式在游戏开发中的具体应用案例是什么? 如何在Unity中实现装饰模式以动态扩展游戏对象的功能? 装饰模式与其他设计模式(如适配器模式、代理模式)相比,有哪些优势和劣势? 优势 劣势 与适配器…

如何满足业主多元需求?开发物业APP,打造智能社区生活

随着智能科技的快速发展,物业管理也逐渐迈入数字化时代。物业app开发成为了提升社区管理效率、改善居民生活质量的重要途径,许多物业管理公司纷纷开发物业App,以提升管理效率、改善用户体验。一款出色的物业APP能够整合居民需求、提升企业服务…

three.js 实现 3D地图

three.js 实现仿照 echarts 3d 地图 。 由于 three.js 目前比较依赖写代码,而一个美的地图需要大量的three.js 组合,我建议 先做three.js 基础层的 低代码编辑器,随后各种项目和效果配置起来都会很方便。 https://z2586300277.github.io/th…

FastGPT如何增减用户

背景 开源版本的FastGPT默认只有一个超级用户root,为了更好地管理应用和知识库,可以通过操作MongoDB数据库来增加新的用户和团队。 所需环境 已安装并运行的FastGPT实例MongoDB客户端工具(如Mongo Shell或Robo 3T等) 操作步骤…

tomcat初步学习

tomcat部署 三太主机 安装 java 环境。两台tomcat-node都安装 安装并启动 tomcat 将之简便处理下放在别的目录并启动 测试 生成 tomcat 的主配置文件 生成启动文件 编辑文件 给与权限后启动 tomcat的反向代理和负载均衡 建立对应文件将之移到目录下 配置后测试 进入文件 写…

用于低质量蒙面人脸识别的一致子决策网络

Consistent Sub-Decision Network for Low-Quality Masked Face Recognition 摘要 提出了一种利用由多个dropout块组成的在线一致性评估结构来获得对应于人脸不同区域的子决策网络,以获得对应于不同面部区域的子决策,并通过加权双向KL散度来约束子决策&…

酒店PMS系统源码之会员系统读取身份证-CyberWinApp-SAAS 本地化及未来之窗行业应用跨平台架构

一、酒店 PMS()会员系统 1. 客户关系管理:帮助酒店有效地管理会员信息,包括个人资料、消费记录、偏好等,从而更好地了解会员需求,提供个性化的服务和优惠。 2. 会员忠诚度提升:通过积分、折扣、…

学习C语言(18)

整理今天的学习内容 1.strcmp的使用和模拟实现 strcmp是用来比较字符串的大小的 比较方式:比较两个字符串中对应位置上字符ASCII码值的⼤小 第⼀个字符串大于第二个字符串,则返回⼤于0的数字 第⼀个字符串等于第二个字符串,则返回0 第⼀…