GBDT算法原理以及实例理解

2022/09/10

想要理解GBDT的真正意义,那就必须理解GBDT中的Gradient Boosting 和Decision Tree分别是什么?

1. Decision Tree:CART回归树

首先,GBDT使用的决策树是CART回归树,无论是处理回归问题还是二分类以及多分类,GBDT使用的决策树通通都是都是CART回归树。为什么不用CART分类树呢?因为GBDT每次迭代要拟合的是梯度值,是连续值所以要用回归树。

  对于回归树算法来说最重要的是寻找最佳的划分点,那么回归树中的可划分点包含了所有特征的所有可取的值。在分类树中最佳划分点的判别标准是熵或者基尼系数,都是用纯度来衡量的,但是在回归树中的样本标签是连续数值,所以再使用熵之类的指标不再合适,取而代之的是平方误差,它能很好的评判拟合程度。


回归树生成算法:

  • 输入:训练数据集D DD:
  • 输出:回归树f ( x ) f(x)f(x).

在训练数据集所在的输入空间中,递归的将每个区域划分为两个子区域并决定每个子区域上的输出值,构建二叉决策树:

(1)选择最优切分变量j jj与切分点s ss,求解

1

遍历变量j jj,对固定的切分变量j jj扫描切分点s ss,选择使得上式达到最小值的对( j , s ) (j,s)(j,s)

(2)用选定的对( j , s ) (j,s)(j,s)划分区域并决定相应的输出值:

2

(3)继续对两个子区域调用步骤(1)和(2),直至满足停止条件。

(4)将输入空间划分为M MM个区域 R 1 , R 2 , . . . R M R_1,R_2,…R_MR

3


2. Gradient Boosting: 拟合负梯度

  梯度提升树(Grandient Boosting)是提升树(Boosting Tree)的一种改进算法,所以在讲梯度提升树之前先来说一下提升树。

  先来个通俗理解:假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。最后将每次拟合的岁数加起来便是模型输出的结果。


4


5


6


3. GBDT算法原理

  上面两节分别将Decision Tree和Gradient Boosting介绍完了,下面将这两部分组合在一起就是我们的GBDT了。


7


4. 实例详解

数据介绍

  如下表所示:一组数据,特征为年龄、体重,身高为标签值。共有5条数据,前四条为训练样本,最后一条为要预测的样本。

编号 年龄(岁) 体重(kg) 身高(m)(标签值)
0 5 20 1.1
1 7 30 1.3
2 21 70 1.7
3 30 60 1.8
4(要预测的) 25 65

训练阶段

参数设置

  • 学习率:learning_rate=0.1
  • 迭代次数:n_trees=5
  • 树的深度:max_depth=3

8


9

10

11

12

13

14

15

16

17

18


19


20

参考资料

GBDT算法原理以及实例理解

Post Directory