转载于:https://blog.csdn.net/zpalyq110/article/details/79527653
本人理解:1.由于使用平方误差作为损失函数,所以每次的负梯度方向为上一次最有分类器与原数据标签的残差,所以每次的若分类器都是针对残差进行训练的。
2.每次的弱分类器并不要求结构是相同的,因为最后对分类器进行合并时只是将最后他们的结果 合并求解而不要求将他们的结构也合并成新的一棵树。
3.无论是分类还是回归CBDT 算法都是利用回归树,因为只有回归才能 进行梯度求导。
写在前面: 去年学习GBDT之初,为了加强对算法的理解,整理了一篇笔记形式的文章,发出去之后发现阅读量越来越多,渐渐也有了评论,评论中大多指出来了笔者理解或者编辑的错误,故重新编辑一版文章,内容更加翔实,并且在GitHub上实现了和本文一致的GBDT简易版(包括回归、二分类、多分类以及可视化),供大家交流探讨。感谢各位的点赞和评论,希望继续指出错误~
Github:https://github.com/Freemanzxp/GBDT_Simple_Tutorial
简介:
GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法中,GBDT算的上TOP3的算法。想要理解GBDT的真正意义,那就必须理解GBDT中的Gradient Boosting 和Decision Tree分别是什么?
1. Decision Tree:CART回归树
首先,GBDT使用的决策树是CART回归树,无论是处理回归问题还是二分类以及多分类,GBDT使用的决策树通通都是都是CART回归树。为什么不用CART分类树呢?因为GBDT每次迭代要拟合的是梯度值,是连续值所以要用回归树。
对于回归树算法来说最重要的是寻找最佳的划分点,那么回归树中的可划分点包含了所有特征的所有可取的值。在分类树中最佳划分点的判别标准是熵或者基尼系数,都是用纯度来衡量的,但是在回归树中的样本标签是连续数值,所以再使用熵之类的指标不再合适,取而代之的是平方误差,它能很好的评判拟合程度。
回归树生成算法:
输入:训练数据集
D
D
D
DD D
DDDf0(x)=argmin