本文来自我的个人博客 https://www.zhangshenghai.com/posts/34928/
提升树模型
提升方法实际采用加法模型(即基函数的线性组合)与前向分布算法。以决策树为基函数的提升方法称为提升树。提升树可以表示为决策树的加法模型:
其中,表示决策树,为决策树的参数,为树的个数。
提升树算法
提升树算法采用前向分布算法,首先确定初始提升树,第m步的模型是:
其中,为当前模型,通过经验风险极小化确定下一棵决策树的参数:
当采用平方损失函数时,
其损失为
这里是残差,。
对于提升树算法,通常使用平方误差损失函数解决回归问题,而使用指数损失函数解决分类问题,以及使用一般损失函数解决决策问题。对于二类分类问题,提升树算法只需将 AdaBoost 算法中的基本分类器限制为二类分类器即可。可以说这时的提升树算法是 AdaBoost 算法的特殊情况。本节主要叙述回归问题的提升树。
回归问题的提升树算法
输入:训练数据集
输出:回归提升树
初始化
对
2.1 计算残差
2.2 拟合残差学习一个回归树,得到
2.3 更新得到回归提升树
梯度提升
提升树利用加法模型与前向分布算法实现学习的优化过程,当损失函数是平方损失和指数损失函数时,每一步的优化是很简单的。但对于一般损失函数而言,往往每一步优化并不那么容易,于是梯度提升 (gradient boosting) 算法被提出。
梯度提升算法
输入:训练数据集,损失函数
输出:回归树
初始化
对
2.1 对,计算
2.2 对拟合回归树,得到第棵树的叶结点区域
2.3 对,计算
2.4 更新得到回归树