GBDT是boosting策略决策树的结合,GBDT有很多简称,有GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ), GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree),其实都是指的同一种算法

所谓的Gradient Boosting 其实就是在更新的时候选择梯度下降的方向来保证最后的结果最好,一些书上讲的“残差” 方法其实就是L2Boosting,因为它所定义的残差其实就是L2Boosting的Derivative

1. 回归问题的提升树算法基本公式

1).基本分类器:回归树

GBDT详细分析 未完

2).决策树的加法模型:

GBDT详细分析 未完

3).学习策略:平方误差损失函数

GBDT详细分析 未完

4).学习算法:前向分步算法

GBDT详细分析 未完

其中:

GBDT详细分析 未完

也就是说对回归问题的提升树算法来说,只需简单地拟合当前模型的残差;

5).算法流程

GBDT详细分析 未完

6).当损失函数是平方损失函数时,每一步优化是很简单的,只需简单地拟合当前模型的残差;但对于一般损失函数而言,往往每一步优化并不那么容易,针对这一问题,梯度提升算法(gradient boosting)被提出;

2.GBDT核心思想:

用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树:

GBDT详细分析 未完

3.算法流程:

GBDT详细分析 未完

 

4.损失函数

对于不同的Loss function,其梯度有不同的表达式:

GBDT详细分析 未完

前三种对应的loss function如下图:其中Huber是低于某个值表现为square error,高于某个值则表现为线性

GBDT详细分析 未完

5. GBDT的分类算法

GBDT的分类算法从思想上和GBDT的回归算法没有区别,但是由于样本输出不是连续的值,而是离散的类别,导致我们无法直接从输出类别去拟合类别输出的误差。

为了解决这个问题,主要有两个方法,一个是用指数损失函数,此时GBDT退化为Adaboost算法。另一种方法是用类似于逻辑回归的对数似然损失函数的方法。也就是说,我们用的是类别的预测概率值和真实概率值的差来拟合损失。

6. 其他

 

1).GBDT中的树是回归树,不是分类树;

2).优点:GBDT几乎可用于所有回归问题(线性/非线性),相对logistic regression仅能用于线性回归,GBDT的适用面非常广。亦可用于二分类问题(设定阈值,大于阈值为正例,反之为负例)。

3).GBDT组合特征

 其实说gbdt 能够构建特征并非很准确,gbdt 本身是不能产生特征的,但是我们可以利用gbdt去产生特征的组合。在CTR预估中,工业界一般会采用逻辑回归去进行处理,在我的上一篇博文当中已经说过,逻辑回归本身是适合处理线性可分的数据,如果我们想让逻辑回归处理非线性的数据,其中一种方式便是组合不同特征,增强逻辑回归对非线性分布的拟合能力。长久以来,我们都是通过人工的先验知识或者实验来获得有效的组合特征,但是很多时候,使用人工经验知识来组合特征过于耗费人力,造成了机器学习当中一个很奇特的现象:有多少人工就有多少智能。关键是这样通过人工去组合特征并不一定能够提升模型的效果。所以我们的从业者或者学界一直都有一个趋势便是通过算法自动,高效的寻找到有效的特征组合。Facebook 在2014年 发表的一篇论文便是这种尝试下的产物,利用gbdt去产生有效的特征组合,以便用于逻辑回归的训练,提升模型最终的效果。

GBDT详细分析 未完

        如图 所示,我们 使用 GBDT 生成了两棵树,两颗树一共有五个叶子节点。我们将样本 X 输入到两颗树当中去,样本X 落在了第一棵树的第二个叶子节点,第二颗树的第一个叶子节点,于是我们便可以依次构建一个五纬的特征向量,每一个纬度代表了一个叶子节点,样本落在这个叶子节点上面的话那么值为1,没有落在该叶子节点的话,那么值为 0.

        于是对于该样本,我们可以得到一个向量[0,1,0,1,0] 作为该样本的组合特征,和原来的特征一起输入到逻辑回归当中进行训练。实验证明这样会得到比较显著的效果提升。

7.案例:

按书上的算法步骤和例子梳理一遍

回归树问题的提升树算法步骤

GBDT详细分析 未完
GBDT详细分析 未完

算法实例:

GBDT详细分析 未完
GBDT详细分析 未完
GBDT详细分析 未完

 

相关文章:

  • 2022-02-14
  • 2022-01-08
  • 2021-11-30
  • 2022-01-03
  • 2021-04-20
  • 2022-02-23
  • 2022-01-08
猜你喜欢
  • 2021-07-05
  • 2021-10-28
  • 2021-10-07
  • 2021-08-16
  • 2021-10-05
  • 2021-09-12
相关资源
相似解决方案