梯度提升树/GBDT(Gradient Descent Decision Tree)

梯度提升树被认为是统计学习算法中性能最好的算法之一

算法释义

梯度提升树是以 CART 作为基函数,采用加法模型和前向分步算法的一种梯度提升方法。

梯度提升树(GBDT)

GBDT 采用前向分步算法,初始提升树 f0(x) = 0,第 t 步的模型:
《梯度提升树/GBDT(Gradient Descent Decision Tree)》

利用损失函数最小化求解,即:
《梯度提升树/GBDT(Gradient Descent Decision Tree)》

当基函数是二叉回归树时,损失函数使用平方损失函数,即:
《梯度提升树/GBDT(Gradient Descent Decision Tree)》

这就相当于对当前模拟数据的残差训练一个回归树 T(x; γt),显然这样的子问题比较简单。

梯度提升回归树算法步骤

输入:训练集 D
输出:回归提升树 fT(x)
(1) 初始化提升树:f0(x) = 0
(2) 迭代训练:t = 1,2,…,T
a. 计算当前模拟数据的残差:
《梯度提升树/GBDT(Gradient Descent Decision Tree)》

b. 对当前残差训练一个回归树:
《梯度提升树/GBDT(Gradient Descent Decision Tree)》

c. 更新提升树:
《梯度提升树/GBDT(Gradient Descent Decision Tree)》

(3) 返回最终提升树:fT(x)

梯度提升

梯度提升树采用前向分步算法,当损失函数是平方损失函数或指数损失函数时,每一步优化相对简单,但对一般损失函数而言,优化过程可能变得比较困难,针对这一问题,Freidman 提出了梯度提升(Gradient Boosting)算法,该方法类似权重学习中的梯度下降方法,其关键是利用损失函数在当前模型下的负梯度作为回归问题提升树中的残差的近似值,拟合一个回归树:
《梯度提升树/GBDT(Gradient Descent Decision Tree)》

参考资料

《机器学习技法》,林轩田
《统计学习方法》,李航

    原文作者:前端开发
    原文地址: https://www.jianshu.com/p/d1f696266814
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞