Настройка гиперпараметра с использованием пакета MLR

Я хочу настроить гиперпараметры для случайного леса, используя пакет MLR. У меня есть несколько вопросов:

1) Как мне решить, какой из параметров мне следует настроить? Я что-то слышал о том, чтобы поддерживать num.trees как можно выше в вычислительном отношении и настраивать mtry? (Я не мог найти что-нибудь онлайн, подтверждающее это все же)

2) Каким должен быть мой диапазон тюнинга мтры? Здесь хорошее эмпирическое правило между 0 и 1/3 параметра? Если это так, как бы я интегрировал это в приведенный ниже код, если бы у меня были разные наборы данных (то есть, что бы я писал вместо lower=0 и upper = 10)?

3) И наконец, имеет ли смысл создавать ученика дважды, один раз с помощью функции makeLearner, где я устанавливаю параметр в par.vals, а затем один раз с помощью функции makeTuneWrapper? Разве это не переписывает это тогда в любом случае?

learnerRF = makeLearner("regr.ranger", par.vals = list("num.trees" = 5000)) 
parsRF = makeParamSet(
  makeIntegerParam("mtry", lower = 0 , upper = 10), 
)
tuneRF = makeTuneControlGrid() 
inner = makeResampleDesc("CV", iters = 10)
learnerRF = makeTuneWrapper(learnerRF, resampling = inner, par.set = parsRF,control = tuneRF, show.info = FALSE) 

2 ответа

Решение

Ответы на 1 и 2 одинаковы - столько, сколько вы можете себе позволить в вычислительном отношении, т.е. сделайте количество параметров и их диапазонов как можно большим. Это обеспечит максимально возможный выигрыш, учитывая наибольшее количество параметров конфигурации.

Что касается 3, вам не нужно создавать отдельного ученика, прежде чем звонить makeTuneWrapper() (и нет смысла устанавливать там параметры, которые вы позже настраиваете). Вы можете сделать оба за один шаг, как это:

learnerRF = makeTuneWrapper("regr.ranger", resampling = inner, par.set = parsRF, 
                            control = tuneRF, show.info = FALSE)

Вы можете посмотреть на эти две статьи, которые пытаются ответить на ваши вопросы:

http://jmlr.org/papers/v18/17-269.html

https://arxiv.org/abs/1804.03515

tuneRanger - пакет специально для настройки случайного леса в R.

Другие вопросы по тегам