Commit c3f67a2b authored by Guolin Ke's avatar Guolin Ke
Browse files

add development guide.

parent d8003111
...@@ -28,10 +28,11 @@ To get started, please follow the [Installation Guide](https://github.com/Micros ...@@ -28,10 +28,11 @@ To get started, please follow the [Installation Guide](https://github.com/Micros
* [**Wiki**](https://github.com/Microsoft/LightGBM/wiki) * [**Wiki**](https://github.com/Microsoft/LightGBM/wiki)
* [**Installation Guide**](https://github.com/Microsoft/LightGBM/wiki/Installation-Guide) * [**Installation Guide**](https://github.com/Microsoft/LightGBM/wiki/Installation-Guide)
* [**Quick Start**](https://github.com/Microsoft/LightGBM/wiki/Quick-Start) * [**Quick Start**](https://github.com/Microsoft/LightGBM/wiki/Quick-Start)
* [**Examples**](./examples) * [**Examples**](https://github.com/Microsoft/LightGBM/tree/master/examples)
* [**Features**](https://github.com/Microsoft/LightGBM/wiki/Features) * [**Features**](https://github.com/Microsoft/LightGBM/wiki/Features)
* [**Parallel Learning Guide**](https://github.com/Microsoft/LightGBM/wiki/Parallel-Learning-Guide) * [**Parallel Learning Guide**](https://github.com/Microsoft/LightGBM/wiki/Parallel-Learning-Guide)
* [**Configuration**](https://github.com/Microsoft/LightGBM/wiki/Configuration) * [**Configuration**](https://github.com/Microsoft/LightGBM/wiki/Configuration)
* [**Document Indexer**](https://github.com/Microsoft/LightGBM/blob/master/docs/Readme.md)
How to Contribute How to Contribute
----------------- -----------------
...@@ -41,7 +42,8 @@ LightGBM has been developed and used by many active community members. Your help ...@@ -41,7 +42,8 @@ LightGBM has been developed and used by many active community members. Your help
- Check out [call for contributions](https://github.com/Microsoft/LightGBM/issues?q=is%3Aissue+is%3Aopen+label%3Acall-for-contribution) to see what can be improved, or open an issue if you want something. - Check out [call for contributions](https://github.com/Microsoft/LightGBM/issues?q=is%3Aissue+is%3Aopen+label%3Acall-for-contribution) to see what can be improved, or open an issue if you want something.
- Contribute to the [documents](https://github.com/Microsoft/LightGBM/tree/master/docs) to make it clearly for everyone. - Contribute to the [documents](https://github.com/Microsoft/LightGBM/tree/master/docs) to make it clearly for everyone.
- Contribute to the [examples](https://github.com/Microsoft/LightGBM/tree/master/examples) to share your experience with other users. - Contribute to the [examples](https://github.com/Microsoft/LightGBM/tree/master/examples) to share your experience with other users.
- Open issue if you met any problems during development. - Check out [Development Guide](./docs/development.md).
- Open issue if you met problems during development.
Microsoft Open Source Code of Conduct Microsoft Open Source Code of Conduct
------------ ------------
......
...@@ -2,7 +2,11 @@ Documents ...@@ -2,7 +2,11 @@ Documents
========= =========
* [Installation Guide](https://github.com/Microsoft/LightGBM/wiki/Installation-Guide) * [Installation Guide](https://github.com/Microsoft/LightGBM/wiki/Installation-Guide)
* [Quick Start](./Quick-Start.md) * [Quick Start](./Quick-Start.md)
* [Parameters](./Parameters.md)
* [Python Quick Start](./Python-intro.md) * [Python Quick Start](./Python-intro.md)
* [Features](https://github.com/Microsoft/LightGBM/wiki/Features)
* [Experiments](https://github.com/Microsoft/LightGBM/wiki/Experiments)
* [Parameters](./Parameters.md)
* [Python API Reference](./Python-API.md) * [Python API Reference](./Python-API.md)
* [Parallel Learning Guide](https://github.com/Microsoft/LightGBM/wiki/Parallel-Learning-Guide) * [Parallel Learning Guide](https://github.com/Microsoft/LightGBM/wiki/Parallel-Learning-Guide)
* [Development Guide](./development.md)
Development Guide
==================
Algorithms
----------
Refer to [Features](https://github.com/Microsoft/LightGBM/wiki/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](http://www.stack.nl/~dimitri/doxygen/) to generate documents for classes and functions.
C API
-----
Refere to the comments in [c_api.h](https://github.com/Microsoft/LightGBM/blob/master/include/LightGBM/c_api.h).
High level Language package
---------------------------
Follow the implementation of [python-package](https://github.com/Microsoft/LightGBM/tree/master/python-package/lightgbm).
Ask Questions
-------------
Feel free to open [issues](https://github.com/Microsoft/LightGBM/issues) if you met problems.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment