Я пытаюсь понять алгоритм XGBoost и у меня есть несколько вопросов по нему.
Я читал разные блоги, но, похоже, все рассказывают разные истории. Ниже приведен фрагмент кода, который я использую (только для справки).
param <- list( objective = 'reg:linear',
eta = 0.01,
max_depth = 7,
subsample = 0.7,
colsample_bytree = 0.7,
min_child_weight = 5
)
Ниже приведены 4 вопроса, которые у меня есть:
1) Похоже, что XGBoost использует Gradient приличный, чтобы минимизировать функцию стоимости путем изменения коэффициентов. Я понимаю, что это может быть сделано для линейной модели, которая использует линейную регрессию.
Однако, для модели gbtree, как XGboost может применять градиент приличный, так как в модели на основе дерева нет коэффициентов для изменения модели. Или есть?
2) Аналогично, модель gbtree использует параметры лямбда для регуляризации L2 и альфа для регуляризации L1. Я понимаю, что регуляризация накладывает некоторые ограничения на коэффициенты, но опять же модель gbtree не имеет коэффициентов. Так, как это может применить ограничения к этому?
3) Какова задача целевой функции. Например, рег: линейный. Из того, что я понимаю, назначение целевой функции только говорит модели, какую метрику оценки использовать. Но тогда для этого есть отдельный параметр eval_metric. Так зачем нам объективная функция?
4) Что такое min_child_weight в простых терминах? Я думал, что это просто минимум нет. наблюдений в листовом узле. Но я думаю, что это как-то связано с гессианскими метриками и т. Д., Которые я не очень хорошо понимаю.
Следовательно, я был бы очень признателен, если бы кто-нибудь мог пролить немного света на эти вопросы в простых и понятных терминах?