机器学习之随机森林


随机森林 Random Forest

在集成学习中曾经提到过, Bagging + 决策树 = 随机森林. 这点很重要.

Bagging(Bootstrap aggregating)并行训练多个同质弱学习器, 在取数据集时使用Boostrap(自助法). 自助法的意思是指在每次训练新的弱学习器时, 都从数据集中做放回抽样, 这样其他训练器在训练时也可能抽到相同的样本.

在随机森林中, 弱学习器由若干个决策树组成. 这若干个决策树是相互独立的. 当有新的数据输入随机森林后, 就让森林中的每棵决策树都进行判断, 然后进行投票, 这个样本将会被预测为投票数最多的那类. 随机森林必须要充满多样性, 也就是使得基决策树在保证整体正确率的同时, 尽可能的不同. 如果基决策树都一样, 那么森林也就失去了多样性, 失去了意义.

数据样本扰动

因为使用了Bagging, 假设原样本集中包含了$m$ 个样本, 那么采样时也从中放回抽样$m$ 次. 在取数据时做放回抽样, 所以每棵树的训练集都是不同的, 并且包含重复的样本. 这样从一定程度上使得每棵基决策树之间存在了差异, 降低了同质化. 这种通过产生不同数据子集训练不同个体学习器的做法称为数据样本扰动.

输入属性扰动

为增强随机森林的随机性, 在选择划分属性时随机森林与决策树有些许不同. 传统的决策树是对当前节点的属性集合(假设有$d$ 个属性)中选取一个最优的属性, 而在随机森林中, 每个基决策树会先从该节点的属性集合中随机选取一个包含$k$ 个属性子集, 然后再从子集中选择一个最优属性用于划分. $k$ 引入了随机性的控制程度, 如果$k=d$, 则基决策树的构建等同于传统决策树, 如果$k=1$, 则随机选取一个属性用于划分. 一般情况下推荐$k=\log_2d$. 这种扰动称为输入属性扰动, 对于包含大量冗余属性的数据, 这种做法不仅能产生多样性大的个体, 还因为属性减少而节省了时间开销, 同时因为冗余属性多, 减少一部分属性后训练的学习器能力也不会差很多.

对于随机森林的分类效果来说, 森林中的树的相关性越大, 错误率就越大. 树分类的能力越强, 整体的错误率就越低.


文章作者: DaNing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 DaNing !
评论
 上一篇
机器学习之XGBoost 机器学习之XGBoost
XGBoostXGBoost是Extreme Gradient Boosting的缩写, 作者是陈天奇大神. XGB因为其高准确率, 易于使用而在各类数据科学竞赛譬如Kaggle, 天池等十分流行. XGB与GBDT十分相似, 可以将XGB
2020-08-16
下一篇 
机器学习之K-means 机器学习之K-means
K-meansK-means是一种最为常用的硬聚类算法. 硬聚类指的是分出的样本必须只隶属于某一个类, 而不是给出隶属某几个类的概率. 流程对于给定的$k$类, 聚类所得的簇划分$C_k$, 以及样本$\boldsymbol{x}$,
2020-08-14
  目录