1.算法简介

随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。

2.算法过程

(1)假如有N个样本,则有放回的随机选择N个样本(每次随机选择一个样本,然后返回继续选择)。这选择好了的N个样本用来训练一个决策树,作为决策树根节点处的样本。
(2)当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取出m个属性,满足条件m << M。然后从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性。找到第一个分裂节点之后,就可以继续再按照前面的策略来选择第2个属性作为分裂属性…….一直到不能够再分裂为止
(3)按照步骤1~2建立大量的决策树,这样就构成了随机森林了。

3.算法特点

(1)随机森林对输入的数据要进行行、列的采样。对于行采样,采用有放回的方式(也就是可能有重复的样本)。然后进行列采样,从M个feature中选择m个(m << M)。这样采样的方式使得相对不容易出现over-fitting。