Что делает шаг обрезки XGBoost? - PullRequest
0 голосов
/ 05 октября 2018

Когда я использую XGBoost для подгонки к модели, обычно отображается список сообщений, таких как "updater_prune.cc:74: конец сокращения дерева, 1 корень, 6 дополнительных узлов, 0 сокращенных узлов, max_depth = 5".Интересно, как XGBoost выполняет обрезку деревьев?Я не могу найти описание их процесса обрезки в их статье .

Примечание: я действительно понимаю процесс обрезки дерева решений, например, перед обрезкой и после обрезки.Здесь меня интересует фактический процесс обрезки XGBoost.Обычно для обрезки требуются данные проверки, но XGBoost выполняет обрезку, даже если я не даю ему никаких данных проверки.

1 Ответ

0 голосов
/ 05 октября 2018

XGBoost сначала увеличивает все деревья до max_depth.

Это позволяет быстро обучаться, так как вам не нужно оценивать все параметры регуляризации на каждом узле.

После того, как каждое дерево выросло до max_depth, вы идете от низа дерева (рекурсивно до самого верха) и определяете, является ли split и дочерние элементы действительны на основе выбранных вами гиперпараметров.Если разделение или узлы недопустимы, они удаляются из дерева.

В model dump модели XGBoost вы можете наблюдать, что фактическая глубина будет меньше, чем max_depth во время тренировки если обрезка произошла.

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

...