CARET. Связь между разделением данных и trainControl
Я внимательно прочиталCARET документация по адресу:http://caret.r-forge.r-project.org/training.html, виньетки, и все довольно ясно (примеры на веб-сайте очень помогают!), но я все еще не уверен в связи между двумя аргументамиtrainControl
:
method
index
и взаимодействие междуtrainControl
и функции разделения данных в карете (например,createDataPartition
, createResample
, createFolds
а такжеcreateMultiFolds
,)
Чтобы лучше сформулировать мои вопросы, позвольте мне использовать следующий пример из документации:
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)
Мои вопросы:
Если я используюcreateDataPartition
(что я предполагаю, что делает стратифицированную загрузку), как в приведенном выше примере, и я передаю результат какindex
вtrainControl
мне нужно использоватьLGOCV
как метод в моем звонкеtrainControl
? Если я использую другой (например,cv
) Какая разница? В моей голове, как только вы исправитеindex
, вы по сути выбираете тип перекрестной проверки, поэтому я не уверен, какую рольmethod
играет, если вы используетеindex
.
В чем разница междуcreateDataPartition
а такжеcreateResample
? Это оноcreateDataPartition
делает стратифицированную загрузку, в то время какcreateResample
не делает?
3) Как я могу сделатьслоистый K-кратная (например, 10-кратная) перекрестная проверка с использованием каретки? Будет ли следующее сделать это?
tmp <- createFolds(logBBB, k=10, list=TRUE, times = 100)
trControl = trainControl(method = "cv", index = tmp)
ctreeFit <- train(bbbDescr, logBBB, "ctree",trControl=trControl)