LightGBM 用三项机制加速大样本高维训练。(1) 直方图算法: 每个连续特征离散化为
k 个桶 (bin), 分裂只在桶边界上找切分点 — 分裂复杂度从预排序的
O(n⋅d) 降为
O(k⋅d), 内存从
O(n⋅d) 降到
O(k⋅d), 且父子节点的直方图可增量复用。(2) GOSS (Gradient-based One-Side Sampling, 单边梯度采样): 计算分裂增益时, 按样本梯度绝对值
∣gi∣ 降序排列, 前
a×100% 的大梯度样本全部保留; 在剩余
(1−a)×100% 的小梯度样本中随机采样
b×100%, 并把被采样的小梯度样本权重放大
b1−a 倍 — 增益用加权统计量估计, 期望与全量一致 (无偏), 计算量只剩
(a+b) 比例 (如
a=0.2,b=0.1 时只用约 30% 样本)。直觉: 梯度绝对值大 = 伪残差大 = 拟合不足的样本, 携带主要学习信号; 若等概率随机采样, 这些关键样本大概率被丢掉。(3) EFB (Exclusive Feature Bundling, 互斥特征捆绑): 稀疏数据里很多特征 (尤其 one-hot 编码) 互斥 — 几乎不同时取非零值; 把互斥特征捆成一个复合特征 (用图着色近似求解最小 bundles, 冲突度小于阈值即可捆绑), 特征数从
d 降到 bundle 数, 直方图构建从
O(data×d) 降到
O(data×bundles)。另外 LightGBM 用 Leaf-wise 生长: 每次分裂当前增益最大的叶子 (配 max_depth 限制) — 比 Level-wise 逐层同步分裂收敛更快、误差更低, 但样本少时更易过拟合; 原生支持类别特征 (免 one-hot)。