集成学习与 XGBoost
集成学习通过组合多个弱学习器来构建强学习器,是机器学习竞赛和工业界的王牌方法。
集成学习三大范式
Bagging(Bootstrap Aggregating)
- 原理:对训练集进行 Bootstrap 采样(有放回),并行训练多个基学习器,投票/平均输出
- 降低方差,主要解决过拟合
- 代表算法:随机森林(Random Forest)
Boosting
- 原理:串行训练基学习器,每个学习器关注前一个学习器的错误样本
- 降低偏差,主要解决欠拟合
- 代表算法:AdaBoost、GBDT、XGBoost、LightGBM、CatBoost
Stacking(堆叠)
- 原理:训练多个不同基学习器,再用一个元学习器(Meta-Learner)综合它们的输出
- 两层结构:基学习器层 + 元学习器层
- K 折交叉验证防止过拟合
XGBoost(eXtreme Gradient Boosting)
核心原理
- GBDT 的高效实现
- 二阶泰勒展开近似损失函数
- 正则化项(L1 + L2)防止过拟合
- 列采样降低过拟合
算法流程
- 每一步添加一棵树,拟合前一步的残差
- 分裂增益公式:Gain = GL²/(HL+λ) + GR²/(HR+λ) - (GL+GR)²/(HL+HR+λ) - γ
工程特性
- 自动处理缺失值(Sparsity-aware Split Finding)
- 加权分位数 Sketch(Weighted Quantile Sketch)
- 缓存感知访问(Cache-aware Access)
- 核外计算(Out-of-core Computing)
超参数
- n_estimators、max_depth、learning_rate、subsample、colsample_bytree、reg_alpha、reg_lambda、min_child_weight、gamma
LightGBM
核心优化
- GOSS(Gradient-based One-Side Sampling):保留大梯度样本,采样小梯度样本
- EFB(Exclusive Feature Bundling):互斥特征捆绑降维
- Leaf-wise 树生长策略(限 max_depth 防过拟合)
CatBoost
核心优化
- Ordered Target Encoding:基于排序的目标编码处理类别特征
- Ordered Boosting:排序提升避免预测偏移
- Symmetric Tree(对称树):预测速度更快
对比总结
| 维度 | XGBoost | LightGBM | CatBoost |
|---|---|---|---|
| 树生长策略 | Level-wise | Leaf-wise | Symmetric |
| 类别特征处理 | 手动编码 | 手动编码 | 自动处理 |
| 训练速度 | 中等 | 快 | 中等 |
| 默认参数效果 | 好 | 较好 | 好 |
| 小数据集 | 优秀 | 略逊 | 略逊 |
| 高维稀疏数据 | 优秀 | 一般 | 一般 |
什么时候用什么
- 数据量小:XGBoost
- 数据量大/追求速度:LightGBM
- 类别特征多:CatBoost
- 竞赛/调参时间充足:XGBoost
总结
集成学习(Bagging、Boosting、Stacking)是提升模型性能的核心方法论。XGBoost 作为 GBDT 的进阶实现,结合了二阶泰勒展开、正则化和多种工程优化,在结构化数据场景中表现优异。LightGBM 和 CatBoost 分别从训练速度和类别特征处理角度进一步优化。在实际应用中,应根据数据规模、特征类型和效率需求选择合适的算法。