插入符使用插入符训练对象返回的预测与使用提取的最终模型返回的预测不同

2024-04-12

在拟合模型时我更喜欢使用插入符号,因为它的相对速度和预处理功能。然而,我对它如何做出预测有点困惑。当比较直接从训练对象做出的预测和从提取的最终模型做出的预测时,我看到了非常不同的数字。来自火车对象的预测似乎更准确。

library(caret)
library(ranger)

x1 <- rnorm(100)
x2 <- rbeta(100, 1, 1)

y <- 2*x1 + x2 + 5*x1*x2

data <- data.frame(x1, x2, y)
fitRanger <- train(y ~ x1 + x2, data = data,
                   method = 'ranger', 
                   tuneLength = 1,
                   preProcess = c('knnImpute', 'center', 'scale'))

predict.data <- data.frame(x1 = rnorm(10), x2 = rbeta(10, 1, 1))
prediction1 <- predict(fitRanger, newdata = predict.data)
prediction2 <- predict(fitRanger$finalModel, data = predict.data)$prediction

results <- data.frame(prediction1, prediction2)
results

我确信这与我如何预处理火车对象中的数据有关,但即使我预处理测试数据并使用 Ranger 模型进行预测,值也是不同的

predict.data.processed <- predict.data %>% 
                             preProcess(method = c('knnImpute', 
                                                   'center', 
                                                   'scale')) %>% .$data

results3 <- predict(fitRanger$finalModel, data = predict.data.processed)$prediction

results <- cbind(results, results3)
results

我想从游侠模型中的每棵树中提取预测,但在插入符中无法做到这一点。有什么想法吗?


为了从最终模型中获得与插入符号相同的预测train您应该以相同的方式预处理数据。使用你的例子set.seed(1):

插入符预测:

prediction1 <- predict(fitRanger,
                       newdata = predict.data)

Ranger 对最终模型进行预测。在 Predict.data 上使用插入符预处理

prediction2 <- predict(fitRanger$finalModel,
                       data = predict(fitRanger$preProcess,
                                      predict.data))$prediction

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

插入符使用插入符训练对象返回的预测与使用提取的最终模型返回的预测不同 的相关文章

  • geom_密度匹配geom_histogram binwitdh

    我想在 ggplot2 中的分布条形图上添加一条线以显示平均分布 但遇到了麻烦 像这样的 ggplot 调用 ggplot x aes date received geom histogram aes y count binwidth 30
  • R:邻接表到邻接矩阵

    Bonjour 我想将邻接列表 3 列 转换为邻接矩阵 在这个论坛中 我找到了多个有关如何将边列表转换为邻接矩阵的示例 我成功地为两列列表做到了这一点 我已经尝试了在网上可以找到的所有解决方案 但似乎我错过了一小步 我尝试过的 我的变量是用
  • 使 matplotlib 图形默认看起来像 R?

    Is there a way to make matplotlib behave identically to R or almost like R in terms of plotting defaults For example R t
  • r - 从我的应用程序下载shinyapps代码

    我正在尝试从shinyapps io 在另一台电脑上下载我的shiny 应用程序代码 我按照这个例子 https support rstudio com hc en us articles 204536588 从 shinyapps io下
  • 如何转置 R markdown 文档中的表格?

    假设我打印一个名为summary table的数据框 如下所示 summary table data frame a c 1 2 3 b c 11 12 13 c c 21 22 23 d c 31 32 33 e c 41 42 43 f
  • 为格子中的每个面板添加不同的独特标签

    很清楚如何在格子中标记面板 https stackoverflow com questions 8508269 how to label panels in lattice using panel text or ltext论据 但是 如果
  • 如何将环境变量传递给shinyapps

    我想将安全参数传递给shinyapps io部署 以便我的应用程序可以通过以下方式获取它们 Sys getenv PASSWORD X 我找不到任何相关内容deployApp函数在rsconnect包裹 您可以使用Renviron网站 or
  • 如何使用 grid.arrange 移动图例位置

    我试图在一页中排列 4 个图 将图例放在底部中心 我用它来获取其中一个图的图例 因为它们对于四个图来说是相同的 get legend lt function myggplot tmp lt ggplot gtable ggplot buil
  • 如何在r中进行左连接[重复]

    这个问题在这里已经有答案了 我有两个数据集一和二 数据集一 a b c 111 a 1 112 b 2 113 c 3 114 d 4 115 e 5 数据集二 e d g 222 ss 11 111 ff 22 113 ww 33 114
  • 如何正确调整 R 中 ggplot 的各个方面的大小,包括图例?

    我在 ggplot2 中制作散点图 然后使用 ggsave 导出特定宽度和高度的 PDF 但是 图形图例永远不会使用 ggsave 正确调整大小 其边框不会留在绘图内 是否有另一种方法可以同时调整 ggplot 所有部分的大小以便于导出 我
  • 提取所有列组中共有的元素

    我有一个 R 数据集 x 如下 ID Month 1 1 Jan 2 3 Jan 3 4 Jan 4 6 Jan 5 6 Jan 6 9 Jan 7 2 Feb 8 4 Feb 9 6 Feb 10 8 Feb 11 9 Feb 12 10
  • R 中的输出,避免写“[1]”

    I use print从 R 中的函数输出 例如 print blah blah blah 这输出 1 blah blah blah 到控制台 我怎样才能避免 1 和引号 Use cat Your string type cat查看帮助页面
  • 读取多个 CSV 文件,并在文件开头跳过不同行数

    我必须阅读大约 300 个单独的 CSV 我已经成功使用循环和结构化 CSV 名称来自动化该过程 然而 每个 CSV 在开头都有 14 17 行垃圾 并且随机变化 因此在 read table 命令中硬编码 skip 参数将不起作用 每个
  • RPostgreSQL 无法关闭连接

    我有一个闪亮的应用程序 使用它连接到数据库RPostgreSQL 在应用程序结束时 连接关闭 驱动程序应该被卸载 但我收到错误 警告我连接未关闭 代码看起来像这样 in the app R file but not in the serve
  • 通过 rpy 将 SPSS 文件(.sav)导入 pandas 时如何保留标签?

    我正在寻找使用 SPSS 文件 sav pandas 在没有 SPSS 程序的情况下 典型文件转换为 csv 后的样子如下 在调查前两行的含义时 我不知道 SPSS 似乎第一行包含Labels 而第二行包含VarNames 当我将文件带入
  • R(或替代方案?)中的高(或非常高)阶多项式回归

    我想对 R 中的一组数据进行 非常 高阶回归拟合 但是poly 函数的阶数极限为 25 对于此应用程序 我需要的订单范围为 100 到 120 model lt lm noisy y poly q 50 Error in poly q 50
  • 矩阵中两个字符串的最大 nchar

    我想找到更好的方法来找到我正在相互比较的两个字符串的更大的 nchar 假设我有字符串句子匹配data frame 和我需要创建一个 max nchar string1 nchar string2 矩阵 但没有 for 循环 这是非常慢的方
  • 递归累积函数

    我需要在 R 中编写一个累积求和函数 但我一直碰壁 该函数具有以下结构 a x1 a x2 a 2 x1 a x3 a 2 x2 a 3 x1 a x4 a 2 x3 a 3 x2 a 4 x1 等等 cumsum 似乎不适用于此类功能 有
  • 使用 sapply 的列表和矩阵

    我有一个也许是基本的问题 我在网上搜索过 我在读取文件时遇到问题 尽管如此 我还是按照 Konrad的建议设法读取了我的文件 我很欣赏这一点 How to get R to read in files from multiple subdi
  • 使用cowplot包的多重图的中心X轴标签

    我有一个多图图形 由 2x2 配置中的 4 个图组成 我使用 cowplot 包和plot grid函数使用下面的代码排列了绘图 plot grid p1 p2 p3 p4 align vh vjust 1 scale 1 其中 p1 p4

随机推荐