<img src=https://github.com/microsoft/LightGBM/blob/master/docs/logo/LightGBM_logo_black_text.svg width=300 />
轻量级梯度提升机
LightGBM是一个使用基于树的学习算法的梯度提升框架。它的设计注重分布式和高效,具有以下优势:
- 更快的训练速度和更高的效率。
- 更低的内存使用。
- 更好的准确性。
- 支持并行、分布式和GPU学习。
- 能够处理大规模数据。
更多详细信息,请参阅特性。
得益于这些优势,LightGBM在许多机器学习竞赛的获胜方案中被广泛使用。
在公共数据集上的对比实验表明,LightGBM在效率和准确性方面都可以优于现有的提升框架,同时显著降低内存消耗。此外,分布式学习实验显示,在特定设置下,LightGBM可以通过使用多台机器进行训练来实现线性加速。
入门和文档
我们的主要文档位于https://lightgbm.readthedocs.io/,并从此存储库生成。如果你是LightGBM的新用户,请按照该网站上的[安装说明](https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html)进行操作。
接下来你可能想阅读:
- 示例展示了常见任务的命令行用法。
- LightGBM支持的特性和算法。
- 参数是你可以进行的全面定制列表。
- 分布式学习和GPU学习可以加速计算。
- FLAML为LightGBM提供自动调优(代码示例)。
- Optuna超参数调优器为LightGBM超参数提供自动调优(代码示例)。
- 理解LightGBM参数(以及如何使用Neptune进行调优)。
贡献者文档:
新闻
请参阅GitHub releases页面的更新日志。
外部(非官方)仓库
这里列出的项目提供了使用LightGBM的替代方法。
它们不由LightGBM
开发团队维护或正式认可。
LightGBMLSS(LightGBM的扩展,用于概率建模,可从中得出预测区间和分位数):https://github.com/StatMixedML/LightGBMLSS
FLAML(用于超参数优化的AutoML库):https://github.com/microsoft/FLAML
Optuna(超参数优化框架):https://github.com/optuna/optuna
Julia包:https://github.com/IQVIA-ML/LightGBM.jl
JPMML(Java PMML转换器):https://github.com/jpmml/jpmml-lightgbm
Nyoka(Python PMML转换器):https://github.com/SoftwareAG/nyoka
Treelite(用于高效部署的模型编译器):https://github.com/dmlc/treelite
lleaves(基于LLVM的模型编译器,用于高效推理):https://github.com/siboehm/lleaves
Hummingbird(将模型编译为张量计算):https://github.com/microsoft/hummingbird
cuML森林推理库(GPU加速推理):https://github.com/rapidsai/cuml
daal4py(Intel CPU加速推理):https://github.com/intel/scikit-learn-intelex/tree/master/daal4py
m2cgen(各种语言的模型应用器):https://github.com/BayesWitnesses/m2cgen
leaves(Go语言模型应用器):https://github.com/dmitryikh/leaves
ONNXMLTools(ONNX转换器):https://github.com/onnx/onnxmltools
SHAP(模型输出解释器):https://github.com/slundberg/shap
Shapash(模型可视化和解释):https://github.com/MAIF/shapash dtreeviz(决策树可视化和模型解释):https://github.com/parrt/dtreeviz
SynapseML(Spark 上的 LightGBM):https://github.com/microsoft/SynapseML
Kubeflow Fairing(Kubernetes 上的 LightGBM):https://github.com/kubeflow/fairing
Kubeflow Operator(Kubernetes 上的 LightGBM):https://github.com/kubeflow/xgboost-operator
lightgbm_ray(Ray 上的 LightGBM):https://github.com/ray-project/lightgbm_ray
Mars(Mars 上的 LightGBM):https://github.com/mars-project/mars
ML.NET(.NET/C# 包):https://github.com/dotnet/machinelearning
LightGBM.NET(.NET/C# 包):https://github.com/rca22/LightGBM.Net
Ruby gem:https://github.com/ankane/lightgbm-ruby
LightGBM4j(Java 高级绑定):https://github.com/metarank/lightgbm4j
lightgbm3(Rust 绑定):https://github.com/Mottl/lightgbm3-rs
MLflow(实验跟踪、模型监控框架):https://github.com/mlflow/mlflow
{bonsai}
(R {parsnip}
兼容接口):https://github.com/tidymodels/bonsai
{mlr3extralearners}
(R {mlr3}
兼容接口):https://github.com/mlr-org/mlr3extralearners
lightgbm-transform(特征转换绑定):https://github.com/microsoft/lightgbm-transform
postgresml
(通过 Postgres 扩展在 SQL 中进行 LightGBM 训练和预测):https://github.com/postgresml/postgresml
vaex-ml
(具有自己的 LightGBM 接口的 Python DataFrame 库):https://github.com/vaexio/vaex
支持
- 在 Stack Overflow 上使用
lightgbm
标签提问,我们会关注新问题。 - 在 GitHub issues 上提交 bug 报告和功能请求。
如何贡献
请查看 CONTRIBUTING 页面。
微软开源行为准则
本项目采用了微软开源行为准则。有关更多信息,请参阅行为准则常见问题解答或联系 opencode@microsoft.com。
参考论文
Yu Shi, Guolin Ke, Zhuoming Chen, Shuxin Zheng, Tie-Yan Liu. "梯度提升决策树的量化训练"。神经信息处理系统进展 35(NeurIPS 2022),第 18822-18833 页。
Guolin Ke, Qi Meng, Thomas Finley, Taifeng Wang, Wei Chen, Weidong Ma, Qiwei Ye, Tie-Yan Liu. "LightGBM:高效梯度提升决策树"。神经信息处理系统进展 30(NIPS 2017),第 3149-3157 页。
Qi Meng, Guolin Ke, Taifeng Wang, Wei Chen, Qiwei Ye, Zhi-Ming Ma, Tie-Yan Liu. "一种高效通信的并行决策树算法"。神经信息处理系统进展 29(NIPS 2016),第 1279-1287 页。
Huan Zhang, Si Si and Cho-Jui Hsieh. "大规模树提升的 GPU 加速"。SysML 会议,2018。
许可证
本项目基于 MIT 许可证条款授权。有关其他详细信息,请参阅 LICENSE。