Объяснение min_child_weight в алгоритме xgboost

23

Определение из min_child_weight параметра в xgboost задается как:

минимальная сумма веса экземпляра (гессиана), необходимая ребенку. Если в результате шага разбиения дерева получится листовой узел с суммой веса экземпляра меньше, чем min_child_weight, то процесс сборки прекратит дальнейшее разбиение. В режиме линейной регрессии это просто соответствует минимальному количеству экземпляров, которое должно быть в каждом узле. Чем больше, тем более консервативным будет алгоритм.

Я прочитал довольно много вещей о xgboost, включая оригинальную статью (см. Формулу 8 и ту, которая приведена сразу после уравнения 9), этот вопрос и большинство вопросов, связанных с xgboost, которые появляются на первых нескольких страницах поиска Google. ;)

По сути, я все еще не рад тому, почему мы накладываем ограничение на сумму гессиана? Моя единственная мысль в минуте из оригинальной статьи состоит в том, что она относится к разделу взвешенного квантильного эскиза (и переформулировке по уравнению 3 взвешенного квадрата потерь), в котором чася является «весом» каждого экземпляра.

Еще один вопрос связан с тем, почему это просто число экземпляров в режиме линейной регрессии? Я думаю, это связано со второй производной уравнения суммы квадратов?

maw501
источник

Ответы:

42

Для регрессии потеря каждой точки в узле равна

12(Yя-Yя^)2

Yя^1

Для бинарной логистической регрессии гессиан для каждой точки в узле будет содержать такие термины, как

σ(Yя^)(1-σ(Yя^))

σYя^σ(Yя^)

Гессиан - нормальная вещь, которую нужно использовать для регуляризации и ограничения глубины дерева. Для регрессии легко увидеть, как вы могли бы переобучиться, если всегда разбиваетесь на узлы, скажем, всего с одним наблюдением. Точно так же для классификации легко увидеть, как вы могли бы переобучиться, если будете настаивать на разделении до тех пор, пока каждый узел не станет чистым.

hahdawg
источник
Спасибо за ответ, я не могу проголосовать за вас из-за низкой репутации.
maw501
1
Привет @ maw501: нет проблем, я могу. Хороший ответ Hahdawg!
Catbuilts
Так что в случае сильно несбалансированных данных, каков ваш предполагаемый диапазон для min_child_weight?
Махди Багбанзаде
Когда в несбалансированном наборе данных, min_child_weight должен также включать веса? Спасибо! @hahdawg
HanaKaze