Development Guide

December 16, 2016 ยท View on GitHub

Algorithms

Refer to Features to get important algorithms used in LightGBM.

Classes And Code Structure

Important Classes

Classdescription
ApplicationThe entrance of application, including training and prediction logic
BinData structure used for store feature discrete values(converted from float values)
BoostingBoosting interface, current implementation is GBDT and DART
ConfigStore parameters and configurations
DatasetStore information of dataset
DatasetLoaderUsed to construct dataset
FeatureStore One column feature
MetricEvaluation metrics
NetworkNewwork interfaces and communication algorithms
ObjectiveFunctionObjective function used to train
TreeStore information of tree model
TreeLearnerUsed to learn trees

Code Structure

Pathdescription
./includeheader files
./include/utilssome common functions
./src/applicationImplementations of training and prediction logic
./src/boostingImplementations of Boosting
./src/ioImplementations of IO relatived classes, including Bin, Config, Dataset, DatasetLoader, Feature and Tree
./src/metricImplementations of metrics
./src/networkImplementations of network functions
./src/objectiveImplementations of objective functions
./src/treelearnerImplementations 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.