Каковы некоторые полезные рекомендации для параметров GBM?

31

Каковы некоторые полезные рекомендации для тестирования параметров (например, глубина взаимодействия, minchild, частота выборки и т. Д.) С использованием GBM?

Допустим, у меня 70-100 функций, население 200 000, и я собираюсь проверить глубину взаимодействия 3 и 4. Очевидно, мне нужно провести некоторое тестирование, чтобы увидеть, какая комбинация параметров лучше всего подходит для выборки. Любые предложения о том, как подойти к этому проекту теста?

Рам Ахлувалия
источник

Ответы:

34

Пакет каретки может помочь вам оптимизировать выбор параметров для вашей проблемы. Виньетка caretTrain показывает, как настроить параметры gbm с помощью 10-кратной повторной перекрестной проверки - доступны другие подходы к оптимизации, все они могут выполняться параллельно с использованием пакета foreach. Используйте, vignette("caretTrain", package="caret")чтобы прочитать документ.

Настройки пакетов поддерживает shrinkage, n.treesи interaction.depthпараметры модели GBM, хотя вы можете добавить свои собственные.

Для эвристики это мой первоначальный подход:

shrinkage: Так мало, как у вас есть время (в руководстве gbm об этом больше, но в целом вы можете ошибиться с меньшим значением). Ваш набор данных небольшой, поэтому я бы, вероятно, начал с 1e-3

n.treesЯ обычно выращиваю исходную модель, добавляя все больше и больше деревьев, пока не gbm.perfскажу, что мне достаточно (на самом деле, как правило, в 1,2 раза больше этого значения), а затем использую это как руководство для дальнейшего анализа.

interaction.depthУ вас уже есть представление об этом. Попробуйте также меньшие значения. Максимальное значение - пол (sqrt (NCOL (данные)).

n.minobsinnodeЯ считаю очень важным настроить эту переменную. Вы не хотите, чтобы он был настолько маленьким, чтобы алгоритм нашел слишком много ложных признаков.

Аллан Энгельгардт
источник