看完GBDT详解,才发现GBDT这四个 词已经完全概括了这个算法的思想,Gradient是核心关键词,算法的目的是减少残差,采取的策略是在残差减少的梯度方向上建立新的模型。算法伪代码如下图:
由算法流程图,可以清晰地发现
一、起初,先获得loss的初始值,这里的loss可以是Table10.2中的多个标准,对于每一种loss得到的梯度表达式也不一样。
二、下面的过程就是沿着梯度的方向减小残差。首先获得当前的残差向量 2.(a)。
三、建立回归树来拟合这个残差向量2.(b)这也是DT过程,拟合的过程可以是通过寻求最小均方差来寻找分裂点,生成一棵树,当然,这棵树并不能达到100%拟合,因此就会产生新的梯度向量2.(d),在继续生成新的树来拟合新的残差向量。
总体来说:其实就是利用Boost的思想不断去学习那些分错的样本以使得残差越来越小。