В caret
функция train()
имеет ряд аргументов, помогающих выбрать «оптимальные» параметры настройки для выбранной вами модели.
Настройка модели подробно описана в документации к пакету здесь .
Пользователи могут настроить процесс настройки, указав сетку возможных значений параметров, которые модель будет использовать при обучении модели.
Для некоторых моделей использование tuneLength
является альтернативой указанию tuneGird
.
Например, одним из методов поиска «оптимальных» параметров модели является использование случайного выбора. В этом случае аргумент tuneLength
используется для управления количеством комбинаций, сгенерированных этим поиском случайных параметров настройки.
Для использования случайного поиска в trainControl доступна другая опция, называемая поиском. Возможными значениями этого аргумента являются «grid» и «random». Встроенные в каретку модели содержат код для генерации случайных комбинаций параметров настройки. Общее количество уникальных комбинаций задается опцией tuneLength для тренировки.
Более подробно здесь:
http://topepo.github.io/caret/random-hyperparameter-search.html
Важно проверить модель, которую вы используете в функции поезда, и посмотреть, какие параметры настройки используются для этой модели. Тогда будет легче понять, как правильно настроить процесс подгонки модели.
Для вашего примера использования method = 'glmnet'
приведено сравнение с использованием tuneGrid
и tuneLength
(взято из пакетных тестов ):
cctrl1 <- trainControl(method = "cv", number = 3, returnResamp = "all",
classProbs = TRUE, summaryFunction = twoClassSummary)
test_class_cv_model <- train(trainX, trainY,
method = "glmnet",
trControl = cctrl1,
metric = "ROC",
preProc = c("center", "scale"),
tuneGrid = expand.grid(.alpha = seq(.05, 1, length = 15),
.lambda = c((1:5)/10)))
cctrlR <- trainControl(method = "cv", number = 3, returnResamp = "all", search = "random")
test_class_rand <- train(trainX, trainY,
method = "glmnet",
trControl = cctrlR,
tuneLength = 4)