首页 > 解决方案 > 游侠错误 - 用户中断或内部错误

问题描述

我真的需要帮助。我正在做我的论文,无法让这个代码工作......

我正在尝试在 R Markdown 中创建一个带有游侠的随机森林模型,但出现此错误:

错误:mtry 不能大于数据中的变量数。Ranger 现在将退出。游侠错误(公式 = Lift ~ ., data = train_cheese, num.trees = 500, : 用户中断或内部错误。

在此处输入图像描述

标签: r

解决方案


可能您的网格没有以正确的方式组织。构建调整网格的最佳方法是 via expand.grid。此函数从提供的向量的所有组合创建一个数据框。使用数据集查看此示例iris

library(ranger)
data("iris")
grid <- expand.grid(mtry=2:4,min.node.size=seq(0.1,1,0.2),sample.size=seq(0.1,1,0.2))
for (i in 1:nrow(grid)) {
  model <- ranger(Species~.,
                  data=iris,
                  num.trees = 100,
                  mtry=grid$mtry[i],
                  min.node.size = grid$min.node.size[i],
                  sample.fraction =grid$sample.size[i],
                  seed=123,
                  write.forest = T)
  
  grid$OOB[i] <- sqrt(model$prediction.error)
}

这给了我这个输出:

head(grid)

  mtry min.node.size sample.size       OOB
1    2           0.1         0.1 0.2000000
2    3           0.1         0.1 0.2309401
3    4           0.1         0.1 0.2160247
4    2           0.3         0.1 0.2000000
5    3           0.3         0.1 0.2309401
6    4           0.3         0.1 0.2160247

推荐阅读