从0开始学习R语言--Day50--ROC曲线

对于已经拟合好的生存模型,我们一般会直接用ROC去评判一下整体的水平,因为很多时候阈值都是我们人为根据实际情况去设定的,这种微调的细节都是在整体模型的拟合程度确定下来后再做的工作。

ROC曲线可以提供给我们模型对于二分类变量的区分能力,而且还可以看到到底是哪些样本数据被错误分类了,能帮助我们确定哪些数据可能有共线性或迷惑性的特征。

以下是一个例子:

# 加载必要的包
library(pROC)
library(ggplot2)# 生成模拟数据集
set.seed(123)
n <- 1000# 生成两个正态分布的组
group1 <- rnorm(n, mean = 0, sd = 1)  # 负例
group2 <- rnorm(n, mean = 1.5, sd = 1) # 正例# 创建数据框
data <- data.frame(score = c(group1, group2),class = factor(rep(c(0, 1), each = n))
)# 计算ROC曲线
roc_obj <- roc(data$class, data$score)# 获取AUC值
auc_value <- auc(roc_obj)
cat("AUC值为:", auc_value, "\n")# 找到最佳阈值(根据Youden指数)
best_threshold <- coords(roc_obj, "best", ret = "threshold", best.method = "youden")# 修正后的阈值输出方式(提取数值部分)
cat("最佳阈值为:", best_threshold$threshold, "\n")# 或者使用更安全的方式
if(!is.null(best_threshold$threshold)) {cat("最佳阈值为:", best_threshold$threshold, "\n")
} else {cat("无法确定最佳阈值\n")
}# 计算所有阈值下的指标
roc_table <- coords(roc_obj, "all", ret = c("threshold", "specificity", "sensitivity", "accuracy"))
head(roc_table)# 绘制ROC曲线
ggroc(roc_obj, color = "blue", size = 1) +geom_abline(intercept = 1, slope = 1, linetype = "dashed", color = "red") +labs(title = paste0("ROC曲线 (AUC = ", round(auc_value, 3), ")"),x = "假正例率 (FPR)", y = "真正例率 (TPR)") +theme_minimal()

输出:

AUC值为: 0.858621 
最佳阈值为: 0.8868806 0.9051289threshold specificity sensitivity accuracy
1      -Inf       0.000           1   0.5000
2 -2.735349       0.001           1   0.5005
3 -2.652036       0.002           1   0.5010
4 -2.622424       0.003           1   0.5015
5 -2.554809       0.004           1   0.5020
6 -2.486908       0.005           1   0.5025

可以看到,曲线整体偏左上角,符合AUC靠近1的事实,说明模型对于二分类的区分能力较好,给出的最佳阈值虽然不一定准确,但是也接近这个范围,进一步说明其解释性。

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

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

相关文章

从Hyperliquid到AILiquid:一场从极致性能到策略智能的迭代

在Hyperliquid以极致性能引爆链上衍生品交易热潮之后&#xff0c;DeFi市场正迎来新一轮的范式转变。作为AI原生的下一代交易平台&#xff0c;AILiquid正式上线并引发市场广泛关注。该平台不仅保留了高频低延迟的交易体验&#xff0c;更通过AI撮合引擎与链上风险控制系统&#x…

磁悬浮轴承转子不平衡质量控制:陷波滤波器深度解析

在磁悬浮轴承高速旋转的世界里&#xff0c;不平衡质量如同一个无形的幽灵&#xff0c;引发危险的同步振动&#xff0c;而陷波滤波器&#xff0c;正是精准捕获并消除这个幽灵的“电磁猎手”。本文将深入剖析其核心原理与实战设计。引言&#xff1a;同步振动的致命诱惑磁悬浮轴承…

Oracle 数据库常见等待事件参数详解

在 Oracle 数据库的性能诊断与优化中&#xff0c;等待事件是重要的分析依据&#xff0c;而理解等待事件的参数则是深入排查问题的基础。本文将结合 Oracle 官方文档&#xff0c;对数据库中常见的等待事件参数进行详细解析&#xff0c;帮助数据库管理员和开发人员更好地解读等待…

STM32中的CAN总线详解:从原理到实战

前言&#xff1a;为什么CAN总线是嵌入式通信的"硬通货"&#xff1f; 在嵌入式通信领域&#xff0c;CAN&#xff08;Controller Area Network&#xff09;总线凭借其高可靠性、实时性和多节点通信能力&#xff0c;成为汽车电子、工业控制、智能设备等领域的"标配…

【鸿蒙HarmonyOS】鸿蒙app开发入门到实战教程(二):封装自定义可复用组件

组件的可复用性&#xff0c;对我们开发的app质量影响很大&#xff0c;看看鸿蒙中如何封装这种组件 实现效果代码实现 局部封装 Builder titleBuilder(title:string 默认标题) {// Builder装饰此函数&#xff0c;使其能以链式调用的方式配置并构建Text组件Row(){Text(title).fo…

Volo-HTTP 0.4.0发布:正式支持 HTTP/2,客户端易用性大幅提升!

&#x1f916; VOLO简介 Volo 是由字节跳动服务框架团队开源的一款高性能、易用的 Rust RPC 框架。 Volo 框架自身开销极低&#xff0c;并提供了命令行工具与灵活的中间件设计&#xff0c;让开发者可以轻松上手&#xff0c;享受 Rust 带来的开发乐趣。 本文介绍自 Volo-HTTP 0…

HTTP相关知识

文章目录一、基础特性与规范二、页面元素与布局三、交互与表单四、网络通信基础流程&#xff08;以浏览器访问网页为例&#xff09;五、配套技术与工具六、知识关联图&#xff08;简化版&#xff09;一、基础特性与规范 技术定位&#xff1a;HTML 是前端技术栈的核心标记语言&…

机器人-组成结构

目录 一、发展历程 二、软件硬件算法深读耦合 感知 - 决策 - 执行 1.机械系统&#xff1a; 2.驱动系统&#xff1a; 3.感知系统&#xff1a; 4.控制系统&#xff1a; 5.决策/智能系统&#xff1a; 6.电源系统&#xff1a; 7.总结 一、发展历程 国际标准化组织(ISO)对…

pycharm结构查看器

v表示整个文件中定义的变量&#xff0c;c是类灰色部分是继承的父类的&#xff0c;明亮的是定义的&#xff0c;其中m表示定义的函数&#xff0c;f表示

AdsPower 功能详解 | 应用中心使用指南:插件统一管理更高效、更安全!

当你使用 AdsPower 管理多个浏览器环境时&#xff0c;插件的统一配置就变得尤为重要。而「应用中心」正是帮助你集中管理浏览器插件的功能入口&#xff0c;搭配浏览器环境使用&#xff0c;可以让账号操作更便捷、团队协作更高效。这篇教程将带你快速上手 AdsPower 应用中心的核…

回归预测 | MATLAB实现DBO-BP蜣螂算法优化BP神经网络多输入单输出回归预测

回归预测 | MATLAB实现DBO-BP蜣螂算法优化BP神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现DBO-BP蜣螂算法优化BP神经网络多输入单输出回归预测 预测效果 基本介绍 主要功能 逻辑关联与算法流程 1. 数据准备 2. DBO优化BP参数 3. BP神经网络构建 4. 预测与评估 运行…

Lsposed/Xposed

1.环境 1.1 xposed: 安卓8以下使用 下载并安装xposed installer&#xff0c;模拟器需勾选设置-共享磁盘。 若提示未激活&#xff0c;需要下载sdk sdk下载地址 放置目录 /sdcard/Android/data/de.robv.android.xposed.installer/cache/downloads/framework/文件权限设置 777 …

3D工业相机是什么?如何选择和使用它?

工业自动化越来越深入&#xff0c;3D成像技术&#xff08;3D工业相机&#xff09;在工业生产中越来越重要。这篇文章就来说说3D工业相机的技术原理、具体能应用在哪以及怎么选3D相机&#xff0c;给大家做个参考。一、 技术定义与核心特点3D工业相机&#xff0c;简单说就是一种特…

有哪些好用的原型设计软件?墨刀、Axure等测评对比

下面是几款常用原型设计软件的简介和对比&#xff0c;重点对墨刀和Axure进行了测评分析&#xff0c;帮助你根据需求做出选择。&#x1f4a1;常见原型设计软件一览工具名称适合人群平台支持是否协作是否支持交互墨刀&#xff08;MockingBot&#xff09;产品经理/团队协作Web、Wi…

二叉树思想草稿

二叉树解体两种思路 是否可以通过遍历一遍二叉树得到答案&#xff1f; 用一个traverse函数配合外部变量实现遍历的思维模式 是否可以定义一个递归函数&#xff0c;通过子树的答案推导出原问题的答案&#xff1f; 递归三部曲&#xff1a; 函数定义&#xff0c;参数&#xff0c;返…

如何区分Bug是前端问题还是后端问题?

在软件测试中,精准定位Bug的归属(前端 or 后端)是高效协作的关键。以下是系统化的排查方法,结合技术细节和实战技巧: 1. 核心判断逻辑 「数据 vs 展示」二分法: 后端问题:数据本身错误(API返回错误数据/逻辑错误/数据库问题) 前端问题:数据正确但展示异常(UI渲染错…

深入解析操作系统中的文件控制块(FCB):从原理到现代实现演进

一、FCB的核心概念与基础结构文件控制块&#xff08;File Control Block, FCB&#xff09;是操作系统管理文件的核心元数据结构&#xff0c;充当文件系统与物理存储间的桥梁。FCB本质上是文件在内存中的映射&#xff0c;包含文件的所有管理信息。传统FCB通常占据32-44字节空间&…

python原生处理properties文件

这个工具类使用 Python 的 configparser 模块操作 .properties 文件&#xff0c;核心是将 .properties 格式适配为 configparser 支持的 .ini 格式。 核心代码解释 1. 类初始化与配置解析 class Properties:def __init__(self, file_path: str, encoding: str utf-8):self.fil…

【java 安全】 IO流

前言 IO是指 Input/Output&#xff0c;即输入和输出。以内存为中心&#xff1a; Input指从外部读入数据到内存&#xff0c;例如把文件从磁盘读取到内存&#xff0c;从网络读取数据到内存等等。Output指把数据从内存输出到外部&#xff0c;例如把数据从内存写入到文件&#xff0…

音视频同步技术初剖析:原理、实现与FFmpeg分析

音视频同步的基本原理 音视频同步主要依靠以下几个关键点&#xff1a;时间戳机制&#xff1a; 在封装格式(如MP4)中&#xff0c;音频帧和视频帧都带有时间戳(PTS, Presentation Time Stamp)这些时间戳表示该帧应该在什么时间被呈现同步策略&#xff1a; 音频为主时钟&#xff1…