当前位置: 代码迷 >> 综合 >> 集成学习(三)——GBDT
  详细解决方案

集成学习(三)——GBDT

热度:80   发布时间:2024-02-05 04:31:00.0

文章目录

  • 写在前面
  • 提升树(Boosting Decision Tree)BDT
  • 负梯度

写在前面

Adaboost是通过提升错分数据点的权重来定位模型的不足,而Gradient Boosting 是通过计算梯度(gradient)来定位模型的不足。

提升树(Boosting Decision Tree)BDT

我们利用平方误差来表示损失函数,其中每一棵回归树学习的是之前所有树的结论和残差,拟合得到一个当前的残差回归树。其中残差=真实值-预测值,提升树即是整个迭代过程生成的回归树的累加。
我们通过以下例子来详解算法过程,希望通过训练提升树来预测年龄。训练集是4个人,A、B、C、D年龄分别是14、16、24、26。样本中有购物金额、上网时长、经常到百度知道提问等特征。提升树的过程如下:
在这里插入图片描述
我们能够直观的看到,预测值等于所有树值的累加,如A的预测值=树1左节点(15)+树2左节点(-1)=14。因此给定当前决策树模型ft-1(x),只需拟合决策树的残差,便可迭代得到提升树.

负梯度

我们介绍了Boosting Decision Tree的基本思路,但是没有解决损失函数拟合方法的问题。针对这个问题,Freidman提出用损失函数的负梯度来拟合本轮损失的近似值,进而拟合一个CART回归树。了解Boosting Decision Tree方法后,我们便可将Gradient与Boosting Decision Tree相结合得到Gradient Boosting Decision Tree的负梯度拟合。

  相关解决方案