RF, GBDT, XGBOOST 之 GBDT

  1. 随机森林
  2. GBDT
  3. XGBOOST

博主记忆力较差,主要目的是以后忘了的时候可以不用去网上找各种资料,内容有从其他地方摘录,也有自己总结,转载请注明出处

其实Wikipedia GBDT 对算法写的最清楚, 从gradient boosting 到 gradient boosting (decision) tree

Gradient boosting

Gradient Boosting是一种Boosting的方法,其与传统的Boosting的区别是,每一次的计算是为了减少上一次的残差(residual),而为了消除残差,可以在残差减少的梯度(Gradient)方向上建立一个新的模型。所以说,在Gradient Boosting中,每个新的模型的建立是为了使得之前模型的残差往梯度方向减少,与传统Boosting对正确、错误样本进行加权有着很大的区别。这个梯度代表上一轮学习器损失函数对预测值求导。

算法

RF, GBDT, XGBOOST 之 GBDT_第1张图片

对于 hm , 计算一个 γm 使得 Fm(x)=Fm1(x)+γmhm(x) 最小,这也是后面GBDT和一般的gradient boosting不同的地方

GBDT

算法

RF, GBDT, XGBOOST 之 GBDT_第2张图片

算法步骤解释:

1、初始化,估计使损失函数极小化的常数值,它是只有一个根节点的树,即gamma是一个常数值。
2、
(a)计算损失函数的负梯度在当前模型的值,将它作为残差的估计
(b)估计回归树叶节点区域,以拟合残差的近似值
(c)利用线性搜索估计叶节点区域的值,使损失函数极小化
(d)更新回归树
3、得到输出的最终模型 f(x)

对于第m轮的regression tree的每一个叶节点, 求 γjm=argminγxiRjmL(yi,Fm1(xi)+γ) (叶子节点个数一般不会超过10)

GBDT和随机森林的不同点:

1、组成随机森林的树可以是分类树,也可以是回归树;而GBDT只由回归树组成
2、组成随机森林的树可以并行生成;而GBDT只能是串行生成
3、对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来
4、随机森林是通过减少模型方差提高性能,GBDT是通过减少模型偏差提高性能
5、随机森林对异常值不敏感,GBDT对异常值非常敏感
6、随机森林对训练集一视同仁,GBDT是基于权值的弱分类器的集成

Reference

[1] Wiki_gradient_boosting
[2] GBDT:梯度提升决策树
[3] RF GBDT XGBOOST的区别与联系

你可能感兴趣的:(Machine,Learning)