Development Guide ================= Algorithms ---------- Refer to `Features <./Features.rst>`__ 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 <./README.rst>`__. 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 <./FAQ.rst>`__. Also feel free to open `issues `__ if you met problems.