[决策树]L1和L2正则项

206 阅读3分钟

在梯度提升树(如XGBoost、LightGBM)中,L1和L2正则项是控制模型复杂度、防止过拟合的关键工具。

它们的核心作用与线性模型类似,但在树模型中的具体实现和影响有所不同:


1. L1和L2正则项在梯度提升树中的定义

  • L1正则项(L1 Regularization)
    对叶子节点的权重(即叶子节点的预测值)的绝对值求和,乘以系数λ₁。
    公式Ω_L1 = λ₁ * Σ|w_j|(w_j为叶子节点的权重)
  • L2正则项(L2 Regularization)
    对叶子节点的权重的平方求和,乘以系数λ₂。
    公式Ω_L2 = 0.5 * λ₂ * Σ(w_j²)

在目标函数中,正则项与损失函数相加,形成优化目标:
目标函数 = 损失函数(如MSE) + Ω_L1 + Ω_L2


2. L1和L2正则项的作用

(1) L1正则项的特性
  • 稀疏性
    L1会倾向于将部分叶子节点的权重压缩到零,相当于“隐式剪枝”,减少树的有效复杂度。

    • 效果:某些叶子节点的预测值变为零,模型忽略这些路径的贡献。
    • 类比:类似于线性模型中Lasso回归的特征选择,但在树模型中是对叶子节点权重的稀疏化。
  • 抗噪声
    对异常值的敏感度较低,因为权重绝对值较大的节点会被惩罚。

(2) L2正则项的特性
  • 平滑性
    L2会限制叶子节点的权重大小,使其趋向于较小的值,避免某些节点对预测结果影响过大。

    • 效果:模型输出更平滑,防止对训练数据的过拟合。
    • 类比:类似于线性模型中Ridge回归的系数收缩,使模型更稳定。
  • 抗过拟合
    通过惩罚大权重,减少模型对训练数据中噪声的敏感度。


3. 直观理解:L1和L2如何影响树的生成

  • 分裂增益计算
    在树的生成过程中,节点分裂的依据是增益(Gain)
    增益 = 分裂后的损失减少量 - 正则化惩罚

    • L1/L2会增加分裂的成本,若增益不足,则放弃分裂,从而间接控制树的复杂度。
  • 叶子权重更新
    在梯度下降更新叶子权重时,正则项的导数会参与权重调整:

    • L1的导数为±λ₁(根据权重符号),导致权重向零方向收缩。
    • L2的导数为λ₂ * w_j,权重按比例缩小。

4. 实际应用中的选择建议

正则项适用场景参数示例(XGBoost)
L1需要模型稀疏性(减少有效叶子数)或特征重要性筛选reg_alpha (λ₁)
L2需要平滑输出、防止极端权重值reg_lambda (λ₂)
L1+L2平衡稀疏性与稳定性(类似弹性网络)同时调节reg_alphareg_lambda

5. 示例说明

假设某叶子节点的权重为5:

  • L1惩罚:直接减少5 * λ₁,若λ₁较大,可能将权重压到0。
  • L2惩罚:减少5² * λ₂,权重会按比例缩小(如变为4.9)。

在训练中,L1可能让某些叶子消失(权重为0),而L2让所有叶子权重均匀减小。


总结

  • L1正则项:通过稀疏化叶子权重简化模型,适合特征重要性分析和抗噪声。
  • L2正则项:通过平滑权重防止过拟合,适合追求稳定性的场景。
  • 联合使用:结合两者的优点,平衡模型的复杂度和泛化能力。

在梯度提升树中,L1/L2正则化是控制模型复杂度的“方向盘”,通过调整λ₁和λ₂,可以精细调节模型在偏差-方差之间的权衡。