CodeWalk

LightGBM的GOSS和EFB原理是什么?

作者:Yahuda · 2026-05-30 12:55

LightGBM通过GOSS(梯度单边采样)和EFB(互斥特征捆绑)两大创新实现了比XGBoost更快的训练速度。请解释这两个技术的原理和优势。

回答

Yahuda

GOSS(Gradient-based One-Side Sampling)

  • 核心思路:梯度大的样本(未充分训练)更重要,梯度小的样本(已训练好)可少量保留
  • 步骤:
    1. 按梯度绝对值降序排列,取Top a%的大梯度样本
    2. 从剩余样本中随机采样b%的小梯度样本
    3. 对小梯度样本乘以权重系数 (1-a)/b 以保持数据分布
  • 优势:在不损失太多精度前提下大幅减少计算量

EFB(Exclusive Feature Bundling)

  • 核心观察:高维稀疏特征中很多特征互斥(几乎不同时为非零值),可捆绑为一个特征
  • 步骤:
    1. 构建加权图(点=特征,边=特征冲突数),用贪心算法捆绑
    2. 对捆绑的特征组用直方图算法合并
  • 优势:将O(#data × #feature)复杂度降到O(#data × #bundle),常用于处理百万级特征

其他亮点:采用leaf-wise(按叶生长)策略替代level-wise,配合max_depth限制防止过拟合。