上一章:机器篇——集成学习(五) 细说 梯度提升(Gradient Boost)算法
下一章:机器篇——集成学习(七) 细说 XGBoost 算法
本小节,细说 GBDT 算法,下一小节细说 XGBoost 算法
二. 具体算法
6. GBDT 算法 (Gradient Boosting Decision Tree, GBDT)
GBDT 算法也是集成学习 Boosting 家族的成员,也是采用迭代弱学习器的方法,但是,弱学习器限定了只能使用 CART 回归树模型
在 GBDT 的迭代中,假设前一轮迭代得到的强学习器是 ,损失函数是
,则本轮迭代的目标是找到一个 CART 回归树模型的弱学习器
,让本轮的损失函数:
最小。也就是说,本轮迭代找到的决策树,要让样本的损失尽量变得更小。
(1). GBDT 的负梯度拟合。
①. 第 轮的第
个样本的损失函数的负梯度表示为:
②. 当损失函数最小,也就是拟合叶子节点最好的输出值 :
:为第
棵回归树对应的叶子节点区域
③. 得到本轮的决策树拟合函数
④. 本轮最终得到的强学习器表达式:
通过损失函数的负梯度来拟合,可以找到一种通用的拟合损失误差的方法,这样无论是分类问题还是回归问题,通过其损失函数的负梯度拟合,就可以用 GBDT 来解决分类回归问题。区别仅仅在于损失函数不同导致的负梯度不同而已。
(2). GBDT 回归算法
输入是训练集样本
最大迭代次数 ,损失函数
输出是强学习器
①. 初始化弱学习器
②. 对迭代轮数,
a. 对样本 ,计算负梯度
b. 利用 拟合一棵 CART 回归树,得到第
棵回归树,其对应的叶子节点区域为
,
,其中
为回归树
的叶子节点的个数。
c. 对叶子区域 ,计算最佳拟合值:
d. 更新强学习器