首页 文章

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

提问于
浏览
1

考虑到使用随机森林方法的Caret中的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

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

1 回答

  • 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个模型 .

相关问题