GBDT与XGBOOST
Boosting方法实际上是采用加法模型与前向分布算法。在上一篇提到的Adaboost算法也可以用加法模型和前向分布算法来表示。以决策树为基学习器的提升方法称为提升树(Boosting Tree)。对分类问题决策树是CART分类树,对回归问题决策树是CART回归树。 1、前向分布算法 引入加法模型 在给定了训练数据和损失函数L(y,f(x))L(y,f(x)) 的条件下,可以通过损失函数最小化来学习加法模型 然而对于这个问题是个很复杂的优化问题,而且要训练的参数非常的多,前向分布算法的提出就是为了解决模型的优化问题,其核心思想是因为加法模型是由多各模型相加在一起的,而且在Boosting中模型之间又是有先后顺序的,因此可以在执行每一步加法的时候对模型进行优化,那么每一步只需要学习一个模型和一个参数,通过这种方式来逐步逼近全局最优,每一步优化的损失函数: 具体算法流程如下: 1)初始化f0(x)=0f0(x)=0; 2)第m次迭代时,极小化损失函数 3)更新模型,则$f_m (x)$: 4)得到最终的加法模型 Adaboost算法也可以用前向分布算法来描述,在这里输入的数据集是带有权重分布的数据集,损失函数是指数损失函数。 2、GBDT算法 GBDT是梯度提升决策树(Gradient Boosting