使用Caret进行5倍交叉验证的随机森林属性

时间:2018-01-04 20:34:08

标签: r random-forest cross-validation r-caret

考虑到Caret with Random Forest方法中的5倍交叉验证,每个折叠中构建的随机森林的属性是什么?例如,在虹膜数据集中:

train_control <- trainControl(method="cv", number=5,savePredictions = TRUE) 
output <- train(Species~., data=iris, trControl=train_control, method="rf")
output$results$mtry
[1] 2 3 4

在交叉验证中建立3个mtry值,3个不同的森林是真的吗?我如何理解每个折叠森林的细节,如mtry?

1 个答案:

答案 0 :(得分:2)

默认情况下,插入符号列功能将执行网格搜索以获得最佳mtry。如果没有提供网格搜索的长度,它将搜索长度为3。

可以从以下网址看到这些默认值:

?trainControl
?train

tuneLength = ifelse(trControl$method == "none", 1, 3))
search = "grid"

当指定网格搜索(默认)和长度3(默认)时,使用插入符函数var_seq找到mtry参数。这可以从rf train method看出。此功能具有不同的行为,具体取决于功能的数量。有少于500个功能,它选择mtry为:

floor(seq(2, to = p, length = len))

其中p是要素的数量。虹膜数据有4个特征,因此len 3个可用的mtry值分别为2,3和4。

因此,这三个mtry值都以5倍CV进行测试。所以基本上制作了15个射频模型。每个mtry 5个。最后,根据CV结果选择最佳mtry,并在整个列车数据上构建最终模型 - 第16个模型。