CARET. Relação entre divisão de dados e trainControl
Eu li atentamente oCARET documentação em:http://caret.r-forge.r-project.org/training.html, as vinhetas, e tudo está bem claro (os exemplos no site ajudam muito!), mas ainda estou confuso sobre a relação entre dois argumentos paratrainControl
:
method
index
e a interação entretrainControl
e as funções de divisão de dados no cursor (por ex.createDataPartition
, createResample
, createFolds
ecreateMultiFolds
)
Para enquadrar melhor minhas perguntas, deixe-me usar o seguinte exemplo da documentação:
data(BloodBrain)
set.seed(1)
tmp <- createDataPartition(logBBB,p = .8, times = 100)
trControl = trainControl(method = "LGOCV", index = tmp)
ctreeFit <- train(bbbDescr, logBBB, "ctree",trControl=trControl)
Minhas perguntas são:
Se eu usarcreateDataPartition
(que eu suponho que faz bootstrap estratificado), como no exemplo acima, e eu passar o resultado comoindex
paratrainControl
eu preciso usarLGOCV
como o método na minha chamadatrainControl
? Se eu usar outro (por exemplo,cv
) Que diferença faria? Na minha cabeça, uma vez que você conserteindex
, você está essencialmente escolhendo o tipo de validação cruzada, então não tenho certeza de qual papelmethod
joga se você usarindex
.
Qual é a diferença entrecreateDataPartition
ecreateResample
? É issocreateDataPartition
faz bootstrapping estratificado, enquantocreateResample
não faz?
3) Como posso fazerestratificado Validação cruzada de k-fold (por exemplo, 10 vezes) usando cursor? O seguinte faria isso?
tmp <- createFolds(logBBB, k=10, list=TRUE, times = 100)
trControl = trainControl(method = "cv", index = tmp)
ctreeFit <- train(bbbDescr, logBBB, "ctree",trControl=trControl)