GBDT和随机森林的区别

Posted 猫二哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GBDT和随机森林的区别相关的知识,希望对你有一定的参考价值。

1背景
以前把这两个搞混了

2随机森林
说道随机森林就要提bagging集成方法。bagging才用有放回的抽样。下图时bagging的示意图。

随机森林是bagging的一种扩展,在k个数据集选择的时候后,引入了随机属性选择。加入所有属性个数为d,k是随机选择的属性个数。那么k=d的时候,就没有改变。那么k=1的时候后,随机选择一个属性用于计算。推荐的k=log2d.
随机森林的基学习器一般是决策树算法-主要,也有神经网络。
随机森林是对bagging算法的一点改动,但是根能提现样本集之间的差异性。会提高最终预测结果的泛化能力。

3gbdt
gbdt是一种boosting算法。boosting工作机制:先从初始训练集训练处一个基学习器,然后在根据基学习器的表现对训练样本分布进行调整,使得先前的基学习器做错的训练样本在后续获得更多关注(增加错误样本权重),然后基于调整后的样本分布训练下一个基学习器,如此重复,直到基学习器达到指定的T时,最终将T个基学习器进行加权结合,得出预测。
gbdt是在boosting上做的改进,在boosting中调整权重的方式为基学习器预测错误加权重而gbdt的每一次迭代是为了减少残差,即在残差减少的梯度上建立一个新的模型。新的模型是为了使得之前模型的残差往梯度方向减少,与传统boosting对正确、错误的样本进行加权有着很大的区别。
新的模型是为了使得之前模型的残差往梯度方向减少,这句话有一点拗口,损失函数(loss function)描述的是模型的不靠谱程度,损失函数越大,则说明模型越容易出错(其实这里有一个方差、偏差均衡的问题,但是这里就假设损失函数越大,模型越容易出错)。如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度(Gradient)的方向上下降。这个是不是有点像线性回归的最小二乘法,其中的梯度下降哈。
以后详细分析其中的概念和公式

以上是关于GBDT和随机森林的区别的主要内容,如果未能解决你的问题,请参考以下文章

GBDT和随机森林的区别

随机森林(Random Forest)和梯度提升树(GBDT)有什么区别?

Spark2.0机器学习系列之6:GBDT(梯度提升决策树)GBDT与随机森林差异参数调试及Scikit代码分析

随机森林RF与GBDT之间的区别

RF 和 GBDT联系和区别

机器学习GBDT 和 决策森林 的区别?(面试回答)