废话不多说,首先DT即决策树,GBDT使用的树是回归树,生成方法见CART回归树。
GBDT是提升(boosting)方法的一种,但他不是Adaboost,我们常使用Adaboost进行分类,建议不要将GBDT和Adaboost联系起来看。
看下提升树模型的原理,它是个加法模型:
其推导过程如下,使用前向分布算法:
r就是残差,重点来了,GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量,由此得到损失函数为平方损失函数的GBDT算法:
到这里仔细想下,GB即梯度提升,然而前面我们并没有用到,这是为什么呢?因为这里是平方损失函数,每一步的优化比较简单。但对一般的损失函数,优化并不是那么容易,这里就用到了GB,核心思想是利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值
梯度提升算法:
sklearn中有GBDT算法,可调用调参。
对于分类的问题,我们将损失函数定义成对数似然损失函数,然后还是根据上面的方法来,得到一个概率,类似逻辑回归。