BDT(提升树)GBDT(梯度提升树)
时间:2022-10-21 19:30:01
BDT(提升树 Boosting Decision Tree)
提升树是以CART决策树是基于学习器的综合学习方法
提升树实际上是加法模型和前向分布算法,表示为:
在计算前分布算法第m步时,给出当前模型fm-1(x),求解:
这样就可以得到第m决策树T。提升树不同问题的区别在于损失函数不同,如指数损失函数分类,平方误差损失回归。
当提升树采用平方损失函数时,第m次迭代表示:
r是残差,所以第m树决定树Tm是对残差的拟合。要注意的是提升树算法中基学习器CART树是回归树。
BDT(提升树算法流程)
GBDT
GBDT全称为:Gradient Boosting Decision Tree,即梯度提升决策树,理解为 梯度提升 决策树。Friedman利用损失函数的负梯度拟合基学习器提出了最快下降的近似方法:
可通过平方损失函数介绍:
在损失函数面前,为了方便求导,1/2
求导:
残差是梯度的相反数:
在GBDT以负梯度为残差拟合。
GBDT梯度提升过程
输入数据集:
1.初始化:
2. for t=1 to T do
2.1 负梯度的计算:
2.2 基学习器获得拟合残差:
2.获得基础学习器的权重:
3 更新
GBDT与提升树不同的是,残差用梯度代替,每个基础学习器对应的参数权重。
GBDT使用梯度提升树的决策树(CART),CART树回归将空间分为K个不想交的区域,并确定每个区域的输出ck,数学表达式如下:
GBDT流程(回归)
输入训练集:
1.初始化:
2.for t =1 to T do
2.1 负梯度的计算:
2.2 拟合残差得到回归树,得到第t树叶节点区:
2.3更新
3.获得加法模型:
GBDT流程(分类)
GBDT仍然用于分类CART回归树,使用softmax概率映射,然后拟合概率残差。
1.先训练一棵回归树,比如三个类别,训练三棵树。例如,样本Xi为第二类,则输入的三棵树分别为:
(Xi,0),(Xi,1),(Xi,0)这是一种典型的多分类训练方法。每棵树的训练过程都是CART训练过程。这样,样本Xi得到三棵树的预测值F1(Xi),F2(Xi),F3(Xi),模拟多分类逻辑回归,使用softmax以类别1为例产生概率:
2.对每个类别分别计算残差,如类别1:
类别2:
类别3:
3.开始第二轮训练,第一类输入为
第二类和第三类相似,继续训练三棵树。
4.重复3,直到迭代M轮,获得最终模型。在预测时,只要发现概率最高的类别是相应的类别。