插入符号给出的 mtry 调整高于预测变量的数量

机器算法验证 r 特征选择 随机森林 插入符号
2022-04-06 10:59:22

根据这个讨论,似乎包的train函数caret返回的mtry参数randomForest可能高于预测变量的数量,因为它将X数据扩展为具有虚拟变量的矩阵并考虑该矩阵的列。然而,mtry参数的最高值ncol(X)在函数中是无效的randomForest因此我在这里迷路了:在这种情况下我们应该怎么做?

1个回答

尝试使用train矩阵参数,即

tr1 <- train(Sepal.Length ~ ., data = iris) # gives mtry = 5, not allowed
# but change to
tr2 <- train(iris[, -1], iris[, 1]) # gives mtry = 3

我认为train创建模型矩阵,然后randomForest在使用公式参数时将其传递给,因此将该矩阵的每一列视为一个单独的变量。使用矩阵参数时似乎不会发生这种情况。

我并不完全了解它的内部运作,train但从我所读到的情况来看,情况似乎如此。

希望这可以帮助!