R {caret} trainControl(index = createFolds())更改默认调整参数?

时间:2016-07-20 21:37:19

标签: r random-forest r-caret

花了很多时间尝试阅读{caret}文档(hereherehere)以及{randomForest}文档。只是不明白这里发生了什么。

当我在index = createFolds()中使用参数trainControl运行以下代码时,mtry尝试的值 2 28 54

# Specify fit parameters
set.seed(55555)
fc = trainControl(method = "cv", returnResamp = "all", verboseIter = T, 
                  index = createFolds(fct.og$cover[trn.idx]))

# randomForest Model 1
set.seed(55555)
rf.M1 = train(x = fct.og[trn.idx, -55], 
              y = fct.og[trn.idx, 55], 
              method = "rf", trControl = fc, 
              preProcess = c("nzv", "center", "scale"), 
              verbose = T)

但是,当我index = createFolds()中指定参数trainControl()时,mtry尝试的值 2 12 22

# Specify fit parameters
set.seed(55555)
fc = trainControl(method = "cv", returnResamp = "all", verboseIter = T)

# randomForest Model 1
set.seed(55555)
rf.M1 = train(x = fct.og[trn.idx, -55], 
              y = fct.og[trn.idx, 55], 
              method = "rf", trControl = fc, 
              preProcess = c("nzv", "center", "scale"), 
              verbose = T)

我默认知道train(tuneLength = 3),所以我明白为什么只使用了三个值。只是不了解导致mtry的值不同的幕后情况。我确定这是用户错误,我在文档中遗漏了一些明显的内容。

最后一个问题:使用参数trainControl(index = createFolds())代码,模型可以更快地运行很多。有原因吗?似乎trainControl(method = "cv", number = 10)的默认值与默认值createFolds(k = 10)

相同

0 个答案:

没有答案