2016-08-24 2 views
0

La façon de créer des plis stratifiés pour cv en caret est comme ceComment créer des plis stratifiés pour la répétitioncv dans le caret?

library(caret) 
library(data.table) 
train_dat <- data.table(group = c(rep("group1",10), rep("group2",5)), x1 = rnorm(15), x2 = rnorm(15), label = factor(c(rep("treatment",15), rep("control",15)))) 

folds <- createFolds(train_dat[, group], k = 5) 

fitCtrl <- trainControl(method = "cv", index = folds, classProbs = T, summaryFunction = twoClassSummary) 
train(label~., data = train_dat[, !c("group"), with = F], trControl = fitCtrl, method = "xgbTree", metric = "ROC") 

Pour équilibrer groupe1 et groupe2, la création d'indices de pliage est basée sur la variable « groupe ».

Cependant, est-il possible de créer des plis pour repeatcv dans le caret? Donc, je peux avoir une répartition équilibrée pour repeatcv. Dois-je combiner plusieurs createFolds et lancer trainControl?

trControl = trainControl(method = "cv", index = many_repeated_folds) 

Merci!

+2

Je vote pour fermer cette question hors sujet, car il est sur la façon d'utiliser R sans exemple reproductible. – gung

+0

Merci pour le commentaire! @gung – user2149631

+1

J'ai ajouté un exemple reproductible. Qu'est-ce que tu penses? @gung – user2149631

Répondre

0

createMultiFolds est probablement ce qui vous intéresse.

+0

salut, je ne comprends pas comment cette fonction gère le "stratifié" – agenis