ROC、TPR、FPR的含义

news2024/9/27 14:50:24

1、ROC(Receiver Operating Characteristic)
 

ROC(Receiver Operating Characteristic)曲线是一种用于评估分类模型性能的工具。它通过绘制真阳性率(True Positive Rate, TPR)与假阳性率(False Positive Rate, FPR)之间的关系来展示模型的分类能力。ROC 曲线下的面积(AUC, Area Under the Curve)通常用于量化模型的性能。

如何绘制 ROC 曲线

在 Python 中,你可以使用 scikit-learn 库来绘制 ROC 曲线。以下是一个简单的示例:

 

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification


# 生成一个示例数据集
X, y = make_classification(n_samples=1000, n_features=20, n_classes=2, random_state=42)

# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 使用随机森林分类器
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)

# 获取测试集的预测概率
y_pred_proba = model.predict_proba(X_test)[:, 1]

# 计算 FPR, TPR 和阈值
fpr, tpr, thresholds = roc_curve(y_test, y_pred_proba)

# 计算 AUC
roc_auc = auc(fpr, tpr)


# 绘制 ROC 曲线
plt.figure()
plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()

注:本图来自无监督异常检测算法patchcore,不是上面给的代码例子产生的

ROC 曲线下的面积(AUC, Area Under the Curve)是评估分类模型性能的一个重要指标。AUC 的值范围在 0 到 1 之间,具体含义如下:

  • AUC = 1: 表示模型完美地将所有正样本排在所有负样本之前,即模型具有完美的分类能力。

  • AUC = 0.5: 表示模型的分类能力等同于随机猜测,即模型没有分类能力。

  • AUC < 0.5: 表示模型的分类能力比随机猜测还差,通常这种情况很少见,可能是因为模型预测结果完全相反。

  • 0.5 < AUC < 1: 表示模型具有一定的分类能力,AUC 值越接近 1,模型的分类能力越强。

ROC 曲线是通过在不同的分类阈值下计算 TPR 和 FPR,然后绘制 TPR 与 FPR 之间的关系得到的。ROC 曲线的横轴是 FPR,纵轴是 TPR。

  • 理想情况: 当 TPR 接近 1 且 FPR 接近 0 时,模型的性能最好。

  • 随机猜测: 当 TPR 和 FPR 相等时,模型的性能等同于随机猜测。

总结

  • AUC: 衡量模型分类能力的综合指标,值越大,模型的分类能力越强。

  • TPR: 衡量模型对正样本的识别能力,值越大,模型对正样本的识别能力越强。

  • FPR: 衡量模型对负样本的误判能力,值越小,模型对负样本的误判能力越弱。

通过 ROC 曲线和 AUC 值,你可以全面评估分类模型的性能,并选择合适的模型进行应用。

2、真阳性率(True Positive Rate, TPR)与假阳性率(False Positive Rate, FPR)的定义

真阳性率(True Positive Rate, TPR)也称为灵敏度(Sensitivity)或召回率(Recall),表示实际为正的样本中被正确预测为正的比例。其计算公式为:

                                            

其中:

  • TP (True Positive): 实际为正且被正确预测为正的样本数。

  • FN (False Negative): 实际为正但被错误预测为负的样本数。

假阳性率(FPR)

假阳性率(False Positive Rate, FPR)表示实际为负的样本中被错误预测为正的比例。其计算公式为:

 

其中:

  • FP (False Positive): 实际为负但被错误预测为正的样本数。

  • TN (True Negative): 实际为负且被正确预测为负的样本数。

 

 

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

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

相关文章

新书速览|Stable Diffusion-ComfyUI AI绘画工作流解析

《Stable Diffusion-ComfyUI AI绘画工作流解析》 本书内容 《Stable Diffusion-ComfyUI AI绘画工作流解析》从零开始&#xff0c;详尽系统地讲解从本地部署ComfyUI、下载安装自定义节点&#xff0c;到搭建各种工作流程的全过程。同时&#xff0c;辅以3D形象转绘、艺术二维码和证…

智能制造的生产力基础设施

由于全球大多数细分市场的半导体工厂都满负荷运转&#xff0c;因此&#xff0c;生产力如今成为整个行业关注的重要问题也就不足为奇了。工厂经理会仔细监控关键绩效指标 (KPI)&#xff0c;以发现任何生产力下降的迹象&#xff0c;以便快速做出反应&#xff0c;找出并解决这些偏…

UE4中 -skipbuild -nocompile 有什么区别

在项目开发中&#xff0c;我看到了在调用 Engine\\Build\\BatchFiles\\RunUAT.bat 相关的命令行中&#xff0c;有 -skipbuild、 -nocompile 两个很像的参数&#xff0c;于是想探究一下它们的区别与含义。 -skipbuild 参数 到底有没有 -skipbuild 这个参数&#xff1f;根据 http…

1.3 熟悉常用的IP相关命令

1.3熟悉常用的IP相关命令 原理概述 华为设备支持多种配置方式&#xff0c;包括Web界面管理等。但作为一名网络工程师&#xff0c;必须熟悉使用命令行的方式进行设备管理。在工作中&#xff0c;对路由器和交换机最常用的操作命令就是IP相关命令&#xff0c;如配置主机名、IP地…

<Rust>egui学习之部件(十三):如何为文本添加链接Link和超链接HyperLink功能?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析&#xff0c;主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;rust 库&#xff1a;egui、eframe 概述 本文是本专栏的第十三篇…

ROS与无人驾驶学习笔记(零)——问题汇总

文章目录 ubuntu相关问题 ubuntu中中文输入法没有输入框 在ubuntu中使用双拼输入 ros卸载重装报错的问题 在学习ubuntu、ros以及无人驾驶过程中遇到的问题我都记在在这里 ubuntu相关问题 ❤ 2024.9.20 ❤ ubuntu中中文输入法没有输入框 因为我用的是arm平台&#xff0c;于…

软件对比 | 历史气象数据哪里找?

中国气象网和羲和能源气象大数据平台两个平台当然没有“绝对”哪个好的说法&#xff0c;各自特点都在下图进行总结&#xff0c;到底用哪个还是根据自己需求自己抉择。 希望可以帮助到大家~

Maven中 <parent > 的<version>可以使用变量吗

答案&#xff1a; 不可以&#xff01; 在 Maven 中&#xff0c;父 POM 的 <version> 元素不能直接使用变量。父 POM 的版本号必须是硬编码的&#xff0c;不能通过变量来动态设置。这是因为父 POM 的版本号在子模块中引用时&#xff0c;需要是一个固定的值&#xff0c;以…

记录:ubuntu20.04的安装和必要的开发准备

记录ubuntu20.04的安装和必要的开发准备 准备1. 安装ubuntu20.04时的Tips2. 屏幕亮度调节问题3. 解决 "No Wi-Fi Adapter Found"4. Nvidia Driver && cuda5. 修改安装源6. ssh 远程开发7. 安装 anaconda 准备 没有装双系统&#xff0c;只有 ubuntu20.04&…

【ZYNQ 开发】填坑!双核数据采集系统LWIP TCP发送,运行一段时间不再发送且无法ping通的问题解决

问题描述 之所以说是填坑&#xff0c;是因为之前写了一篇关于这个双核数据采集系统的调试记录&#xff0c;问题的具体表现是系统会在运行一段时间后&#xff08;随机不定时&#xff0c;长了可能将近两小时&#xff0c;短则几分钟&#xff09;&#xff0c;突然间就不向电脑发送数…

电脑文件夹如何加密保护?文件夹加密方法有哪些?

在信息时代&#xff0c;数据安全已成为广大用户关注的焦点。电脑文件夹中往往存放着重要的文档、照片、账单等隐私信息&#xff0c;一旦泄露&#xff0c;后果不堪设想。因此&#xff0c;为电脑文件夹加密保护显得尤为重要。本文将介绍几种常见的文件夹加密方法&#xff0c;帮助…

【二叉平衡搜索树】Treap

前置 本篇是平衡树-treap的补充学习笔记。 Treap - 树堆 学习基础&#xff1a;适合一定基础的&#xff1a;比如&#xff0c;实现了经典二叉搜索树&#xff08;常用的几个函数写过&#xff09;&#xff0c; 和二叉堆&#xff08;数组的上浮下沉会写吗&#xff1f;&#xff09;&a…

LDRA Testbed(TBrun)软件集成测试(部件测试)_操作指南

系列文章目录 LDRA Testbed软件静态分析_操作指南 LDRA Testbed软件静态分析_自动提取静态分析数据生成文档 LDRA Testbed软件静态分析_Jenkins持续集成&#xff08;自动静态分析并用邮件自动发送分析结果&#xff09; LDRA Testbed软件静态分析_软件质量度量 LDRA Testbed软件…

工厂模式和抽象工厂模式的实验报告

1. 实验结果&#xff1a; 记录并附上不同模型对象&#xff08;例如&#xff1a;士兵、机器人、骑士&#xff09;的展示效果截图。 2. 性能分析&#xff1a; 记录并比较抽象工厂模式与直接实例化的性能测试结果&#xff0c;分析它们在不同数量级对象创建时的开销与效益。 2.1…

系统架构设计师 - 案例特训专题 - 数据库设计篇

案例特训专题 - 数据库设计篇 数据库设计篇规范化与反规范化 ★★★规范化 - 范式反规范化 数据库索引数据库视图数据库分区分表分库分区分区的常见方式 分表分库 分布式数据库 ★★★NoSQL ★★★其他数据库扩展知识 ★★★数据库性能优化集中式数据库优化分布式数据库优化 大…

Thingsboard规则链:Related Device Attributes节点详解

引言 在物联网&#xff08;IoT&#xff09;领域&#xff0c;Thingsboard作为一款强大的物联网平台&#xff0c;其规则链功能为企业提供了高度定制化的数据处理和自动化控制方案。其中&#xff0c;Related Device Attributes节点是一个特别实用的组件&#xff0c;它能够访问和操…

sql server每天定时执行sql语句

sql server每天定时执行sql语句 1、打开SQL Server Management Studio 2、鼠标右击【SQL Server 代理】&#xff0c;选择【启动(S)】&#xff0c;如已启动&#xff0c;可以省略此步骤&#xff1b; 3、右键&#xff0c;新建-》作业&#xff0c;在作业上-》新建作业&#xff…

超全攻略|手把手带你0经验转行产品经理

▌想入行&#xff0c;你需要先知道怎么才能走得更顺利 现在&#xff0c;如果有人问我&#xff0c;说重新回答大学毕业&#xff0c;刚要入行产品经理的时候&#xff0c;知道哪些事情&#xff0c;能让自己在后面的产品经理生涯中走的更顺利。 ❓是知道面试的套路&#xff0c;能…

PatrOwl:一款开源可扩展的安全协调运营平台

关于PatrOwl PatrOwl是一款开源可扩展的安全协调运营平台&#xff0c;广大研究人员可以使用该工具完成组织内部的安全协调运营。 该工具是一种可扩展、免费且开源的解决方案&#xff0c;用于协调安全操作。其中的PatrowlManager是前端应用程序&#xff0c;用于管理资产、实时审…

一文读懂常见的几种 LangChain 替代品,看到就是赚到!!

前言 在 LLM &#xff08;大规模语言模型&#xff09;应用开发领域&#xff0c;开源框架扮演着至关重要的角色&#xff0c;为广大开发者提供了强大的工具支持。作为这一领域的领军者&#xff0c;LangChain 凭借其创新设计和全面功能赢得了广泛赞誉。但与此同时&#xff0c;一些…