2016-03-10 29 views
5

Esiste un modo per eseguire la convalida incrociata a croce quando si utilizza la funzione treno per adattare un modello a un grande set di dati sbilanciati? So che la convalida incrociata è semplice ma le mie categorie sono molto sbilanciate. Ho visto discussioni su questo argomento ma nessuna vera risposta definitiva.Pacchetto Caret: convalida incrociata stratificata nella funzione treno

Grazie in anticipo.

+0

Sto anche cercando la risposta ... Per impostazione predefinita, la funzione createFolds() crea pieghe stratificate. Ma non sono sicuro della funzione del treno quando si utilizza method = "cv" in trainControl. – jbrettas

risposta

7

C'è un parametro chiamato "indice" che può consentire all'utente di specificare l'indice per eseguire la convalida incrociata.

folds <- 4 
cvIndex <- createFolds(factor(training$Y), folds, returnTrain = T) 
tc <- trainControl(index = cvIndex, 
       method = 'cv', 
       number = folds) 

rfFit <- train(Y ~ ., data = training, 
      method = "rf", 
      trControl = tc, 
      maximize = TRUE, 
      verbose = FALSE, ntree = 1000) 
Problemi correlati