README.md 8.97 KB
Newer Older
Guolin Ke's avatar
Guolin Ke committed
1
LightGBM, Light Gradient Boosting Machine
wxchan's avatar
wxchan committed
2
=========================================
The Gitter Badger's avatar
The Gitter Badger committed
3

4
[![Azure Pipelines Build Status](https://lightgbm-ci.visualstudio.com/lightgbm-ci/_apis/build/status/Microsoft.LightGBM?branchName=master)](https://lightgbm-ci.visualstudio.com/lightgbm-ci/_build/latest?definitionId=1)
Nikita Titov's avatar
Nikita Titov committed
5
[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/1ys5ot401m0fep6l/branch/master?svg=true)](https://ci.appveyor.com/project/guolinke/lightgbm/branch/master)
6
[![Travis Build Status](https://travis-ci.org/microsoft/LightGBM.svg?branch=master)](https://travis-ci.org/microsoft/LightGBM)
7
[![Documentation Status](https://readthedocs.org/projects/lightgbm/badge/?version=latest)](https://lightgbm.readthedocs.io/)
8
9
[![GitHub Issues](https://img.shields.io/github/issues/Microsoft/LightGBM.svg)](https://github.com/microsoft/LightGBM/issues)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/microsoft/LightGBM/blob/master/LICENSE)
10
11
[![Python Versions](https://img.shields.io/pypi/pyversions/lightgbm.svg)](https://pypi.org/project/lightgbm)
[![PyPI Version](https://img.shields.io/pypi/v/lightgbm.svg)](https://pypi.org/project/lightgbm)
12
[![Join the chat at https://gitter.im/Microsoft/LightGBM](https://badges.gitter.im/Microsoft/LightGBM.svg)](https://gitter.im/Microsoft/LightGBM?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
13
[![Slack](https://lightgbm-slack-autojoin.herokuapp.com/badge.svg)](https://lightgbm-slack-autojoin.herokuapp.com)
Guolin Ke's avatar
Guolin Ke committed
14

15
LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed and efficient with the following advantages:
Guolin Ke's avatar
Guolin Ke committed
16

17
18
19
- Faster training speed and higher efficiency.
- Lower memory usage.
- Better accuracy.
20
- Support of parallel and GPU learning.
21
- Capable of handling large-scale data.
Guolin Ke's avatar
Guolin Ke committed
22

23
For further details, please refer to [Features](https://github.com/microsoft/LightGBM/blob/master/docs/Features.rst).
Guolin Ke's avatar
Guolin Ke committed
24

25
Benefitting from these advantages, LightGBM is being widely-used in many [winning solutions](https://github.com/microsoft/LightGBM/blob/master/examples/README.md#machine-learning-challenge-winning-solutions) of machine learning competitions.
26

27
[Comparison experiments](https://github.com/microsoft/LightGBM/blob/master/docs/Experiments.rst#comparison-experiment) on public datasets show that LightGBM can outperform existing boosting frameworks on both efficiency and accuracy, with significantly lower memory consumption. What's more, [parallel experiments](https://github.com/microsoft/LightGBM/blob/master/docs/Experiments.rst#parallel-experiment) show that LightGBM can achieve a linear speed-up by using multiple machines for training in specific settings.
Guolin Ke's avatar
Guolin Ke committed
28

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Get Started and Documentation
-----------------------------

Install by following [guide](https://github.com/microsoft/LightGBM/blob/master/docs/Installation-Guide.rst) for the command line program, [Python-package](https://github.com/microsoft/LightGBM/tree/master/python-package) or [R-package](https://github.com/microsoft/LightGBM/tree/master/R-package). Then please see the [Quick Start](https://github.com/microsoft/LightGBM/blob/master/docs/Quick-Start.rst) guide.

Our primary documentation is at https://lightgbm.readthedocs.io/ and is generated from this repository.

Next you may want to read:

* [**Examples**](https://github.com/microsoft/LightGBM/tree/master/examples) showing command line usage of common tasks.
* [**Features**](https://github.com/microsoft/LightGBM/blob/master/docs/Features.rst) and algorithms supported by LightGBM.
* [**Parameters**](https://github.com/microsoft/LightGBM/blob/master/docs/Parameters.rst) is an exhaustive list of customization you can make.
* [**Parallel Learning**](https://github.com/microsoft/LightGBM/blob/master/docs/Parallel-Learning-Guide.rst) and [**GPU Learning**](https://github.com/microsoft/LightGBM/blob/master/docs/GPU-Tutorial.rst) can speed up computation.
* [**Laurae++ interactive documentation**](https://sites.google.com/view/lauraepp/parameters) is a detailed guide for hyperparameters.

Documentation for contributors:

* [**How we update readthedocs.io**](https://github.com/microsoft/LightGBM/blob/master/docs/README.rst).
* Check out the [**Development Guide**](https://github.com/microsoft/LightGBM/blob/master/docs/Development-Guide.rst).


wxchan's avatar
wxchan committed
50
51
News
----
52

Guolin Ke's avatar
Guolin Ke committed
53
08/15/2017 : Optimal split for categorical features.
Guolin Ke's avatar
Guolin Ke committed
54

Darío Hereñú's avatar
Darío Hereñú committed
55
07/13/2017 : [Gitter](https://gitter.im/Microsoft/LightGBM) is available.
Guolin Ke's avatar
Guolin Ke committed
56

57
06/20/2017 : Python-package is on [PyPI](https://pypi.org/project/lightgbm) now.
58

Guolin Ke's avatar
Guolin Ke committed
59
60
61
06/09/2017 : [LightGBM Slack team](https://lightgbm.slack.com) is available.

05/03/2017 : LightGBM v2 stable release.
62

63
04/10/2017 : LightGBM supports GPU-accelerated tree learning now. Please read our [GPU Tutorial](./docs/GPU-Tutorial.rst) and [Performance Comparison](./docs/GPU-Performance.rst).
Guolin Ke's avatar
Guolin Ke committed
64

Guolin Ke's avatar
Guolin Ke committed
65
02/20/2017 : Update to LightGBM v2.
Guolin Ke's avatar
Guolin Ke committed
66

Guolin Ke's avatar
Guolin Ke committed
67
02/12/2017 : LightGBM v1 stable release.
68

69
01/08/2017 : Release [**R-package**](https://github.com/microsoft/LightGBM/tree/master/R-package) beta version, welcome to have a try and provide feedback.
Guolin Ke's avatar
Guolin Ke committed
70

Guolin Ke's avatar
Guolin Ke committed
71
12/05/2016 : **Categorical Features as input directly** (without one-hot coding). 
wxchan's avatar
wxchan committed
72

73
12/02/2016 : Release [**Python-package**](https://github.com/microsoft/LightGBM/tree/master/python-package) beta version, welcome to have a try and provide feedback.
wxchan's avatar
wxchan committed
74

75
More detailed update logs : [Key Events](https://github.com/microsoft/LightGBM/blob/master/docs/Key-Events.md).
76

77
External (Unofficial) Repositories
78
----------------------------------
79

80
Julia-package: https://github.com/Allardvm/LightGBM.jl
81

82
83
84
85
86
87
88
JPMML (Java PMML converter): https://github.com/jpmml/jpmml-lightgbm

Treelite (model compiler for efficient deployment): https://github.com/dmlc/treelite

ONNXMLTools (ONNX converter): https://github.com/onnx/onnxmltools

SHAP (model output explainer): https://github.com/slundberg/shap
89

90
91
92
93
MMLSpark (Spark-package): https://github.com/Azure/mmlspark

ML.NET (.NET/C#-package): https://github.com/dotnet/machinelearning

94
95
LightGBM.NET (.NET/C#-package): https://github.com/rca22/LightGBM.Net

96
Dask-LightGBM (distributed and parallel Python-package): https://github.com/dask/dask-lightgbm
97

98
99
Support
-------
100

Darío Hereñú's avatar
Darío Hereñú committed
101
* Ask a question [on Stack Overflow with the `lightgbm` tag](https://stackoverflow.com/questions/ask?tags=lightgbm), we monitor this for new questions.
102
* Discuss on the [LightGBM Gitter](https://gitter.im/Microsoft/LightGBM).
103
104
* Discuss on the [LightGBM Slack team](https://lightgbm.slack.com).
  * Use [this invite link](https://lightgbm-slack-autojoin.herokuapp.com/) to join the team.
105
* Open **bug reports** and **feature requests** (not questions) on [GitHub issues](https://github.com/microsoft/LightGBM/issues).
106

Guolin Ke's avatar
Guolin Ke committed
107
108
109
110
111
How to Contribute
-----------------

LightGBM has been developed and used by many active community members. Your help is very valuable to make it better for everyone.

112
113
114
115
116
- Check out [call for contributions](https://github.com/microsoft/LightGBM/issues?q=is%3Aissue+is%3Aopen+label%3Acall-for-contribution) to see what can be improved, or open an issue if you want something.
- Contribute to the [tests](https://github.com/microsoft/LightGBM/tree/master/tests) to make it more reliable.
- Contribute to the [documents](https://github.com/microsoft/LightGBM/tree/master/docs) to make it clearer for everyone.
- Contribute to the [examples](https://github.com/microsoft/LightGBM/tree/master/examples) to share your experience with other users.
- Add your stories and experience to [Awesome LightGBM](https://github.com/microsoft/LightGBM/blob/master/examples/README.md).
Guolin Ke's avatar
Guolin Ke committed
117
- Open issue if you met problems during development.
Guolin Ke's avatar
Guolin Ke committed
118

Guolin Ke's avatar
Guolin Ke committed
119
Microsoft Open Source Code of Conduct
120
121
-------------------------------------

Guolin Ke's avatar
Guolin Ke committed
122
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
Guolin Ke's avatar
Guolin Ke committed
123

124
125
Reference Papers
----------------
Guolin Ke's avatar
Guolin Ke committed
126

127
Guolin Ke, Qi Meng, Thomas Finley, Taifeng Wang, Wei Chen, Weidong Ma, Qiwei Ye, Tie-Yan Liu. "[LightGBM: A Highly Efficient Gradient Boosting Decision Tree](https://papers.nips.cc/paper/6907-lightgbm-a-highly-efficient-gradient-boosting-decision-tree)". Advances in Neural Information Processing Systems 30 (NIPS 2017), pp. 3149-3157.
Guolin Ke's avatar
Guolin Ke committed
128

129
Qi Meng, Guolin Ke, Taifeng Wang, Wei Chen, Qiwei Ye, Zhi-Ming Ma, Tie-Yan Liu. "[A Communication-Efficient Parallel Algorithm for Decision Tree](http://papers.nips.cc/paper/6380-a-communication-efficient-parallel-algorithm-for-decision-tree)". Advances in Neural Information Processing Systems 29 (NIPS 2016), pp. 1279-1287.
Guolin Ke's avatar
Guolin Ke committed
130

131
Huan Zhang, Si Si and Cho-Jui Hsieh. "[GPU Acceleration for Large-scale Tree Boosting](https://arxiv.org/abs/1706.08359)". SysML Conference, 2018.
132

133
134
**Note**: If you use LightGBM in your GitHub projects, please add `lightgbm` in the `requirements.txt`.

135
136
License
-------
137

138
This project is licensed under the terms of the MIT license. See [LICENSE](https://github.com/microsoft/LightGBM/blob/master/LICENSE) for additional details.