如何消除使用 randomForest 运行预测的“外部函数调用中的 NA/NaN/Inf (arg 7)”

2023-12-20

我对此进行了广泛的研究,但没有找到解决方案。我已经清理了我的数据集,如下所示:

library("raster")
impute.mean <- function(x) replace(x, is.na(x) | is.nan(x) | is.infinite(x) , 
mean(x, na.rm = TRUE))
losses <- apply(losses, 2, impute.mean)
colSums(is.na(losses))
isinf <- function(x) (NA <- is.infinite(x))
infout <- apply(losses, 2, is.infinite)
colSums(infout)
isnan <- function(x) (NA <- is.nan(x))
nanout <- apply(losses, 2, is.nan)
colSums(nanout)

运行预测算法时出现问题:

options(warn=2)
p  <-   predict(default.rf, losses, type="prob", inf.rm = TRUE, na.rm=TRUE, nan.rm=TRUE)

所有研究都表明数据中应该是 NA、Inf 或 NaN,但我没有找到。我正在将数据和 randomForest 摘要提供给 [已删除] 进行调查 回溯并没有透露太多(无论如何对我来说):

4: .C("classForest", mdim = as.integer(mdim), ntest = as.integer(ntest), 
       nclass = as.integer(object$forest$nclass), maxcat = as.integer(maxcat), 
       nrnodes = as.integer(nrnodes), jbt = as.integer(ntree), xts = as.double(x), 
       xbestsplit = as.double(object$forest$xbestsplit), pid = object$forest$pid, 
       cutoff = as.double(cutoff), countts = as.double(countts), 
       treemap = as.integer(aperm(object$forest$treemap, c(2, 1, 
           3))), nodestatus = as.integer(object$forest$nodestatus), 
       cat = as.integer(object$forest$ncat), nodepred = as.integer(object$forest$nodepred), 
       treepred = as.integer(treepred), jet = as.integer(numeric(ntest)), 
       bestvar = as.integer(object$forest$bestvar), nodexts = as.integer(nodexts), 
       ndbigtree = as.integer(object$forest$ndbigtree), predict.all = as.integer(predict.all), 
       prox = as.integer(proximity), proxmatrix = as.double(proxmatrix), 
       nodes = as.integer(nodes), DUP = FALSE, PACKAGE = "randomForest")
3: predict.randomForest(default.rf, losses, type = "prob", inf.rm = TRUE, 
       na.rm = TRUE, nan.rm = TRUE)
2: predict(default.rf, losses, type = "prob", inf.rm = TRUE, na.rm = TRUE, 
       nan.rm = TRUE)
1: predict(default.rf, losses, type = "prob", inf.rm = TRUE, na.rm = TRUE, 
       nan.rm = TRUE)

您的代码不完全可重现(没有运行实际的randomForest算法)但你是not替换Inf值与列向量的平均值。这是因为na.rm = TRUE调用中的参数mean()在你的impute.mean函数的作用正如其所言——删除NA值(而不是Inf ones).

例如,您可以通过以下方式看到这一点:

impute.mean <- function(x) replace(x, is.na(x) | is.nan(x) | is.infinite(x), mean(x, na.rm = TRUE))
losses <- apply(losses, 2, impute.mean)
sum( apply( losses, 2, function(.) sum(is.infinite(.))) )
# [1] 696

要摆脱无限值,请使用:

impute.mean <- function(x) replace(x, is.na(x) | is.nan(x) | is.infinite(x), mean(x[!is.na(x) & !is.nan(x) & !is.infinite(x)]))
losses <- apply(losses, 2, impute.mean)
sum(apply( losses, 2, function(.) sum(is.infinite(.)) ))
# [1] 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何消除使用 randomForest 运行预测的“外部函数调用中的 NA/NaN/Inf (arg 7)” 的相关文章

  • 计算数据集列的百分位数

    最亲爱的 R 专家 为您快速介绍一下 我正在做一项作业 在这个练习中 我被要求从数据中获取基本统计数据infert数据集 它是内置的 特别是其中的一列 infert age 对于不熟悉数据集的人 gt table ages Which is
  • 从 r 中的多个列表创建二进制(存在/不存在)数据矩阵

    我有一系列不同长度的单独变量列表 字符串 我想将它们组合成一个数据帧以形成存在 1 不存在 0 矩阵 鉴于它们的长度不同 我什至不知道如何创建初始数据框 这是我的例子 data1 lt c a b c d e f data2 lt c e
  • 使用 R 进行语言相关排序

    1 如何正确排序 任务是根据英文字母对美国州名缩写进行排序 但我注意到 R 根据某种操作系统语言或区域设置对列表进行排序 例如 在我的语言 立陶宛语 中 甚至拉丁语 非立陶宛语 字母的顺序也与英语字母表中的顺序不同 仅比较两个字母表中的非立
  • 相对于时间求平均值

    我有以下带有日期时间和相应值的数据集 时间间隔为每10分钟一次 我需要以 15 分钟的间隔生成新行 例如 15 40 的值为 599 15 50 的值为 594 因此需要在两者之间生成一个新行 即 15 45 的平均值为 599 和 594
  • 可以使用部分名称访问列表成员吗?这是一个功能吗?

    考虑这个 R 代码 gt l list key 1 gt l k 1 1 gt l ke 1 1 gt l k NULL gt names l 1 key 这是否意味着您可以使用以下方式访问列表成员 及其部分名称 当我在一次令人沮丧的错误搜
  • R 中的整数或双精度列表

    我有一个大约 1000 个整数的列表 我需要能够进行一些数学计算 但它们被困在列表或字符形式中 我怎样才能切换它们以便它们可用 样本数据 gt y 1 1 7 3 1 6 7 1 7 6 5 3 1 3 3 0 6 2 4 9 19 1 9
  • 通过 R 连接到 Azure SQL

    下面的代码允许我通过 R 连接到 Azure SQL 服务器 但是 我只能访问 主 数据库 而不能访问我在下面创建的两个数据库 表格显示为空白 有什么想法吗 谢谢 library RODBC library dplyr library DB
  • 模糊匹配两个字符串 ur r

    我有两个向量 每个向量都包含一系列字符串 例如 V1 c pen document folder warn V2 c pens copy folder warning 我需要找出哪两个最匹配 我直接使用编辑距离 但这还不够好 就我而言 钢笔
  • 在 jupyter 笔记本中内联显示 R ggplots

    我正在尝试运行这里找到的一个简单示例 https www datacamp com community blog jupyter notebook r gs OczVCjA https www datacamp com community
  • 如何根据一个值过滤远程表?

    我正在做一个filter using in 但 dplyr 翻译查询的方式似乎不正确 事实上 in 运算符对于多个值可以正常工作 但当仅存在单个元素时则不行 在我最初的场景中 过滤值是动态的 因此我希望有一个在这两种情况下都有效的函数 my
  • 将 jupyter R 内核与 Visual Studio 代码结合使用

    对于 python jupyter 笔记本 我目前正在使用 VSCode python 扩展 但是我找不到任何使用替代内核的方法 我对 jupyter R 内核特别感兴趣 有没有办法在 VSCode 中使用 R 内核来处理 jupyter
  • Shiny中的DT:仅更改单行的颜色

    我有一个数据集 ID Value 102 306 41 800 101 783 105 193 myID 334 我想将其绘制为数据表 其中只有带有 myID 的行为橙色 表的其余部分为蓝色 看过之后辅助函数 https rstudio g
  • 从 R 中的函数绘制到文件

    背景 嘿大家 我是 R 的新手 在一位团队成员提供了关于 R 在学术环境中的有用性的教程后 我对使用它产生了兴趣 我正在尝试编写一个脚本来自动从多个文件中读取数据 然后将结果图表绘制到多个文件中 以便可以轻松地将它们添加到手稿中 Power
  • 为什么R中的转置函数将数字转换为字符?

    我在 Excel 中构建了一个简单的矩阵 其中包含一些字符值和一些数值 Excel 中设置的数据的屏幕截图 https i stack imgur com UpQ1I png 我使用 openxlsx 包将其读入 R 如下所示 librar
  • 错误消息:fn(x, ...) 中的错误:已过时的 VtV 不是正定的

    我正在尝试使用 lmer 函数创建一个最小足够模型 我的模型已配对 尺寸 尝试 状态 随机因素 as logical Mated as numeric Size as factor Attempts as factor Status 这些都
  • merge.zoo 删除时区

    的结果merge zoo与其输入的时区不同 考虑下面的例子 library zoo zoo a zoo data frame a 1 5 seq as POSIXct 2014 01 01 00 00 01 tz UTC as POSIXc
  • 如何使用 R 检测系列数据中的间隙

    我有一个设备 可以将定期 大约每 5 分钟 行插入到状态表中 每行都被视为一个状态事件并带有时间戳 我需要检测 2 个状态事件何时发生间隔超过 10 分钟 虽然我可以使用循环解决方案 但它看起来不太优雅 我正在寻找另一个答案 数据库中的表可
  • R data.table 按组创建列表列

    我有一个data table下面 我想将一个函数应用于列v2通过 分组v1 and order 结果列v3应该是下面的向量列表 如何编写这个函数 以便它为每个组的第一行返回一个 0 向量 order 1 v1 in c 1 2 对于组中的每
  • ggplot2极坐标图轴标签位置

    This is just a extension for a old question ggplot2 polar plot arrows https stackoverflow com questions 10515703 ggplot2
  • dplyr 中每组的 cumsum

    我开始享受dplyr但我陷入了一个用例 我希望能够申请cumsum数据框中的每个组与包 但我似乎无法正确处理 对于演示数据框 我生成了以下数据 set seed 123 len 10 dates as Date 2014 01 01 1 l

随机推荐

  • Google Compute 实例是否有稳定的公共 DNS 名称?

    这是一个分为两部分的问题 GCE实例有稳定的公共DNS名称吗 例如 公共 IP a b c d 的默认 DNS 名称似乎是 d c b a bc googleusercontent com 如果是 获取此信息的最佳方式是什么 这是我迄今为止
  • Websocket 握手期间发生 Rails ActionCable 错误

    我正在尝试使用 Rails 5 ActionCable 构建一个消息应用程序 但我在 JS 控制台中收到上述错误 ws localhost 3002 cable failed Error during WebSocket handshake
  • 有没有办法为 ASP.NET 中的应用程序定义时区?

    有没有一种方法可以为 ASP NET 中的应用程序定义时区 以便隐式转换从当前服务器时间读取 与当前服务器时间比较的所有时间 或者我是否需要在每次 DateTime Now 调用时放入转换语句 我不确定 ASP 的最新发展 但是这个2006
  • 不带括号的 C 函数调用

    这是一个简单的 C 程序 include
  • C# 中 float 类型的最大值

    当我这样做时 float x float MaxValue 我的结果是 3 40282347E 38 E 38是什么 如果没有这个符号 我该如何表示最大数 msdn说范围 1 5 10 45到 3 4 10 38 但这对我没有帮助 E 38
  • nvprof 输出:“没有分析内核”是什么意思,以及如何修复它

    我最近通过系统的包管理器在我的 arch Linux 机器上安装了 Cuda 并且我一直在尝试通过运行一个简单的向量加法程序来测试它是否正常工作 我只是复制粘贴代码本教程 https devblogs nvidia com even eas
  • 在 x86 汇编中划分 64 位时出现问题

    在 x86 程序集中进行划分时 我不断收到 程序收到信号 SIGFPE 算术异常 这很令人困惑 因为如果我除以 10 答案应该小于 64 位答案 mov 0x82b40000 eax mov 0x21c3677c edx mov 10000
  • 构造函数的单元测试

    我正在实验室进行单元测试 下面是我正在测试的应用程序中的一段代码 大多数单元测试都已完成 但关于下面的构造函数 我只是不知道如何测试它 例如 构造函数到底对数组元素做了什么 测试构造函数的好方法是什么 是否有一个善良的灵魂可以给我一个正确的
  • 嵌入字体在 Flex 移动 ActionBar 中不起作用

    我嵌入了一些字体 并在我的移动应用程序中使用它们 它们都正常工作 除了我尝试用于 ActionBar 的字体 他们在其他地方工作 并替代 Comic Sans MS for titleCGF 将其更改为 Comic Sans 那么为什么它不
  • C++中不同参数的重载虚函数

    我想在 C 中重载具有不同参数的虚函数 但它不起作用 virtual void Draw int nDeltaX int nDeltaY virtual void Draw int nDeltaX int nDeltaY bool m bF
  • 找不到必要的构建工具。使用 devtools 遇到错误

    我正在尝试安装 BTYDPlus 包 https github com mplatzer BTYDplus https github com mplatzer BTYDplus 当我输入这个命令时 devtools install gith
  • Excel-VBA:在 .aspx 网页上抓取数据之前的按钮和下拉列表

    我想使用 VBA 从网页获取表格 但无法直接访问它 因为我需要从一个选项卡切换到另一个选项卡 该问题依赖于网页的 aspx 端 URL 不会相应地演变 URL http www morningstar fr fr fundquickrank
  • 使用 aws cli 将日志流式传输到 elastic

    我想启用从 Cloudwatch 到 Elasticsearch 到 Amazon Elasticsearch Service 的流 我熟悉如何手动执行此操作 我正在寻找一种通过运行 aws cli 命令来实现此目的的方法 假设 Elast
  • Vagrant/Clojure/Emacs

    我想构建一个标准环境 用于使用 Emacs 探索 Clojure 有人有适合这个的食谱吗 我正在考虑一个运行 Ubuntu 风格的 Vagrant 系统 带有 NREPL 和一些有用的 EMACS 支持插件 vagrant box add
  • 批量插入现有数据:防止 JPA 在每次插入之前进行选择

    我正在开发一个 Spring Boot 应用程序 该应用程序使用 JPA Hibernate 作为持久层 我目前正在实现迁移功能 我们基本上将系统的所有现有实体转储到 XML 文件中 此导出还包括实体的 ID 我遇到的问题位于另一侧 重新导
  • 标准 C++14 委员会草案是否公开?

    截至上周六 http isocpp org blog 2013 04 trip report iso c spring 2013 meeting 今天下午在英国布里斯托尔 ISO C 标准委员会通过了 通用 lambda 动态数组 C99
  • cuda 推力中的 fp16 支持

    我无法在推力 cuda 模板库中找到有关 fp16 支持的任何信息 甚至路线图页面也没有任何相关信息 https github com thrust thrust wiki Roadmap https github com thrust t
  • R如何安装指定版本的bioconductor包?

    我想使用的当前版本的软件包在生物导体上失败 然而 旧版本曾经可以工作 我想知道如何安装特定版本的生物导体包 提前致谢 在我的例子中 该软件包称为biomaRt 失败的版本是2 34 2 而2 34 0是成功的 重要更新 今年是2022年 我
  • Jersey:@PathParam,带逗号到 List

    我想用这种模式调用我的网络服务 resource 1 2 3 在我的类中 我想将参数绑定到对象列表 Path resource public class AppWS GET Path params public Response get P
  • 如何消除使用 randomForest 运行预测的“外部函数调用中的 NA/NaN/Inf (arg 7)”

    我对此进行了广泛的研究 但没有找到解决方案 我已经清理了我的数据集 如下所示 library raster impute mean lt function x replace x is na x is nan x is infinite x