LightGBM
![]() | |
Original author(s) | Guolin Ke[1] / Microsoft Research |
---|---|
Developer(s) | Microsoft and LightGBM contributors[2] |
Initial release | 2016 |
Stable release | v4.3.0[3]
/ January 15, 2024 |
Repository | github |
Written in | C++, Python, R, C |
Operating system | Windows, macOS, Linux |
Type | Machine learning, gradient boosting framework |
License | MIT License |
Website | lightgbm |
LightGBM, short for Light Gradient-Boosting Machine, is a free and open-source distributed gradient-boosting framework for machine learning, originally developed by Microsoft.[4][5] It is based on decision tree algorithms and used for ranking, classification and other machine learning tasks. The development focus is on performance and scalability.
Overview
The LightGBM framework supports different algorithms including GBT, GBDT, GBRT, GBM, MART[6][7] and RF.[8] LightGBM has many of XGBoost's advantages, including sparse optimization, parallel training, multiple loss functions, regularization, bagging, and early stopping. A major difference between the two lies in the construction of trees. LightGBM does not grow a tree level-wise — row by row — as most other implementations do.[9] Instead it grows trees leaf-wise. It will choose the leaf with max delta loss to grow. [10] Besides, LightGBM does not use the widely used sorted-based decision tree learning algorithm, which searches the best split point on sorted feature values,[11] as XGBoost or other implementations do. Instead, LightGBM implements a highly optimized histogram-based decision tree learning algorithm, which yields great advantages on both efficiency and memory consumption.[12] The LightGBM algorithm utilizes two novel techniques called Gradient-Based One-Side Sampling (GOSS) and Exclusive Feature Bundling (EFB) which allow the algorithm to run faster while maintaining a high level of accuracy.[13]
LightGBM works on Linux, Windows, and macOS and supports C++, Python,[14] R, and C#.[15] The source code is licensed under MIT License and available on GitHub.[16]
Gradient-based one-side sampling
When using gradient descent, one thinks about the space of possible configurations of the model as a valley, in which the lowest part of the valley is the model which most closely fits the data. In this metaphor, one walks in different directions to learn how much lower the valley becomes.
Typically, in gradient descent, one uses the whole set of data to calculate the valley's slopes. However, this commonly-used method assumes that every data point is equally informative.
By contrast, Gradient-Based One-Side Sampling (GOSS), a method first developed for gradient-boosted decision trees, does not rely on the assumption that all data are equally informative. Instead, it treats data points with smaller gradients (shallower slopes) as less informative by randomly dropping them. This is intended to filter out data which may have been influenced by noise, allowing the model to more accurately model the underlying relationships in the data.[13]
Exclusive feature bundling
Exclusive feature bundling (EFB) is a near-lossless method to reduce the number of effective features. In a sparse feature space many features are nearly exclusive, implying they rarely take nonzero values simultaneously. One-hot encoded features are a perfect example of exclusive features. EFB bundles these features, reducing dimensionality to improve efficiency while maintaining a high level of accuracy. The bundle of exclusive features into a single feature is called an exclusive feature bundle.[13]
See also
References
- ^ "Guolin Ke". GitHub.
- ^ "microsoft/LightGBM". GitHub. 7 July 2022.
- ^ "Releases · microsoft/LightGBM". GitHub.
- ^ Brownlee, Jason (March 31, 2020). "Gradient Boosting with Scikit-Learn, XGBoost, LightGBM, and CatBoost".
- ^ Kopitar, Leon; Kocbek, Primoz; Cilar, Leona; Sheikh, Aziz; Stiglic, Gregor (July 20, 2020). "Early detection of type 2 diabetes mellitus using machine learning-based prediction models". Scientific Reports. 10 (1): 11981. Bibcode:2020NatSR..1011981K. doi:10.1038/s41598-020-68771-z. PMC 7371679. PMID 32686721 – via www.nature.com.
- ^ "Understanding LightGBM Parameters (and How to Tune Them)". neptune.ai. May 6, 2020.
- ^ "An Overview of LightGBM". avanwyk. May 16, 2018.
- ^ "Parameters — LightGBM 3.0.0.99 documentation". lightgbm.readthedocs.io.
- ^ The Gradient Boosters IV: LightGBM – Deep & Shallow
- ^ "Features". LightGBM Official Documentation. Nov 3, 2024.
- ^ Manish, Mehta; Rakesh, Agrawal; Jorma, Rissanen (Nov 24, 2020). "SLIQ: A fast scalable classifier for data mining". International Conference on Extending Database Technology: 18–32. CiteSeerX 10.1.1.89.7734.
- ^ "Features — LightGBM 3.1.0.99 documentation". lightgbm.readthedocs.io.
- ^ a b c Ke, Guolin; Meng, Qi; Finley, Thomas; Wang, Taifeng; Chen, Wei; Ma, Weidong; Ye, Qiwei; Liu, Tie-Yan (2017). "LightGBM: A Highly Efficient Gradient Boosting Decision Tree". Advances in Neural Information Processing Systems. 30.
- ^ "lightgbm: LightGBM Python Package". 7 July 2022 – via PyPI.
- ^ "Microsoft.ML.Trainers.LightGbm Namespace". docs.microsoft.com.
- ^ "microsoft/LightGBM". October 6, 2020 – via GitHub.
Further reading
- Guolin Ke; Qi Meng; Thomas Finely; Taifeng Wang; Wei Chen; Weidong Ma; Qiwei Ye; Tie-Yan Liu (2017). "LightGBM: A Highly Efficient Gradient Boosting Decision Tree" (PDF). Neural Information Processing System.
- Quinto, Butch (2020). Next-Generation Machine Learning with Spark – Covers XGBoost, LightGBM, Spark NLP, Distributed Deep Learning with Keras, and More. Apress. ISBN 978-1-4842-5668-8.
- van Wyk, Andrich (2023). Machine Learning with LightGBM and Python. Packt Publishing. ISBN 978-1800564749.