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 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 | +-------------------------+----------------------------------------------------------------------------------------+ | ``Feature`` | Stores one column feature | +-------------------------+----------------------------------------------------------------------------------------+ | ``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 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.