Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time

Development Guide


Refer to Features for understanding of important algorithms used in LightGBM.

Classes and Code Structure

Important Classes

Class Description
Application The entrance of application, including training and prediction logic
Bin Data structure used for storing feature discrete values (converted from float values)
Boosting Boosting interface (GBDT, DART, GOSS, etc.)
Config Stores parameters and configurations
Dataset Stores information of dataset
DatasetLoader Used to construct dataset
FeatureGroup Stores the data of feature, could be multiple features
Metric Evaluation metrics
Network Network interfaces and communication algorithms
ObjectiveFunction Objective functions used to train
Tree Stores information of tree model
TreeLearner Used to learn trees

Code Structure

Path Description
./include Header files
./include/utils Some common functions
./src/application Implementations of training and prediction logic
./src/boosting Implementations of Boosting
./src/io Implementations of IO related classes, including Bin, Config, Dataset, DatasetLoader, Feature and Tree
./src/metric Implementations of metrics
./src/network Implementations of network functions
./src/objective Implementations of objective functions
./src/treelearner Implementations of tree learners

Documents API

Refer to docs README.


Refer to C API or the comments in c_api.h file, from which the documentation is generated.


C++ unit tests are located in the ./tests/cpp_tests folder and written with the help of Google Test framework. To run tests locally first refer to the Installation Guide for how to build tests and then simply run compiled executable file.

High Level Language Package

See the implementations at Python-package and R-package.


Refer to FAQ.

Also feel free to open issues if you met problems.