Development Guide

Algorithms

Refer to Features to get 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 | Newwork 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 |

API Documents

LightGBM support use doxygen to generate documents for classes and functions.

C API

Refere to the comments in c_api.h.

High level Language package

Follow the implementation of python-package.

Ask Questions

Feel free to open issues if you met problems.