本文主要是介绍深度理解梯度提升树GBDT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.什么是提升树?
提升树核心思想是使用残差使损失函数最小,每一次使用树模型拟合残差。最终预测值y是M个树模型的累加和
提升树模型如下
是决策时,是决策树的参数,M是决策树的个数
提升树通用算法过程如下:
输入: i=1...N 样本数据,L(y,f(x)) 损失函数
输出:提升树
算法流程
1.初始化
2.对m=1,2...M (遍历M个提升树)
2.1 计算残差
2.2 使用基学习器拟合参数,训练集为 i=1...N
2.3 更新模型
3.得到最终的强学习器
2.什么是GBDT?
GBDT是一种提升树模型,基学习器采用决策树,使用boosting思想+一阶梯度下降 的方法。GBDT公式模型
GBDT=决策树+boosting思想+一阶梯度下降(gradient)
boosting思想是基模型是有序的,上一个基模型的输出是下一个及模型的输入。第M个树模型的预测值是真实值与前m-1个树模型的残差。 一阶梯度下降是残差的计算使用负梯度值拟合残差
GBDT模型是采用M个模型的线性组合,模型公式如下
首先确定初始模型,定义初始基学习器,当模型得带到第m步时:
通过最小化损失函数来确定参数
Gradient Boosting方法的两种理解,从优化的角度采用梯度下降算法,T表示负梯度方向,为步长。从模型角度理解为一阶多项式展开,而T表示一阶信息,是系数
gradient boosting的算法流程
输入: i=1...N 样本数据,L(y,f(x)) 损失函数
输出:提升树
1.初始化
2.对m=1,2...M (遍历M个提升树)
2.1 计算残差
2.2 使用基学习器拟合参数,训练集为 i=1...N
2.3 根据梯度下降算法,计算学习器
2.4 更新模型
3.得到最终的强学习器
参考
1.【机器学习】GBDT
这篇关于深度理解梯度提升树GBDT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!