首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中grid_latin_hypercube()模型的randomForest误差

R中grid_latin_hypercube()模型的randomForest误差
EN

Stack Overflow用户
提问于 2022-10-29 23:23:46
回答 1查看 56关注 0票数 0

我是数据科学领域的新手,我想找出我一直面临以下错误的原因:

代码语言:javascript
复制
Error in grid_latin_hypercube(): these arguments contain unknowns: `mtry`. See the finalize() function. 

我的计算例程结构如下:

代码语言:javascript
复制
datatrain <- training(data)
rf_mod <- rand_forest(
trees = tune(),
min_n = tune(),
mtry = tune()
) %>% set_engine("randomForest") %>% set_mode("regression")

tuneargs <- rf_mod 

reci <- recipe(Response ~.,datatrain)

workf <- workflow() %>%
add_model(tuneargs) %>%
add_recipe(reci)

rand_grid <- grid_latin_hypercube(trees(),
                                  min_n(),
                                  mtry(),
                                  size = 100)

在此之后,将出现上述错误。

我认为这个错误可能与我在考虑randomForest算法和使用grid_latin_hypercube这一事实有关。因此,参数规格可能不一致。

在这种情况下,我怎么解决呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-01 07:33:15

在随机林中,mtry定义随机选择的预测器的数量。

由于您没有指定应该在哪个培训数据上运行mtry(),因此范围是未定义的:

代码语言:javascript
复制
library(dials)
library(dplyr)

mtry() %>% range_get()
$lower
[1] 1

$upper
unknown()

这是错误消息中提到的未知信息。

为了避免错误,您可以按照建议使用finalize来告诉mtry要使用哪些预测器:

代码语言:javascript
复制
rand_grid <- grid_latin_hypercube(trees(),
                                  min_n(),
                                  finalize(mtry(),select(datatrain,-Response)),
                                  size = 100)

## A tibble: 100 × 3
#trees min_n  mtry
#<int> <int> <int>
#1  1721    15    11
#2   730    12     4
#3  1081     3     1
#4   184    24     8
#5   222     2     3
#6  1584    31     6
#7   400    15     8
#8  1049    14     7
#9  1786     8     4
#10  1378    11    10
## … with 90 more rows
## ℹ Use `print(n = ...)` to see more rows
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74249544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档