机器学习笔记——Boosting中常用算法(GBDT、XGBoost、LightGBM)迭代路径

331 阅读1分钟

大家好,这里是好评笔记,本文为试读,查看全文请移步公主号:Goodnote。本文主要阐述Boosting中常用算法(GBDT、XGBoost、LightGBM)的迭代路径。

9.png


@[toc]


XGBoost 相对 GBDT 的改进

GBDT(Gradient Boosting Decision Tree,梯度提升决策树) 是一种集成学习算法。GBDT 使用梯度提升(Gradient Boosting)的思想,每一棵决策树都是基于前一轮预测的残差(即误差)来训练的,从而逐步逼近真实值。

XGBoost 相对传统 GBDT 在原理和实现上进行了多项改进,使得它在计算效率、模型精度、内存管理和并行性等方面有显著提升。以下是 XGBoost 相对 GBDT 的关键改进:

改进项具体描述优势
正则化项引入 (L1L_1) 和 (L2L_2) 正则化控制叶节点权重防止过拟合,提高泛化能力
二阶导数信息使用梯度和 Hessian 信息进行优化提高收敛速度和精度
列采样和行采样每棵树采样特征和样本降低过拟合风险,提高泛化性
并行化处理特征分片和直方分裂,支持 GPU 加速提升训练速度
缺失值处理自动选择缺失样本最佳分裂方向处理缺失值和稀疏数据
早停和学习率衰减监控验证集性能,学习率衰减控制每棵树贡献降低过拟合和节省计算开销
自定义目标和评估支持用户自定义目标函数和评估指标提高适应性,满足不同场景需求

引入正则化项,防止过拟合

在 GBDT 中,每棵树的叶子节点权重没有额外的正则化控制,容易导致模型过拟合。XGBoost 在每棵树的目标函数中引入了 ( L1L_1 ) 和 ( L2L_2 ) 正则化项,控制叶节点数量和权重大小,使模型更具泛化能力。目标函数为:

Obj=i=1NL(yi,y^i)+m=1MΩ(fm)\text{Obj} = \sum_{i=1}^N L(y_i, \hat{y}_i) + \sum_{m=1}^M \Omega(f_m)

损失函数 L(yi,y^i)L(y_i, \hat{y}_i)

损失函数 L(yi,y^i)L(y_i, \hat{y}_i) 测量每个样本的预测误差。例如,常用的损失函数有:

  • 均方误差 (MSE):用于回归问题,定义为 L(yi,y^i)=12(yiy^i)2L(y_i, \hat{y}_i) = \frac{1}{2}(y_i - \hat{y}_i)^2
  • 对数损失 (Log Loss):用于二分类问题。L(y,y^)=(ylog(y^)+(1y)log(1y^))L(y, \hat{y}) = - \left( y \cdot \log(\hat{y}) + (1 - y) \cdot \log(1 - \hat{y}) \right)

正则化项 Ω(fm)\Omega(f_m)

正则化项 Ω(fm)\Omega(f_m) 用于控制模型复杂度,包含 L1 和 L2 正则化:

Ω(fm)=γT+12λj=1Twj2+αj=1Twj\Omega(f_m) = \gamma T + \frac{1}{2} \lambda \sum_{j=1}^T w_j^2 + \alpha \sum_{j=1}^T |w_j|

其中:

  • TT 是树的叶节点数目。
  • wjw_j 是第 jj 个叶节点的权重。
  • γ\gamma 控制叶节点的数量,较大的 γ\gamma 倾向于减少叶节点数量,使模型更简单。
  • λ\lambda 是 L2 正则化系数,控制叶节点权重的平方和,有助于平滑叶节点的权重。
  • α\alpha 是 L1 正则化系数,控制叶节点权重的绝对值之和,促使部分权重趋向于零,从而构建更稀疏的模型。

使用二阶导数信息,加速收敛

详细全文请移步公主号:Goodnote。

参考:欢迎来到好评笔记(Goodnote)!