模型性能分析:ROC 分析和 AUC

news2024/9/20 20:37:19

本文[1]将介绍模型性能分析的两个方法:ROC & AUC。

ROC 分析和曲线下面积 (AUC) 是数据科学中广泛使用的工具,借鉴了信号处理,用于评估不同参数化下模型的质量,或比较两个或多个模型的性能。

传统的性能指标,如准确率和召回率,在很大程度上依赖于正样本的观察。因此,ROC 和 AUC 使用真阳性率和假阳性率来评估质量,同时考虑到正面和负面观察结果。

从分解问题到使用机器学习解决问题的过程有多个步骤。它涉及数据收集、清理和特征工程、构建模型,最后是,评估模型性能。

当您评估模型的质量时,通常会使用精度和召回率等指标,也分别称为数据挖掘领域的置信度和灵敏度。

这些指标将预测值与通常来自保留集的实际观察值进行比较,使用混淆矩阵进行可视化。

confusion matrix
confusion matrix

让我们首先关注精度,也称为阳性预测值。使用混淆矩阵,您可以将 Precision 构建为所有真实阳性与所有预测阳性的比率。

Precision
Precision

召回率,也称为真阳性率,表示真阳性与观察到的和预测的所有阳性的比率。

Recall
Recall

使用混淆矩阵中的不同观察集来描述 PrecisionRecall,您可以开始了解这些指标如何提供模型性能的视图。

值得注意的是 Precision 和 Recall 只关注正例和预测,而不考虑任何负例。此外,他们不会将模型的性能与中值场景进行比较,中值场景只是随机猜测。

1. ROC 曲线

ROC 作为汇总工具,用于可视化 Precision 和 Recall 之间的权衡。ROC 分析使用 ROC 曲线来确定二进制信号的值有多少被噪声污染,即随机性。它为连续预测器提供了一系列操作点的灵敏度和特异性摘要。ROC 曲线是通过绘制 x 轴上的假阳性率与 y 轴上的真阳性率来获得的。

由于真阳性率是检测信号的概率,而假阳性率是误报的概率,因此 ROC 分析也广泛用于医学研究,以确定可靠地检测疾病或其他行为的阈值。

ROC
ROC

一个完美的模型将具有等于 1 的误报率和真阳性率,因此它将是 ROC 图左上角的单个操作点。而最差的可能模型将在 ROC 图的左下角有一个单一的操作点,其中误报率等于 1,真阳性率等于 0。

随机猜测模型有 50% 的机会正确预测结果,因此假阳性率将始终等于真阳性率。这就是为什么图中有一条对角线,代表检测信号与噪声的概率为 50/50。

2. AUC 面积

要全面分析 ROC 曲线并将模型的性能与其他几个模型进行比较,您实际上需要计算曲线下面积 (AUC),在文献中也称为 c 统计量。曲线下面积 (AUC) 的值介于 0 和 1 之间,因为曲线绘制在 1x1 网格上,并且与信号理论平行,它是信号可检测性的度量。

这是一个非常有用的统计数据,因为它可以让我们了解模型对真实观察结果和错误观察结果的排名有多好。它实际上是 Wilcoxon-Mann-Whitney 秩和检验的归一化版本,它检验零假设,其中两个有序测量样本是从单个分布 中抽取的。

要绘制 ROC 曲线并计算曲线下面积 (AUC),您决定使用 SckitLearn 的 RocCurveDisplay 方法并将多层感知器与随机森林模型进行比较,以尝试解决相同的分类任务。

import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score, RocCurveDisplay

def plot_roc(model, test_features, test_targets):
    """
    Plotting the ROC curve for a given Model and the ROC curve for a Random Forests Models
    """


    # comparing the given model with a Random Forests model
    random_forests_model = RandomForestClassifier(random_state=42)
    random_forests_model.fit(train_features, train_targets)

    rfc_disp = RocCurveDisplay.from_estimator(random_forests_model, test_features, test_targets)
    model_disp = RocCurveDisplay.from_estimator(model, test_features, test_targets, ax=rfc_disp.ax_)
    model_disp.figure_.suptitle("ROC curve: Multilayer Perceptron vs Random Forests")

    plt.show()

# using perceptron model as input
plot_roc(ml_percetron_model, test_features, test_targets)
ROC&AUC
ROC&AUC

欢迎Star -> 学习目录


参考资料

[1]

Source: https://towardsdatascience.com/roc-analysis-and-the-auc-area-under-the-curve-404803b694b9

本文由 mdnice 多平台发布

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

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

相关文章

什么是进程、线程,什么是并发、并行及线程的创建和线程的基本使用

一、什么是程序、进程、线程 1、什么是程序 程序可以理解为是我们执行的一段代码,是一种静态的概念 2、什么是进程 进程是指运行中的程序,是一个动态的概念。进程有它自身的产生、存在和消亡的过程(进程产生就会占用内存空间,反…

【WSL】[04]从C盘解放出来WSL的linux镜像

前言: C盘的硬盘资源有限,虚拟机的需求无限,所以,要把无限的硬盘需求搞到其他盘去才行啊 方案1:利用工具:move-wsl 1 管理员运行PowerShell,创建WSL的工作目录 移动前,C盘的空间大小&#xf…

vue-element-表格 Excel 【导出】功能

表格Excel导出功能 1. 将点击导出按钮添加点击事件click“handleDownload” 并在method中创建方法 <el-button type"danger" size"small" click"handleDownload">excel导出</el-button>复制下面的方法 or 去vue-element-admin中的s…

分享62个PHP源码,总有一款适合您

链接&#xff1a;https://pan.baidu.com/s/17mzEPqFhZp0UEvznSviiEA?pwdnjin 提取码&#xff1a;njin PHP源码 分享62个PHP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后…

【C语言简明教程】探究整型数据在内存中的存储

概述 我们知道一个变量的创建是要在内存中开辟空间的。空间的大小是根据不同的类型而决定的。那么整型数据在所开辟内存中到底是如何存储的&#xff1f; 目录 概述 原码、反码、补码 什么是原码、反码和补码&#xff1f; 为什么使用补码存储&#xff1f; 大小端存储 - 数据…

Hadoop高手之路6-ZooKeeper

文章目录Hadoop高手之路6-Zookeeper分布式协调服务一、Zookeeper简介二、Zookeeper的特性1. 一致性C2. 可靠性3. 顺序性4. 原子性A5. 实时性三、Zookeeper分布式集群的部署1. 下载安装包2. 上传3. 解压4. 配置环境变量5. 配置Zookeeper1) 复制一个配置模板文件2) 修改配置文件3…

C语言排序算法

冒泡排序&#xff08;英语&#xff1a;Bubble Sort&#xff09;是一种简单的排序算法。它重复地走访过要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序&#xff08;如从大到小、首字母从A到Z&#xff09;错误就把他们交换过来。 过程演示&#xff1a; #i…

shell第二天练习

题目 1、编写一个 Shell脚本&#xff0c;程序执行时从键盘读入一个目录名&#xff0c;如果用户输入的目录不存在&#xff0c;则提示file does not exist&#xff1b;如果用户输入的不是目录则提示用户必须输入目录名&#xff1b;如果用户输入的是目录则显示这个目录下所有文件…

django笔记《模型和数据库一》

文章目录1 前言2 创建一个demo项目2.1 修改配置文件3 模型3.1 主键3.2 django 内置字段类型3.3 自定义字段类型3.4 django字段选项3.5 字段备注名3.5 META3.6 关联关系3.6.1 多对一关系3.6.2 多对多关系3.6.3 一对一关系3.7 字段命名限制3.8 模型属性&#xff1a;Model.objects…

基于springboot+Vue前后端分离的招聘管理系统(程序+数据库+文档)

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

A Survey on Deep Learning Techniques for Stereo-based Depth Estimation论文阅读

1. 摘要 估计RGB图片的深度是一个长期存在的病态问题&#xff0c;计算机视觉、图形学、机器学习社区已经探索了数十年。立体匹配是最广泛见诸文献的技术之一&#xff0c;因为它与人类的双目系统有强关联。传统上&#xff0c;利用多张图片的人工特征匹配来处理基于立体的深度估…

nginx 实现图片防盗链功能

在搜索浏览网页的时候&#xff0c;发现一篇文章是从我的个人网站转载的&#xff0c;但是没有注明出处&#xff0c;文章中的图片也没有本地化处理&#xff0c;还是从我的服务器请求&#xff0c;这就无形中增加了我的服务器的开销&#xff0c;于是有了设置防盗链功能这一想法。 …

Kafka 核心源码解读【五】--延迟操作模块

文章目录1 TimingWheel&#xff1a;探究Kafka定时器背后的高效时间轮算法1.1 时间轮简介1.2 源码层级关系1.3 时间轮各个类源码定义1.3.1 TimerTask 类1.3.2 TimerTaskEntry 类1.3.3 TimerTaskList 类1.3.4 TimingWheel 类1.4 总结2 DelayedOperation&#xff1a;Broker是怎么延…

【Vue】九、vue-element-admin

后端程序员的vue学习之路一、介绍二、功能特性三、前置准备四、前置知识五、项目结构说明&#xff1a;六、安装运行一、介绍 vue-element-admin 是一个后台前端解决方案&#xff0c;它基于 vue 和 element-ui实现&#xff0c;它使用了最新的前端技术栈&#xff0c;内置了动态路…

深入理解计算机系统_程序的链接过程

编辑好的程序&#xff0c;依次经过预处理(注释&#xff0c;宏替换&#xff0c;头文件包含&#xff0c;生成.s文件)、编译(生成汇编文件.s )、汇编(生成静态可重定位目标文件&#xff0c;文件名是.o)、链接后最终得到可执行目标文件&#xff0c;这个笔记记录一下&#xff0c;链接…

信号处理系列之死区滤波器(DeadZone)

信号处理专栏相关限幅滤波的文章,可以参看下面的链接,这里不再赘述: 博途PLC信号处理系列之限幅消抖滤波_RXXW_Dor的博客-CSDN博客关于限幅滤波可以参看下面这篇文章PLC信号处理之限幅滤波(西门子三菱FB)_RXXW_Dor的博客-CSDN博客限幅滤波是一种消除随机干扰的有效方法,比…

WordPress元宇宙和VR(虚拟现实)最佳插件汇总

近年来&#xff0c;虚拟现实&#xff08;VR &#xff09;和元宇宙&#xff08;Metaverse &#xff09;变得越来越流行。它使用户能够在舒适的家中享受身临其境的体验。此外&#xff0c;将此功能添加到您的网站可以帮助您的内容更具交互性&#xff0c;这可能会带来更多转化。幸运…

RHCE——ansible安装配置(2)

安装并且配置ansible&#xff1a; 1)安装和配置ansible以及ansible控制节点server.example.com如下&#xff1a; 2)创建一个名为/home/student/ansible/inventory的静态库存文件如下所示&#xff1a; 2.1)node1 是dev主机组的成员 2.2)node2是test主机组的成员 2.3)node1和node…

c++动态内存管理

1.回顾c语言中的动态内存管理 在c语言中&#xff0c;我们想要动态开辟一段空间&#xff0c;需要使用malloc&#xff0c;calloc&#xff0c;realloc几个函数 void* malloc (size_t size); //在堆上申请size个字节的空间void* calloc (size_t num, size_t size); //第一个参数是…

压缩空气储能研究(Matlab代码)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…