如何在R中直接绘制h2o模型对象的ROC

2023-12-03

如果我遗漏了一些明显的东西,我很抱歉。在过去的几天里,我非常喜欢使用 R 界面与 h2o 一起工作。我想通过绘制 ROC 来评估我的模型,例如随机森林。该文档似乎表明有一种简单的方法可以做到这一点:

解释 DRF 模型

  • 默认情况下,显示以下输出:
  • 模型参数(隐藏)
  • 评分历史图表(树的数量与训练 MSE)
  • ROC 曲线图(TPR 与 FPR)
  • 变量重要性图 ...

我还看到在 python 中你可以应用roc功能here。但我似乎无法找到在 R 界面中执行相同操作的方法。目前我正在使用以下方法从模型中提取预测h2o.cross_validation_holdout_predictions然后使用 R 中的 pROC 包来绘制 ROC。但我希望能够直接从 H2O 模型对象或 H2OModelMetrics 对象来完成此操作。

非常感谢!


一个简单的解决方案是使用plot()绘制 H2OMetrics 对象的通用函数:

logit_fit <- h2o.glm(colnames(training)[-1],'y',training_frame =
    training.hex,validation_frame=validation.hex,family = 'binomial')
plot(h2o.performance(logit_fit),valid=T),type='roc')

这将为我们提供一个情节:

enter image description here

但很难定制,尤其是改变线型,因为type参数已被视为“roc”。另外,我还没有找到一种方法将多个模型的 ROC 曲线一起绘制在一个图上。我想出了一种从 H2OMetrics 对象中提取真阳性率和假阳性率的方法,并使用 ggplot2 自己在一个图上绘制 ROC 曲线。这是示例代码(使用了大量 tidyverse 语法):

# for example I have 4 H2OModels
list(logit_fit,dt_fit,rf_fit,xgb_fit) %>% 
  # map a function to each element in the list
  map(function(x) x %>% h2o.performance(valid=T) %>% 
        # from all these 'paths' in the object
        .@metrics %>% .$thresholds_and_metric_scores %>% 
        # extracting true positive rate and false positive rate
        .[c('tpr','fpr')] %>% 
        # add (0,0) and (1,1) for the start and end point of ROC curve
        add_row(tpr=0,fpr=0,.before=T) %>% 
        add_row(tpr=0,fpr=0,.before=F)) %>% 
  # add a column of model name for future grouping in ggplot2
  map2(c('Logistic Regression','Decision Tree','Random Forest','Gradient Boosting'),
        function(x,y) x %>% add_column(model=y)) %>% 
  # reduce four data.frame to one
  reduce(rbind) %>% 
  # plot fpr and tpr, map model to color as grouping
  ggplot(aes(fpr,tpr,col=model))+
  geom_line()+
  geom_segment(aes(x=0,y=0,xend = 1, yend = 1),linetype = 2,col='grey')+
  xlab('False Positive Rate')+
  ylab('True Positive Rate')+
  ggtitle('ROC Curve for Four Models')

那么ROC曲线为:

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在R中直接绘制h2o模型对象的ROC 的相关文章

  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • 使用 pracma::findpeaks 识别持续峰值

    我的语法有问题peakpat内的选项findpeaks内的函数pramcaR 包 v 2 1 1 我使用的是 R 3 4 3 x64 Windows 我希望该函数能够识别可能有两个重复值的峰值 并且我相信该选项peakpat这就是我能做到的
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 将绘图调用拆分为多个块

    我正在编写一个图的解释 其中我基本上将在第一个块中创建图 然后描述该输出 并在第二个块中添加一个轴 然而 似乎每个块都会强制一个新的绘图环境 因此当我们尝试使用以下命令运行块时会出现错误axis独自的 观察 output html docu
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • 在 R 中创建虚拟变量,排除某些情况为 NA

    我的数据看起来像这样 V1 V2 A 0 B 1 C 2 D 3 E 4 F 5 G 9 我想创建一个虚拟变量R where 0 1 1 2 3 4 and NA 0 5 9 应该很简单 有人可以帮忙吗 我们可以转换V2 into a fa
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 如何获得所有大于x且有位置的数字?

    V lt c 1 3 2 4 2 3 1 X lt 3 pos lt V V X pos is 3 3 我需要的是所有 3 个的位置 I need 2 and 6 哪些职位是3 in V Use which pos lt which V 3
  • 如何从 R 中的 txt 文件读取矩阵?

    我有一个带有矩阵的txt文件 Matrix txt 重要 数字之间没有空格 0100 1001 1100 我想在 R 中将其作为矩阵读取 我该怎么做 我尝试使用 as matrix read table Matrix txt sep 但失败
  • R:如何获取该月的周数

    我是 R 新手 我想要该日期所属月份的周数 通过使用以下代码 gt CurrentDate lt Sys Date gt Week Number lt format CurrentDate format U gt Week Number 3
  • ROC曲线和libsvm

    给定一条 ROC 曲线plotroc m see here http www csie ntu edu tw cjlin libsvmtools roc curve for binary svm 理论问题 如何选择要使用的最佳阈值 编程问题
  • 投资决策:R中的NPV、IRR、PB计算

    我正在尝试计算不同数量项目的净现值 NPV 内部收益率 IRR 和投资回收期 PB 时间 以评估哪个投资项目提供最佳回报 到目前为止 我可以为每个项目单独计算几行代码 但我想做的是 编写一个函数 它接受一个包含许多不同项目及其现金流的矩阵
  • read_html(url) 和 read_html(content(GET(url), "text")) 之间的区别

    我正在看这个很棒的答案 https stackoverflow com a 58211397 3502164 https stackoverflow com a 58211397 3502164 解决方案的开头包括 library httr
  • R:使用 tidyverse 将 NA 替换为 df 中的其他变量

    我想使用 tidyverse 替换 df 中的 NA 值 我想要的值应该从其他列中计算出来 input ID X1 X2 X3 A 0 96 NA 0 97 B 1 00 NA 1 01 C 0 98 0 03 NA A 1 00 NA 1
  • 任意列中包含字符串的子集行

    我有一个如下所示的数据集 Col1 Col2 Col3 abckel NA 7 jdmelw njabc NA 8 jdken jdne 如何对数据集进行子集化 使其仅保留包含字符串 abc 的行 最终预期输出 Col1 Col2 Col3
  • Shiny:动态数据框构建; renderUI、观察、reactiveValues

    我认为如何使用 Shiny 的 renderUI 功能动态子集数据的问题经常出现 但我很难理解何时使用 renderUI 带有 uiOutput 而不是其他功能 包括观察 反应 反应值甚至条件面板 我想构建一个完全交互式的数据框架 其中每个

随机推荐

  • 窗口大小调整时获取文档的大小

    当我调整窗口大小时 我可以找到窗口的大小 就像这样 现在我想在调整窗口大小时获取文档大小 每次调整窗口大小时如何获取大小 窗口 width 返回浏览器视口的宽度 文档 width 返回 HTML 文档的宽度
  • 嵌入式 Google 文档 PDF 查看器显示登录页面而不是 PDF

    我有一个网页 在 iFrame 中嵌入了 Google 文档查看器 其中 URL encoded URL 是实际编码的 URL 对于我的许多 大多数用户来说 Google PDF 文档查看器会出现并显示引用的 PDF 但我的一些用户却看到带
  • 如何在Python中读取大文件的特定部分

    给定一个大文件 数百 MB 我如何使用 Python 快速读取文件内特定开始索引和结束索引之间的内容 本质上 我正在寻找一种更有效的方法 open filename read start index end index You can se
  • webview 不显示 javascript windows.open()

    我有一个WebView我在其中显示我无法控制的网页内容 内容显示正常 但有生成弹出窗口的链接 执行此操作的 javascript 函数如下所示 function getEntry id var win window open Booking
  • 如何获取使用特定共享工作簿的用户列表?

    我正在使用共享工作簿 有一个代码可以撤消 WB 共享 更新工作表中的数据 然后再次共享 WB 如果有用户连接到该 WB 他们将失去在 WB 上保存的能力 Excel 会要求他们以不同的名称保存 WB 我的问题是如何获取当前正在使用 WB 的
  • REST WCF 的 WSDL

    我通过在 web config 中指定 WebGET 和 WebHttpBinding 在 C 中创建了 REST WCF 该服务通过 IE 运行良好 我的 wsdl 开始如下 它在 wsdl 中有肥皂 由于这是 REST soap 不应该
  • 输入键保存文本区域值

    你好 我有 ckeditor 和一个用于使用 ajax 保存 ckeditor 文本的按钮
  • 生成与现有一维数组具有预先指定相关性的 NumPy 一维数组?

    我有一个未生成的一维 NumPy 数组 现在 我们将使用生成的一个 import numpy as np arr1 np random uniform 0 100 1 000 我需要一个关联的数组0 3用它 arr2 print np co
  • 本地控制器与核心控制器

    我在本地管理 app code local Mage Adminhtml Block Catalog Product Grid php 中添加新的列和操作 但是效果很好 本地控制器 app code local Mage Adminhtml
  • 如何向Android中同一应用程序的注册用户发送通知

    每当我作为管理员添加某些内容时 我想通知已下载应用程序的用户 每个下载该应用程序的用户都会注册 我有关于用户的所有信息 我想在向我的应用程序添加某些内容时发出通知 通常我添加的数据将存储在数据库中 请告诉我如何实现这一点 你应该使用GCM用
  • PhotoKit 中的删除:可以跳过“最近删除”吗?

    从 iOS8 开始 当您删除照片时 它会进入一个名为 最近删除 的类似垃圾箱的文件夹中 当您通过 Photos app 或通过 PhotoKit API 使用PHAssetChangeRequest deleteAssets 在 Photo
  • Excel VBA If and then 无法正确评估

    我有下面的代码 在我看来 IF 语句有问题 工作簿中有两个选项卡 ALLDATA 选项卡和 COMP 选项卡 该宏应该按日期 ALLDATA 选项卡的 A 列 金额 COMP 选项卡上的单独列 以第 1 行开头 填充收款人列表 ALLDAT
  • 我的 .map 方法在功能上无法正常工作

    我不知道为什么 map 方法被完全忽略 即使在删除条件后 它也不会将小部件添加到我的列表中 似乎 groupsToRename map 根本不存在 List
  • 详细说明:方法重载是静态/编译时绑定,但不是多态性。将静态绑定与多态性相关联是否正确?

    在提问之前 我先阐述一下我的理解和看法 除非有向上转换 否则仅通过重写无法实现多态性 由于它只能在运行时看到 人们可能将其命名为运行时多态性 我不反对打电话多态性 as 运行时多态性 我有异议打电话方法重载 as 编译时多态性 or 多态性
  • 简单的 MVC 路线遇到问题

    某些路线遇到一些问题 我并不完全理解 MVC 路由系统 所以请耐心等待 我有两个控制器 产品和主页 还有更多控制器 我希望无需在 url 中键入 Home 即可访问 Home 控制器中的视图 本质上 我想将 www example com
  • 如何在VSCode中添加自定义代码片段?

    是否可以在 Visual Studio Code 中添加自定义代码片段 如果是这样 怎么办 VSCode是基于Atom的 所以应该是可以的 Hit gt shift command p and type snippets Select 首选
  • 如何在 Unity 中全局创建类的别名?

    现在 我正在使用 字符串 来枚举角色上的设备槽列表 我还使用 string 来枚举该项目可以装备的类类型 这使得我获取 删除 生成等项目的所有方法都涉及两个字符串参数 即设备槽和类类型 我真正想要的是使用 2 个类 这样我就有了 slot
  • 单击通知时获取 PendingIntent 事件

    我试图在单击通知时单击事件 我拥有的 NotificationManager notificationManager NotificationManager getSystemService Context NOTIFICATION SER
  • 在 PySpark Builder 中设置 PySpark 序列化器

    我正在使用 PySpark 2 1 1 并尝试在使用 Spark Submit 时设置序列化器 在我的应用程序中 我按如下方式初始化 SparkSession builder print creating spark session spa
  • 如何在R中直接绘制h2o模型对象的ROC

    如果我遗漏了一些明显的东西 我很抱歉 在过去的几天里 我非常喜欢使用 R 界面与 h2o 一起工作 我想通过绘制 ROC 来评估我的模型 例如随机森林 该文档似乎表明有一种简单的方法可以做到这一点 解释 DRF 模型 默认情况下 显示以下输