梯度提升树

最近更新时间:2026-06-02 16:56:51

我的收藏

算法介绍

梯度提升决策树 (GBDT)

TCHouse-X 利用 LightGBM 框架实现的梯度提升决策树(GBDT)。它是一种基于决策树的集成学习算法。
该算法原理为:采用 Boosting(提升)策略,通过迭代地训练决策树来最小化损失函数。与传统GBDT不同,LightGBM 采用基于直方图的算法和带有深度限制的按叶子生长 (Leaf-wise) 策略。即每次从当前所有叶子节点中,选择分裂收益最大(损失减少最多)的节点进行分裂,而不是像传统算法那样对每一层所有节点进行分裂。这使得模型收敛速度更快,精度更高。

梯度提升回归树 (GBRT)

GBRT(Gradient Boosting Regression Tree)是GBDT在回归问题上的应用,后端同样基于 LightGBM 实现。
该算法原理为:通过多轮迭代,每轮训练一棵新的回归树来拟合前一轮模型的残差(即真实值与当前预测值的差)。最终的预测结果是所有树预测值的加权和。
LightGBM 通过直方图算法将连续的浮点特征值离散化为k个整数,构造直方图,从而大幅减少了计算分割点的时间复杂度。

算法参数介绍

公共入参

入参
类型
默认值
说明
num_leaves
INT
31
基学习器(树)的最大叶子数,为正整数。
max_depth
INT
-1
基学习器最大深度:
不设限:设置为 <= 0 时,不对树深度进行硬性限制。
正值限制:若设定大于 0 的具体深度,建议配合调整 num_leaves,使其满足 num_leaves <= 2^max_depth,以防生长失衡。
learning_rate
FLOAT
0.1
收敛步长:控制每棵基学习器对最终模型的贡献权重。
n_estimators
INT
100
基学习器数量:指定模型中包含的弱学习器的总数,为正整数。
subsample_for_bin
INT
200000
构建直方图分箱(bins)时用于采样的样本数,为正整数。
min_split_gain
FLOAT
0.0
叶节点继续分裂所需的最小损失下降(增益)阈值。
min_child_weight
FLOAT
1e-3
子节点(叶子)所需的最小样本权重和(Hessian)。
min_child_samples
INT
20
子节点(叶子)所需的最小样本数,为正整数。
subsample
FLOAT
1.0
训练样本的采样比例(行采样)。
subsample_freq
INT
0
行采样频率;<=0 表示不启用。
colsample_bytree
FLOAT
1.0
构建每棵树时的特征采样比例(列采样)。
reg_alpha
FLOAT
0.0
L1 正则项系数。
reg_lambda
FLOAT
0.0
L2 正则项系数。
random_state
INT
42
随机种子,为非负整数。

GBDT 入参

入参
类型
默认值
说明(中文)
objective
STRING
multiclass
目标函数/学习任务,LightGBM 在训练中要优化的损失。GBDT 下可选:['binary','multiclass']。
num_class
INT
10
类别数,为正整数。若 objective='binary',无需设置该参数。

GBRT 入参

入参
类型
默认值
说明
objective
STRING
regression
目标函数/学习任务,LightGBM 在训练中要优化的损失。GBRT 下可选:['regression','regression_l1','huber','quantile','mape']。
alpha
FLOAT
0.9
控制某些回归目标的损失不对称/鲁棒性:对 quantile 回归表示目标分位数(如 0.5 为中位数,0.9 更关注上尾);对 huber 表示从二次(L2)到线性(L1)区域的过渡点,用于提升对离群点的鲁棒性。取值 (0,1);仅当 objective ∈ ['quantile','huber'] 时生效。