目录
1 GBDT算法核心思想
GBDT是Gradient Boosting Decision Tree(梯度提升树)的缩写。
GBDT算法也是一种非常实用的Boosting算法,它与AdaBoost算法的区别在于:AdaBoost算法根据分类效果调整权重并不断迭代,最终生成强学习器;GBDT算法则将损失函数的负梯度作为残差的近似值,不断使用残差迭代和拟合回归树,最终生成强学习器。
简单来说,AdaBoost算法是调整权重,而GBDT算法则是拟合残差。
通过一个简单案例理解GBDT算法的核心思想。
下表中有4个样本客户的数据,特征变量X1为年龄,X2为月收入(元),目标变量y是实际信用卡额度(元)。现在要利用GBDT算法根据样本数据构造模型,用于预测信用卡额度。
假设建立的第1棵决策树如下图所示。
A、C被划分到左节点,A的实际信用卡额度为8000,而预测值为10000,因此,A的残差为8000-10000=-2000,同理,C的残差为25000-20000=5000。B、D被划分到右节点,B的残差为30000-35000=-5000,D的残差为40000-35000=5000。
接下来就是GBDT算法的核心思想:构造第2棵决策树来拟合第1棵树产生的残差,注意这里拟合的是残差,构造的拟合残差的决策树如下图所示。
在这棵树中,A、B被划分到左节点,A的实际残差为-2000,而预测的残差为-3000,那么此时A的新残差,即残差的残差为-2000-(-3000)=1000,同理,B的新残差为-5000-(-5000)=0。C、D被划分到右节点,C的新残差为5000-5000=0,D的新残差为5000-5000=0。继续用第2棵树产生的新残差去拟合第3棵树,并不断重复此步骤,使残差变小。
因此,最终的模型就是如下图所示的集成在一起的多个模型,这也充分体现了集成算法的集成思想。
2 GBDT算法的数学原理
简单介绍GBDT算法的数学原理。
迭代模型为:
fm-1(x)是第m-1次迭代模型,即上一次的迭代模型;
Tm(x)是本次待搭建的决策树,其实也是拟合上一个模型残差值的决策树;
fm(x)是本次迭代后产生的新模型。
对GBDT算法来说,只需要简单地拟合当前模型的残差,算法步骤如下。
步骤1:初始化f0(x)=0
步骤2:当m=1,2,…,M,计算残差rmi=yi-fm-1(x);拟合残差,得到决策树Tm(x);更新fm(x)=fm-1(x)+Tm(x)。
步骤3:当误差或迭代次数达到指定要求时,得到回归问题提升树,如下所示。
3 GBDT算法数学原理举例
结合具体的回归问题,详细讲解GBDT算法的数学计算步骤。
给定的训练数据见下表,其中x为特征变量,y为目标变量,因为y为连续值,所以这是一个回归预测问题。
1.构造第一个模型
首先初始化f0(x)=0,然后构造第1个回归决策树模型f1(x),其实也就是T1(x)。
回归决策树模型的划分标准。回归决策树模型与分类决策树模型最大的不同就