Как параметр tunelength работает в карете - PullRequest
0 голосов
/ 28 мая 2019

Я использую следующий код для реализации эластичной сети, используя R

model <- train(
Sales ~., data = train_data, method = "glmnet",
trControl = trainControl("cv", number = 10),
tuneLength = 10
)

Я запутался в параметре tunelength.В Cran я вижу, что

Чтобы изменить возможные значения параметра настройки, можно использовать аргументы tuneLength или tuneGrid.Функция train может генерировать набор возможных значений параметров, а аргумент tuneLength контролирует, сколько из них будет оценено.В случае PLS функция использует последовательность целых чисел от 1 до tuneLength.Если мы хотим вычислить все целые числа от 1 до 15, установка tuneLength = 15 позволит достичь этого

Но функция поезда берет зависимую и независимую переменную из моих данных, тогда как она использует параметр tuneLength?Не могли бы вы помочь мне понять?

1 Ответ

1 голос
/ 28 мая 2019

В 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)


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...