使用插入符号的randomForest:显示不正确的mtry值

时间:2016-02-16 22:59:23

标签: r-caret



我正在使用'caret'包尝试randomForest。

当我在没有提供任何控制的情况下运行基本命令时,它显示插入符号在最终模型中使用了 mtry = 5 。即,它使用了5个预测变量。 但是,我的数据有4个预测因子。谁能解释为什么它显示mtry = 5?

这是我的代码:

  library(caret)
  data(iris)
  set.seed(100)
  model.rf = train(Petal.Length~., data=iris, method="rf")
   print(model.rf$finalModel)

   Call:
   randomForest(x = x, y = y, mtry = param$mtry) 
           Type of random forest: regression
                 Number of trees: 500
   No. of variables tried at each split: 5

      Mean of squared residuals: 0.06799251
                % Var explained: 97.8

2 个答案:

答案 0 :(得分:0)

如果您未指定网格搜索,则method =“rf”的模型信息将默认使用var_seq(p = ncol(x)),其中x是数据集iris。如果使用var_seq(ncol(iris)),它将返回2 3和5.这些值将用于mtry参数的默认网格搜索。这将返回3 rf模型,并选择具有最低rmse的模型作为最终模型。只需输入model.rf即可看到这一点。

你看到5的原因与你的种子有关。如果将种子设置为99,则所选模型的mtry为3.

当然,仅仅因为mtry为5并不意味着突然有一个额外的变量被选中。它只需要所有变量。

答案 1 :(得分:-1)

我认为mtry值表示模型中使用的森林数量。