0

集成学习(三):随机森林

 2 years ago
source link: https://ylhao.github.io/2018/05/06/244/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

集成学习(三):随机森林

创建时间:2018-05-06 16:03
字数:686 阅读: 0

Bagging

假设给定一个包含 mm 个样本的数据集,首先我们先随机取出一个样本放到采样集中,然后再把这个样本放回初始的数据集中,使得下次采样时该样本仍有可能被选中,这样,经过 mm 次随机采样操作,我们得到含有 mm 个样本的采样集。初始样本集中有的样本在采样集中多次出现,有的则从未出现过。
这里我们做一个计算,假设有 mm 个样本,则每次随机取出一个样本的时候,每个样本被取出的概率都为 1m1m,那么不被采集到的概率为:
1−1m1−1m
一个样本经过 m 次采样都没有被取出的概率为:
(1−1m)m(1−1m)m
当 m→∞m→∞ 时,有:
(1−1m)m→1e≈0.368(1−1m)m→1e≈0.368
也就是说在 bagging 每轮随机采样得到的一个采样集中,有大约 36.8% 的数据没有被采集到。这些数据常被称为袋外数据(Out of Bag, OOB),可以用这部分数据检测模型的泛化能力。

从方差-偏差分解的角度看 Bagging

Bagging 主要是通过集成来降低方差,比如当基学习器为不剪枝决策树时,这种说法就比较好理解了。不剪枝的决策树很容易过拟合,模型过于复杂,导致“低偏差,高方差”的情况出现,通过集成,训练多棵决策树,来降低方差,得到一个“低偏差,低方差”的模型。

基本结合策略

如果是解决分类问题,可以用投票法确定最终类别(少数服从多数的原则)。如果是解决回归问题,可以计算所有基学习器的预测结果的平均值或加权平均值来得到预测结果。

  • 随机森林的思想仍是 bagging
  • 随机森林使用 CART 决策树作为基分类器
  • 随机森林引入了属性扰动来增强基分类器的多样性

bagging 通过采样(样本扰动)使基分类器具有一定程度的多样性。
假设每个样本有 dd 个属性,随机森林在采样的基础上还会随机的选择 kk(k<dk<d) 个属性(而不是用全部的 dd 个属性)来训练基分类器。这就进一步增强了基学习器的“多样性”,这也就是上面介绍的通过属性扰动增强基分类器的多样性。一般推荐 k=log2dk=log2d。

  1. 《机器学习》 —— 周志华
  2. Bagging与随机森林算法原理小结

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以在文章下方的评论区进行评论,也可以邮件至 [email protected]

文章标题:集成学习(三):随机森林

文章字数:686

本文作者:ylhao

发布时间:2018-05-06, 16:03:26

最后更新:2019-06-07, 11:50:53

原始链接:https://ylhao.github.io/2018/05/06/244/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

0 条评论
Error: API rate limit exceeded for 141.164.63.164. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.).

来做第一个留言的人吧!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK