真实面经题目 · 原创解析
XGBoost 如何实现正则化和并行化?
XGBoost 的正则化体现在目标函数和树结构约束中,并行化主要体现在特征分裂候选和直方图统计等计算过程,而不是每棵树完全独立并行。
出现于:网易 · 算法
真实面经题目 · 原创解析
XGBoost 的正则化体现在目标函数和树结构约束中,并行化主要体现在特征分裂候选和直方图统计等计算过程,而不是每棵树完全独立并行。
XGBoost 的目标函数包含训练损失和正则项,正则项通常约束叶子节点个数和叶子权重大小,例如 gamma 控制分裂收益阈值,lambda/alpha 控制 L2/L1,max_depth、min_child_weight、subsample、colsample 也能抑制过拟合。并行化方面,Boosting 的树通常按轮次依赖,不能简单把不同树完全并行,但在每一轮建树时可以并行统计特征分裂、排序或直方图、不同特征列和不同数据块的梯度信息,分布式版本还会做分片统计和聚合。
XGBoost 在损失之外加入树复杂度惩罚,限制叶子数和叶子权重,让模型不轻易长出过复杂的树。
gamma、lambda、alpha、max_depth、min_child_weight、subsample 和 colsample 都会影响模型复杂度和泛化能力。
Boosting 轮次有依赖,但每轮找最佳 split 时可以并行做特征统计、直方图构建、数据分片和梯度聚合。
预测阶段多棵树的遍历可以更容易并行或批量化,但面试问训练并行时,重点应落在每轮建树内部的候选分裂统计和分布式聚合,而不是树之间完全并行。
gamma 是继续分裂所需的最小损失下降,值越大越保守,树更不容易继续分裂。
lambda 是 L2 正则,倾向缩小叶子权重;alpha 是 L1 正则,可能让部分权重变得更稀疏。
虽然树按 boosting 轮次依赖,但每轮内部的分裂候选统计、直方图构建和数据分片聚合可以并行。