机器学习系列-Bagging与随机森林

Bagging

集成学习算法有两个大类:一个是Boosting,代表算法是AdaBoost;另一个是Bagging,本文介绍的随机森林是它的一个变种。

Bagging也叫自举汇聚法(bootstrap aggregating),它在原始数据集上通过有放回抽样重新选出\(T\)个包含\(m\)条数据的新数据集来训练分类器。也就是说这些新数据集是允许重复的。使用训练出来的分类器集合来对新样本进行分类,然后用多数投票或者对输出求均值的方法统计所有分类器的分类结果,结果最高的类别即为最终标签。

随机森林

随机森林是Bagging的一个变体,它在以决策树为基学习器构建Bagging集成的基础上,在决策树的训练中引入随机属性选择。

传统的决策树在选择划分属性时在当前结点的属性集合上选择一个最优划分属性(假设有\(d\)个属性),而在随机森林中,对决策树的每个节点,首先从该结点的属性集合中随机选择一个包含\(k\)个属性的子集,然后再从这个子集中选择一个最优属性进行划分。这里的参数\(k\)控制着随机性程度:如果\(k=d\),那么,基决策树的构建与传统决策树相同;如果\(k=1\),则是随机选择一个属性用于划分;一般情况下推荐\(k=log_{2}d\)

随机森林的优缺点

随机森林的优点

  1. 在当前的很多数据集上,相对其他算法有着很大的优势,表现良好。
  2. 它能够处理很高维度的数据,并且不用做特征选择。
  3. 在训练完后,它能够给出哪些feature比较重要。
  4. 在创建随机森林的时候,对generlization error使用的是无偏估计,模型泛化能力强。
  5. 训练速度快,容易做成并行化方法。
  6. 在训练过程中,能够检测到feature间的互相影响。
  7. 实现比较简单。
  8. 对于不平衡的数据集来说,它可以平衡误差。
  9. 如果有很大一部分的特征遗失,仍可以维持准确度。

随机森林的缺点

  1. 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合。
  2. 对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。
posted @ 2017-11-26 09:50  bubingy  阅读(448)  评论(0编辑  收藏  举报