如何在10个交叉验证中获取数据集的反向索引?

时间:2018-06-20 18:21:34

标签: r cross-validation fold

我在db中有一个数据集,其中包含行列表, 我想使用平衡的数据进行十次交叉验证。 所以我用了这个功能:

cvIndex <- createFolds(factor(df$BS), folds, returnTrain = T)

它返回十个平衡折痕的索引进行训练。

for i in n seq_along(cvIndex)) { trainIndex <- cvIndex[[i]] testIndex <- ???

我想给testIndex缺少用于训练的索引。

2 个答案:

答案 0 :(得分:0)

我建议使用“插入符”库中的trainControl函数来实现k倍交叉验证。例如,使用以下命令,您可以将10倍的corss-validation设置为训练和测试方法。

control <-trainControl(method =“ cv”,number = 10)

答案 1 :(得分:0)

我解决了这个问题,我真的建议在平衡的10次交叉验证中使用该功能,

all_index<-c(1:nrow(df)) testIndex<-setdiff(all_index,trainIndex)

那你就用

trainset <- df[trainIndex, ] # Set the training set testset <- df[testIndex, ] # Set the validation set