Caret交叉验证中每个折叠的测试集和训练集

3

我试图理解Caret包中的5倍交叉验证算法,但我无法找到如何为每个fold获取训练集和测试集,也无法从类似的推荐问题中找到答案。如果我想通过随机森林方法进行交叉验证,我会按照以下步骤操作:

set.seed(12)
train_control <- trainControl(method="cv", number=5,savePredictions = TRUE)
rfmodel <- train(Species~., data=iris, trControl=train_control, method="rf")
first_holdout <- subset(rfmodel$pred, Resample == "Fold1")
str(first_holdout)
'data.frame':   90 obs. of  5 variables:
$ pred    : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1     
$ obs     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 
$ rowIndex: int  2 3 9 11 25 29 35 36 41 50 ...
$ mtry    : num  2 2 2 2 2 2 2 2 2 2 ...
$ Resample: chr  "Fold1" "Fold1" "Fold1" "Fold1" ...

这90个观测值是否用作Fold1的训练集?如果是,那么这个折叠的测试集在哪里?

{btsdaf} - Sowmya S. Manian
1个回答

0
 str(rfmodel)

模型执行存储在以下形式中。下面的control存储了进入训练和相应保留样本的索引,在indexindexOut中。

 names(rfmodel)
 #  [1] "method"       "modelInfo"    "modelType"    "results"      "pred"        
 #  [6] "bestTune"     "call"         "dots"         "metric"       "control"     
 # [11] "finalModel"   "preProcess"   "trainingData" "resample"     "resampledCM" 
 # [16] "perfNames"    "maximize"     "yLimits"      "times"        "levels"      
 # [21] "terms"        "coefnames"    "xlevels" 

训练集和保留集样本索引的路径

 # Indexes of Hold Out Sets
 rfmodel$control$indexOut

 # Indexes of Train Sets for above hold outs
 rfmodel$control$index

谢谢你的回答,那么rfmodel$resample中的准确率列表是在每个折叠上对留存样本进行预测的准确率吗? - ch.elahe
是的,那是真的。这些将是保留预测的结果。 - Sowmya S. Manian
{btsdaf} - Sowmya S. Manian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接