0

我想调整随机森林的深度以避免过度拟合。我正在使用 tidymodels,这是我的模型代码。

rf_model <- rand_forest(mtry = tune(), 
                        trees = tune(),
                        max.depth = tune()) %>%
  set_mode("classification") %>%
  set_engine("ranger", importance = "impurity")

它给了我一个错误:

Error in rand_forest(mtry = tune(), trees = tune(), max.depth = tune()): unused argument (max.depth = tune())

我还尝试了 dials 文档中的 tree_depth = tune() ,这给出了同样的错误。

但是当我查看 ranger 文档时,它具有 max.depth 作为参数。想知道如何使用 tidymodels tune 调整深度。

谢谢

4

1 回答 1

3

没有max.depth参数,因此就像在 ranger 中一样(请参阅What is equivalent of "max depth" in the 'R' package "ranger"?用于解释)可以使用最小数量的节点来代替。这有效:

rf_model <- rand_forest(mtry = tune(), trees = tune(), min_n = tune()) %>%
    set_mode("classification") %>% set_engine("ranger", importance = "impurity")

这会产生一个有效的rf_model

> rf_model
Random Forest Model Specification (classification)

Main Arguments:
  mtry = tune()
  trees = tune()
  min_n = tune()

Engine-Specific Arguments:
  importance = impurity

Computational engine: ranger 
于 2020-06-13T02:10:47.790 回答