您的位置:首页 > 其它

随机森林、Boost和GBDT

2016-09-08 09:15 218 查看

随机森林

若干决策树组成,每一个决策树很小,只有问题属性中的一小个子集,然后将所以小的决策树组合起来,用投票法决定分类。

* 在数据集上表现良好

* 在当前的很多数据集上,相对其他算法有着很大的优势

* 它能够处理很高维度(feature很多)的数据,并且不用做特征选择(WHY?)

* 在训练完后,它能够给出哪些feature比较重要

* 在创建随机森林的时候,对generlization error使用的是无偏估计(WHY?)

* 训练速度快

* 在训练过程中,能够检测到feature间的互相影响(怎样给出?待研究)

* 容易做成并行化方法

* 实现比较简单

Boost

最初为每个样例赋予相同的权重,通过迭代的方式,对每一次分类错误的样例给予更高的权重。进行N次迭代,得到N个分类器,再将它们组合起来(加权或投票),最终得到结果

GBDT(Gradient Boost Decision Tree)

Boost的意思表示GBDT也需要迭代,每一次的计算是为了减少上一次的残差(residual),而为了消除残差,我们可以在残差减少的梯度(Gradient)方向上建立一个新的模型。所以说,在Gradient Boost中,每个新的模型的简历是为了使得之前模型的残差往梯度方向减少,与传统Boost对正确、错误的样本进行加权有着很大的区别。

注:GBDT中的树,都是回归树,不是分类树。

(转)

GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量。比如A的真实年龄是18岁,但第一棵树的预测年龄是12岁,差了6岁,即残差为6岁。那么在第二棵树里我们把A的年龄设为6岁去学习,如果第二棵树真的能把A分到6岁的叶子节点,那累加两棵树的结论就是A的真实年龄;如果第二棵树的结论是5岁,则A仍然存在1岁的残差,第三棵树里A的年龄就变成1岁,继续学。这就是Gradient Boosting在GBDT中的意义。

残差向量就是全局最优方向,就是Gradient
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  boost 数据 算法