背景知识
决策树
略
boosting
boosting提升方法可以表示为多个弱分类器的权重和:
其中的w是权重,Φ是弱分类器(回归器)的集合,其实就是一个加法模型(即基函数的线性组合)
boosting的前向分布算法,实际上是一个贪心算法,也就是在每一步求解弱分类器Φ(m)和其参数w(m)的时候不去修改之前已经求好的分类器和参数:
这里β代替w表示权重,图中的b是之前说的Φ,即弱分类器。
根据损失函数的不同,衍生了不同的boosting算法:
所谓的Gradient Boosting 其实就是在更新的时候选择梯度下降的方向来保证最后的结果最好,一些书上讲的“残差” 方法其实就是L2Boosting吧,因为它所定义的残差其实就是L2Boosting的Derivative。
GBDT
对于决策树,其实就是对特征空间的区域划分,每个区域返回某个值作为决策树的预测值,决策树有几个叶子节点就把空间划分了几部分,如:
那么树可以表示为:
其中,
cj
表示区域
Rj
的数值,组成了该决策树的参数:, J表示树的叶子节点总数。
回归问题的前向分步算法:
在前向分步算法的第m步,给定当前模型fm-1(x),需求解:
得到第m棵数的参数。
当采用平方平方误差损失函数(L2Boosting)时,
其损失变为:
其中:
是上一轮模型的残差(residual),所以,对回归问题的提升树算法来说,第k轮迭代,只需输入上一轮的残差,即只需简单地拟合上一轮模型的残差。
总体算法步骤:
对比
与Adaboost: 二者都是通过加法模型对弱分类器进行线性组合,而AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值;GBDT通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。
与随机森林: 随机森林是bagging,GBDT是boosting。
Reference
http://blog.csdn.net/sb19931201/article/details/52506157
http://blog.csdn.net/dark_scope/article/details/24863289
http://www.jianshu.com/p/005a4e6ac775
http://www.36dsj.com/archives/21036