GBDT为什么比决策树结果更优?从决策树到随机森林再到GBDT,模型是怎么优化的?

决策树在计算过程中,已经通过信息增益或基尼系数理论使得决策树能够使得损失函数最小化了,为什么GBDT能够获得更好的结果?是决策树没有对数据信息利用充分吗?

决策树,是通过计算信息增益的方式构建决策树。但是随机森林和GBDT的模型往往能能获得比决策树更优的模型结果,难道说信息增益理论并不能得到最大的信息量吗?

首先我们来看为什么随机森林能够获得比单棵树更优的结果。随机森林是通过对模型进行重采样的方式,构建出多棵决策树,然后利用多棵决策树进行预测。那多棵树进行平均后,可以降低掉采样造成的偏差。也就是说,有样本就一定存在采样偏差,这样就会造成决策树也存在偏差。完全的决策树叶节点可以是无限多的,那每一个叶节点中包含的样本数量就会很少。这样的样本肯定会带来较大的采样误差。如果我们通过正则剪枝,显然就也损失了一些样本的信息。而通过多次重采样后,构建多个决策树模型,然后取平均预测的话,可以明显降低模型的方差。也因些,随机森林在测试样本中的表现会优于单棵决策树。通过这种方式,并不能降低模型的偏差。

下面讨论GBDT对决策树的优化。我们思考一个问题,数据中的每一个样本的地位都一样吗?比如对于分类任务来说,其实每个样本的地位并不一样。回忆SVM中的分类的超平面,有些样本点是支持向量,而有些点则远离分类的超平面。那对于决策树的模型来说,每个样本点是地位是一样的。基于这一思想,可以给样本分配不同的权重,靠近分类超平面的样本点分配较高的权重,反之远离的则分配较低的权重。样本靠近分类超平面时,则会使得这样的样本很容易分错,因为超平面稍变动,它可能就会被预测成为另一类。
数学原理:通过迭代的方式,先训练一棵一般的树,然后根据预测的残差分配样本的权重,下一次迭代时用带权重的样本计算残差。从而使得难分类的点(残差大)的点分配的权重更大,迭代时更侧重寻找残差更大的样本点。然后通过m次迭代,得到m个树的模型。
那么,需要怎样分配样本的权重以及最终得到每个树的系数呢?
通过数学推导,使得权重的分配以及模型的系数能够使得迭代时总的损失最小。具体推导的文章很多,就不再这里做数学推导了。
为什么GBDT通过获得比单棵决策树更好的结果呢?相比于随机森林,在多棵树之间有了迭代关系,使得迭代过程中更集中处理残差。每次迭代,沿着权重样本损失函数梯度的方向,也就是说在求梯度时已经考虑了残差的影响。

结论:随机森林通过对样本进行行和列的重采样,训练多个树然后通过多棵树融合得到模型。这样随机森林可以得到方差更小的模型。
GBDT,在迭代过程中每次迭代侧重训练残差大的样本,然后获得多个树模型,通过对多个模型融合后获得最终结果。
--------------------- 
作者:zcs99 
来源:CSDN 
原文:https://blog.csdn.net/zcs99/article/details/80475622 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(机器学习)