GBDT

算法思想

GBDT也是Boosting家族的一员,也采用了前向分布加法模型,但是GBDT和AdaBoost还是存在很大的区别的:

1.AdaBoost没有对弱分类器的种类做限定,GBDT的弱分类器只能是CART回归树。

2.Adaboost是根据本轮弱分类器的分类误差率来改变训练样本在下轮训练时的权值,使误分类的样本在下一轮训练时受到更多的重视来减少分类误差率,Adaboost最后的预测结果是所有弱分类器的加权和。GBDT当前轮弱分类器不是直接去拟合样本的真实标签而是拟合前面所有轮分类器最终预测结果的残差。

如果我们把ft-1(x)看成是要优化的参数的话,和梯度下降法的思想一样,如果要想损失下降的话,ft-1(x)应该沿着负梯度方向更新,这样我们就得到了第t轮弱分类器对每个样本需要拟合的值:

分类问题

在分类问题中为了能计算损失函数的导数,每个叶子节点可以输出一个概率分布,这样就可以采用交叉熵损失函数便于计算导数。

GBDT中的正则

(1)    限制弱分类器的步长

(2)    对于弱学习器即CART回归树进行正则化剪枝

(3)    建树时进行无放回的样本采样。

GBDT优缺点总结

优点:

(1)在分布稠密的数据集上有非常好的泛化能力。(更适合低维稠密特征)

(2)预测阶段计算快,树与树之间可以并行计算。

(3)能自动发现特征间的高阶关系,不用对数据做太多的预处理。

缺点:

(1)GBDT在高维稀疏特征上的表现不好。

(2)训练过程中需要串行训练,训练速度慢。

 

参考博客

https://www.cnblogs.com/pinard/p/6140514.html

原文地址:https://www.cnblogs.com/xumaomao/p/11127694.html