Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

LightGBM

LightGBM 是一种梯度提升框架,它根据特征直方图按叶片生长决策树,从而快速训练大型表格数据集。

LightGBM(轻量级梯度提升机)是一个开源的梯度提升框架,能够在表格数据上训练集成模型,由决策树组成,专为大型数据集上的高速度和低内存占用而设计。Microsoft 于 2016 年发布了它,并在 NeurIPS 2017 论文 LightGBM:一种高效的梯度提升决策树中介绍了其算法。2026 年 3 月,官方代码库迁移到了由同一批维护者管理的 lightgbm-org GitHub 组织。LightGBM 可通过 Python、R、C++ 和命令行处理分类、回归和排序任务,并出现在许多机器学习竞赛的获胜方案中。对于约 10,000 行的中型表格数据,像 LightGBM 这样的树集成模型通常仍优于深度学习。

LightGBM 的工作原理#

梯度提升逐棵构建决策树。每棵新树都拟合当前集成模型预测值相对于损失函数的梯度;对于平方误差,这些梯度就是残差,因此新树会纠正之前的树留下的错误。模型的预测值是所有树输出的总和,每个输出都乘以一个学习率。计算开销最大的步骤是为每个节点寻找最佳分裂点,LightGBM 通过四种技术加速了这一过程:

  • 基于直方图的分裂:训练前,LightGBM 会将每个连续特征分桶,最多分成 255 个箱(max_bin)。搜索分裂点时会扫描箱边界,而不是遍历每个排序后的取值。分裂后,只需根据数据构建较小子节点的直方图,因为较大子节点的直方图等于父节点的直方图减去较小子节点的直方图。
  • 按叶生长:LightGBM 总是分裂最佳分裂点能最大程度降低损失的叶节点,直到树达到 num_leaves 个叶节点(默认值为 31),而不是先分裂同一层的所有节点再继续向下生长。叶节点数相同时,这种方式比按层生长能达到更低的损失,但也会生成深而不平衡的树,可能导致小型数据集过拟合。
  • 基于梯度的单边采样(GOSS):梯度较大的样本表示模型仍然难以准确预测这些样本。使用 data_sample_strategy="goss" 时,LightGBM 会保留梯度最大的 20% 样本,从其余样本中随机抽取另外 10%,并提高这部分样本的权重,使数据分布接近原始分布。
  • 互斥特征捆绑(EFB):将很少同时取非零值的稀疏特征(例如独热编码列)合并为一个特征,从而减少需要构建的直方图数量。

每棵树都会重复搜索分裂点,直到用完叶节点预算或没有有效分裂为止;提升过程会在每一轮中重复这一操作:

如果在 categorical_feature 中列出整数编码的类别特征,LightGBM 还可以直接对这些特征进行分裂,在每次分裂时对类别分组,而不需要独热编码,并且默认会处理缺失值。训练可在 CPU、GPU(device_type="gpu" 或 "cuda")上运行,也可以通过分布式学习器跨机器运行。

训练和调优 LightGBM#

scikit-learn 风格的 LGBMClassifier、LGBMRegressor 和 LGBMRanker 类可以满足大多数用途。按叶生长的树可能会变得很深,因此防止过拟合的主要控制参数是 num_leaves、min_child_samples(每个叶节点默认 20 行)和 max_depth,再结合学习率和树的数量;通常可以通过超参数调优或在验证集上提前停止来确定这些参数。要展示直方图和按叶生长的优势,可以将其与 scikit-learn 经典的精确分裂梯度提升方法,在包含 20,000 行和 40 个特征的合成表格数据集上进行比较:

import time

import lightgbm as lgb
from sklearn.datasets import make_classification
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import train_test_split

X, y = make_classification(n_samples=20_000, n_features=40, n_informative=15, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# 200 trees each: exact split search vs. LightGBM's histograms and leaf-wise growth
for model in (GradientBoostingClassifier(n_estimators=200), lgb.LGBMClassifier(n_estimators=200, verbose=-1)):
    start = time.perf_counter()
    model.fit(X_train, y_train)
    seconds = time.perf_counter() - start
    print(f"{type(model).__name__}: {seconds:.1f} s, accuracy {model.score(X_test, y_test):.3f}")

在 Apple M5 Pro CPU 上,LightGBM 不到一秒就能生长出 200 棵最多有 31 个叶节点的树,而 scikit-learn 构建 200 棵深度为 3 的精确分裂树约需 20 秒;LightGBM 的较大树在测试集上取得了 0.956 的准确率,而另一种方法为 0.901。训练好的模型可以保存为文本或 JSON 格式,并可通过 onnxmltools 转换为 ONNX,以便在 Python 之外提供服务。

  • XGBoost:这是一种在 2014 年普及了正则化二阶提升的梯度提升库。它默认构建深度受限的树(max_depth=6),也可以通过 grow_policy="lossguide" 按叶生长;从 2.0 版起,默认使用基于直方图的分裂查找,因此这两个库现在采用了大多数相同的技术。
  • CatBoost:Yandex 于 2017 年发布的提升库,可构建对称树,并使用有序目标统计量对类别特征进行编码,以限制目标泄漏。
  • 随机森林:在自助采样样本上独立训练深树,并对它们的预测结果取平均,从而降低方差。
  • HistGradientBoosting:scikit-learn 的 HistGradientBoostingClassifier 和 HistGradientBoostingRegressor 是受 LightGBM 启发的实现,采用相同方式将特征分桶并构建直方图。
  • 表格基础模型:TabPFN 等预训练 Transformer 只需一次前向传播,就能对小型表格进行预测,无需针对每个数据集单独训练。

实际应用#

  • 欺诈和信用风险:银行会根据账户历史、商户、金额和时间特征为交易和贷款申请评分;LightGBM 推理速度快,适合逐笔交易决策。
  • 需求预测:零售商会根据滞后销售额、价格、促销和日历特征,预测每种商品在每家门店的销量。客流量是常见的输入数据:Ultralytics YOLO26 目标计数功能可追踪商店视频中越过某条线的人,并按类别统计进出人数;将每小时的计数汇总后,就能作为 LightGBM 人员排班预测的特征。
  • 搜索和推荐排序:LGBMRanker 默认使用 LambdaRank 目标函数进行训练,在每个查询组内对文档或产品排序,以优化归一化折损累计增益(NDCG)。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来