作者:Bruce,

班级:CSDN-第五期AI工程师直通车

学习笔记来源:本系列笔记是本人参加CSDN课程中的一些思考总结。希望能通过对一些问题深入思考,探索人工智能工程方法背后的本质。

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

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


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


下面讨论GBDT对决策树的优化。我们思考一个问题,数据中的每一个样本的地位都一样吗?比如对于分类任务来说,其实每个样本的地位并不一样。回忆SVM中的分类的超平面,有些样本点是支持向量,而有些点则远离分类的超平面。那对于决策树的模型来说,每个样本点是地位是一样的。基于这一思想,可以给样本分配不同的权重,靠近分类超平面的样本点分配较高的权重,反之远离的则分配较低的权重。样本靠近分类超平面时,则会使得这样的样本很容易分错,因为超平面稍变动,它可能就会被预测成为另一类。

数学原理:通过迭代的方式,先训练一棵一般的树,然后根据预测的残差分配样本的权重,下一次迭代时用带权重的样本计算残差。从而使得难分类的点(残差大)的点分配的权重更大,迭代时更侧重寻找残差更大的样本点。然后通过m次迭代,得到m个树的模型。
那么,需要怎样分配样本的权重以及最终得到每个树的系数呢?
通过数学推导,使得权重的分配以及模型的系数能够使得迭代时总的损失最小。具体推导的文章很多,就不再这里做数学推导了。

为什么GBDT通过获得比单棵决策树更好的结果呢?相比于随机森林,在多棵树之间有了迭代关系,使得迭代过程中更集中处理残差。每次迭代,沿着权重样本损失函数梯度的方向,也就是说在求梯度时已经考虑了残差的影响。

结论:随机森林通过对样本进行行和列的重采样,训练多个树然后通过多棵树融合得到模型。这样随机森林可以得到方差更小的模型。
GBDT,在迭代过程中每次迭代侧重训练残差大的样本,然后获得多个树模型,通过对多个模型融合后获得最终结果。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信