随机森林算法原理

随机森林指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最Leo Breiman和Adele Cutler提出,并被注册成了商标。


 1、原理

随机森林由Leo Breiman(2001)提出的一种分类算法,它通过自助法(bootstrap)重采样技术,从原始训练样本集N中有放回地重复随机抽取n个样本生成新的训练样本集合训练决策树,然后按以上步骤生成m棵决策树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。其实质是对决策树算法的一种改进,将多个决策树合并在一起,每棵树的建立依赖于独立抽取的样本。 
     单棵树的分类能力可能很小,但在随机产生大量的决策树后,一个测试样本可以通过每一棵树的分类结果经统计后选择最可能的分类。 
     随机森林大致过程如下: 
1)从样本集中有放回随机采样选出n个样本; 
2)从所有特征中随机选择k个特征,对选出的样本利用这些特征建立决策树(一般是CART,也可是别的或混合); 
3)重复以上两步m次,即生成m棵决策树,形成随机森林; 
4)对于新数据,经过每棵树决策,最后投票确认分到哪一类。

 2、特点

     随机森林有很多优点: 
1) 每棵树都选择部分样本及部分特征,一定程度避免过拟合; 
2) 每棵树随机选择样本并随机选择特征,使得具有很好的抗噪能力,性能稳定; 
3) 能处理很高维度的数据,并且不用做特征选择; 
4) 适合并行计算; 
5) 实现比较简单; 
     缺点: 
1) 参数较复杂; 
2) 模型训练和预测都比较慢。 

 3、使用

      随机森林算法在大部分数据处理软件中都有实现,使用时可以直接调用,只需指定所需参数。 
      随机森林模型训练前要设置的参数较多,按PAI平台的实现有如下几个: 
o 算法类型:(可选)可供选择的算法类型有id3算法、cart算法、c4.5算法以及默认情况下的将上述三种算法均分的混合算法 
o 树的数目:森林中树的个数, 范围(0, 1000] 
o 随机属性个数:(可选)单颗树在生成时,每次选择最优特征,随机的特征个数。可供选择的类型有logN,N/3,sqrtN,N四种类型,其中N为属性总数 
o 树最大深度:(可选)单颗树的最大深度,范围[1, ∞),-1表示完全生长。 
o 叶子节点最少记录数:(可选)叶节点数据的最小个数。最小个数为2
o 叶子节点最少记录百分比:(可选)叶节点数据个数占父节点的最小比例,范围[0,100],-1表示无限制。默认-1
o 每棵树最大记录数:(可选)森林中单颗树输入的随机数据的个数。范围为(1000, 1000000] 



文稿丨李怡宁

排版丨李怡宁