RF, GBDT, XGBOOST 之 GBDT

xiaoxiao2021-02-28  107

随机森林GBDTXGBOOST

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

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

Gradient boosting

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

算法

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

GBDT

算法

算法步骤解释:

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的区别与联系

转载请注明原文地址: https://www.6miu.com/read-44685.html

最新回复(0)