我正在使用'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
答案 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值表示模型中使用的森林数量。