Development Guide
Algorithms
Refer to Features to understand 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 store feature discrete values(converted from float values) |
Boosting |
Boosting interface, current implementation is GBDT and DART |
Config |
Store parameters and configurations |
Dataset |
Store information of dataset |
DatasetLoader |
Used to construct dataset |
Feature |
Store One column feature |
Metric |
Evaluation metrics |
Network |
Network interfaces and communication algorithms |
ObjectiveFunction |
Objective function used to train |
Tree |
Store 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 relatived 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.
C API
Refere to the comments in c_api.h.
High Level Language Package
See the implementations at Python-package and R-package.
Questions
Refer to FAQ.
Also feel free to open issues if you met problems.