如何在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 的相关文章

  • 使用 dplyr 计算组平均值,同时排除当前观察值

    Using dplyr 最好 我试图计算每个观察值的组平均值 同时从组中排除该观察值 看来这应该可以通过组合来实现rowwise and group by 但这两个功能不能同时使用 给定这个数据框 df lt data frame grou
  • 测试 PCA 图上簇的显着性

    是否可以在 PCA 图上测试 2 个已知组之间聚类的显着性 测试它们的接近程度或分布量 方差 以及簇之间的重叠量等 这是一种定性方法 使用ggplot 在簇周围绘制 95 置信椭圆 注意stat ellipse 使用二元 t 分布 libr
  • 如何在 Windows 上使用 freeType 构建 rgl

    我正在尝试 并且非常失败 建立rgl封装有freeType在 Windows 上 因为事实证明 rgl我通过 Rgui 安装的 Windows 二进制文件不包括freeType支持 我需要它的原因是this https stackoverf
  • 从 R 中的数据框/矩阵中选择一列时保留列名称

    在R中 当我只从数据框 矩阵中选择一列时 结果将变成一个向量并丢失列名称 如何保留列名称 例如 如果我运行以下代码 x lt matrix 1 3 3 colnames x lt c test1 test2 test3 x 1 我会得到 1
  • R 将向量重塑为多列

    假设我在 R 中有一个向量 如下所示 d lt seq 1 100 我想将这个向量重塑为 10x10 矩阵 这样我就可以得到以下数据 1 2 3 10 1 2 3 10 11 12 13 20 21 22 23 30 91 92 93 10
  • 为什么连接终止

    我正在尝试使用随机森林分类模型H2OR 内部的库 训练集有 7000 万行和 25 个数字特征 总文件大小为 5 6 GB 验证文件的大小为 1 GB 我的系统有 16 GB RAM 和 8 核 CPU 系统成功读取 H2O 对象中的两个文
  • 在 expr *之前*执行的任务处理程序

    是否有运行代码的回调before提示输入expr被评价 通过 SO CRAN 和一些谷歌搜索发现了我怀疑的答案 当前的 REPL 实现不可能 如果我错过了类似详细的重复讨论 我深表歉意 我对addTaskCallback 及其函数族 正在阅
  • 使用 markovchain 包计算观察序列的概率

    让我们使用来自的数据集这个问题 https stats stackexchange com questions 26722 calculate transition matrix markov in r dat lt data frame
  • 如何制作 POSIXct 的空向量

    我想制作一个空向量POSIXct这样我就可以放一个POSIXct in it vec lt vector POSIXct 10 vec vec 1 lt 2014 10 27 18 11 36 PDT vec 那是行不通的 有任何想法吗 由
  • data.table 和 pmin 带有 na.rm=TRUE 参数

    我正在尝试使用 pmin 函数和 data table 计算行间的最小值 类似于帖子data table 中的逐行操作和更新 https stackoverflow com questions 16860200 row by row ope
  • R 脚本 - 如何在错误时继续执行代码

    我编写了一个 R 脚本 其中包含一个检索外部 Web 数据的循环 数据的格式大多数时候是相同的 但有时格式会以不可预测的方式发生变化 并且我的循环崩溃 停止运行 有没有办法不管错误如何继续执行代码 我正在寻找类似于 VBA 中的 On er
  • ggplot2 stat_function,具有针对facet_grid内不同数据子集的计算参数

    我有一个关于如何通过的后续问题fitdistr计算参数为stat function see here https stackoverflow com questions 24949065 multiple stat function on
  • 如何使用 ggvis 标记绘图刻度线

    我正在尝试更改中的刻度标签ggvis阴谋 我的数据点是x c 1 2 3 and y c 1 2 3 但是 以下代码会产生完全没有意义的刻度标签 library dplyr library ggvis data frame x c 1 2
  • 通过时间和空间匹配从栅格中提取点

    我有一个包含当前速度信息的 strast 这是我根据 u 和 v 分量计算出来的 如何根据时间和空间匹配从该 SPATRAST 中提取点到数据帧 重新创建示例数据的代码 library stars library lubridate lib
  • R如何在ggplot2中为金字塔状图添加面标签

    我创建了类似金字塔的图 我想为图的每一侧添加标签 类似于小平面标签 我的数据 dt lt data frame Answer factor x rep x c 1 3 times 2 labels c Yes No Maybe Gender
  • 使用 mutate_if 和 Replace_na 替换数字列上的 NA

    我想使用某些变体替换数字列中的 NAmutate if and replace na如果可能的话 但无法弄清楚语法 df lt tibble first c a NA b second c NA 2 NA third c 10 NA NA
  • 如何对每行具有不同列位置的矩阵进行子集化? [复制]

    这个问题在这里已经有答案了 我想为每一行使用不同的 但一列 列来对矩阵进行子集化 那么申请可以完成这项工作吗 但也许智能子集也可以工作 但我还没有找到解决方案 计算时间是一个问题 我有一个带有 for 循环的解决方案 但多次将矩阵加载到 R
  • R:连接到 Teradata 时 JDBC() 找不到 Java 驱动程序路径

    我正在尝试通过 RStudio 连接到 Teradata 但由于某种原因 JDBC 函数在识别 Java 驱动程序所在的路径时出现问题 请参阅下面的代码 library RODBC library RJDBC library rJava b
  • 具有不同侧边栏的选项卡

    我正在尝试创建一个带有多个选项卡的闪亮应用程序 每个选项卡都有自己的侧边栏 我还没能让它发挥作用 任何有关错误的帮助将不胜感激 下面是代码 ui lt fluidPage titlePanel Hi sidebarLayout positi
  • 将列类型转换为数字时更改值

    我有一个具有上面格式的数据文件 我将其加载到 R 中 并尝试使用 dist 列中的值绘制直方图 但出现错误 x 必须是数字 因此我尝试更改格式 gt head data V1 V2 1 type gene dist 2 A 64667 3

随机推荐

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

    当我调整窗口大小时 我可以找到窗口的大小 就像这样 现在我想在调整窗口大小时获取文档大小 每次调整窗口大小时如何获取大小 窗口 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 模型 默认情况下 显示以下输