Сколько именно семян мне нужно для тренировки xgboost? - PullRequest
0 голосов
/ 04 апреля 2019

Я тренирую xgboost, используя CARET, и мне нужно делать повторяющиеся результаты.

Итак, я рассчитываю вот так - я использую repeatcv (5 сгибов, 3 повторения), здесь 15 разбиений + 1 (создание окончательной модели), поэтому 16 разбиений.

Я настраиваю nrounds (500, 600, 700, 800), eta (0,05, 0,1) и max_depth (5,7,9).Для каждого разделения и комбинации гиперпараметров мне нужно одно семя, поэтому 15 * 4 (уникальные nrounds) * 2 (уникальные eta) * 3 (уникальные max_depth), плюс 3 семени для обучения финальной модели.

Это верно?стратегия?

set.seed(123)
seeds <- vector(mode = "list", length = 15)
for(i in 1:15) seeds[[i]] <- sample.int(24)
seeds[[16]] <- sample.int(1000, 3)

tunegrid <- tune_grid <- expand.grid(
  nrounds = seq(from = 500, to = 800, by = 100),
  eta = c(0.05, 0.1),
  max_depth = c(5,7,9),
  gamma = 0,
  colsample_bytree = 0.6,
  min_child_weight = 5,
  subsample = 0.6
)
control <- trainControl(method='repeatedcv', 
                        number=5,
                        seeds = seeds,
                        repeats=3,
                        search = 'random')

set.seed(101)
xgb_model <- train(target ~ .,
                  data = train_val,
                  method = 'xgbTree',
                  metric = 'MAE',
                  tuneGrid = tunegrid, 
                  trControl = control)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...