开发指南

算法

请参阅 特性 以了解 LightGBM 中使用的重要算法。

类和代码结构

重要类

描述

Application

应用程序入口,包括训练和预测逻辑

Bin

用于存储特征离散值(从浮点值转换而来)的数据结构

Boosting

Boosting 接口(GBDT、DART 等)

Config

存储参数和配置

Dataset

存储数据集信息

DatasetLoader

用于构建数据集

FeatureGroup

存储特征数据,可以是多个特征

Metric

评估指标

Network

网络接口和通信算法

ObjectiveFunction

用于训练的目标函数

Tree

存储树模型信息

TreeLearner

用于学习树模型

代码结构

路径

描述

./include

头文件

./include/utils

一些通用函数

./src/application

训练和预测逻辑的实现

./src/boosting

Boosting 的实现

./src/io

IO 相关类的实现,包括 Bin, Config, Dataset, DatasetLoader, FeatureTree

./src/metric

评估指标的实现

./src/network

网络功能的实现

./src/objective

目标函数的实现

./src/treelearner

树学习器的实现

文档 API

请参阅 文档 README

C API

请参阅 C APIc_api.h 文件中的注释,文档由此生成。

测试

C++ 单元测试位于 ./tests/cpp_tests 文件夹中,并借助 Google Test 框架编写。要在本地运行测试,请首先参考 安装指南 中关于如何构建测试的部分,然后直接运行编译后的可执行文件。强烈建议使用 sanitizers 构建测试。

高级语言包

请参阅 Python 包R 包 中的实现。

问题

请参阅 常见问题

如果您遇到问题,也欢迎提出 问题