Как работают L1 и L2 регуляризация в градиентном бустинге (например, в XGBoost, LightGBM)?

«Как работают L1 и L2 регуляризация в градиентном бустинге (например, в XGBoost, LightGBM)?» — вопрос из категории Деревья и ансамбли, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В градиентном бустинге L1 и L2 регуляризация применяются непосредственно к весам листьев деревьев, составляющих ансамбль, чтобы контролировать сложность модели и бороться с переобучением. Они добавляют штрафной член к оптимизируемой функции потерь.

Механизм в контексте бустинга:

Пусть Obj(θ) = Loss(θ) + Ω(θ), где Ω(θ) — член регуляризации.

  1. L2-регуляризация (Ridge, параметр lambda / reg_lambda):

    • Штраф: Ω(θ) = λ * Σ(w²), где w — веса листьев в дереве.
    • Эффект: "Сжимает" веса листьев равномерно, приближая их к нулю, но редко обнуляя полностью. Это делает модель более гладкой и устойчивой, снижая дисперсию предсказаний.
  2. L1-регуляризация (Lasso, параметр alpha / reg_alpha):

    • Штраф: Ω(θ) = α * Σ|w|.
    • Эффект: Может обнулять веса некоторых листьев, выполняя тем самым встроенный отбор признаков (feature selection) на уровне структуры дерева. Если разделение по какому-то признаку дает малый вклад в уменьшение функции потерь с учетом штрафа L1, вес соответствующего листа может стать нулевым, и это разделение по сути игнорируется.

Практическое использование в XGBoost:

import xgboost as xgb

params = {
    'objective': 'reg:squarederror',
    'max_depth': 6,
    'learning_rate': 0.1,
    'reg_lambda': 1.5,  # Сила L2-регуляризации (по умолчанию 1)
    'reg_alpha': 0.1,   # Сила L1-регуляризации (по умолчанию 0)
    'subsample': 0.8
}

model = xgb.XGBRegressor(**params)
model.fit(X_train, y_train)

Сравнение и выбор:

  • L2 (lambda) обычно используется чаще, так как она более стабильна и лучше справляется с мультиколлинеарностью.
  • L1 (alpha) полезен, когда есть подозрение, что многие признаки избыточны или слабо информативны, и нужна более простая, интерпретируемая модель.
  • Часто их используют вместе (Elastic Net подход в линейных моделях), что также возможно в градиентном бустинге, задав оба параметра ненулевыми.