根据模型的生成过程,随机森林可分为Forest-RI、Forest-RC等不同类型。这里对Forest-RI、Forest-RC进行简单的介绍。
1、Forest-RI: 在节点分裂时,随机的选择F个特征作为候选分裂特征,然后从这随机选择的F特征中挑选出最佳分裂特征。以此种方式生成决策树,进而得到随机森林。可见F值对模型的性能是有影响的。[1]通过实验讨论了F值对模型效果的影响:Forest-RI对F值并不过于敏感,F=1与F等于其他值之间的模型效果差异小于1%。因此,仅仅随机的选择一个特征(F=1)进行近点分裂有时也能得到较高的准确率。
[1]指出影响随机森林效果的两个重要因素是单个模型的性能与单个模型之间的差异。一般说来,单个模型效果较好,并且单个模型之间的差异较大,随机森林的效果就越好。如果数据集中特征个数很少,那么就有可能导致单个模型之间的差异度降低,这样的问题应该怎么处理呢?
2、Forest-RC(Random Forests Using Linear Combinations of Inputs):如果数据集中特征个数为M(M较小),F为关于M的一个较为合适的函数,在Forest-RI过程中,可能会导致单个分类器的效果较好,而分类器之间的差异较小,影响了随机森林模型的最终效果。为了提高分类模型的差异,在节点分裂的过程中,随机的选择L个原始特征,把这L特征以一定的系数进行组合,系数可以随机的从区间[-1,1]等概率选择。由此得到F个组合特征,进而从F个组合特征中选择一个最佳的分裂特征。
3、随机森林之特征选择
袋外数据OOB是指建立单棵决策树时,没有参与该树建立过程的实例。利用随机森林进行特征选择可以大致分类两个过程:单特征重要性评估与特征剪除。
首先看用随机森林对特征f进行重要性评估:
(1)对随机森林中的决策树计算OOB误差,记为errOOB1
(2)随机对OOB所有样本的特征f加入噪音干扰,在此计算袋外误差errOOB2.
(3)假设随机森林中有N棵树,则特征f的重要性为agg(errOOB2-errOOB1)/N。
这样,通过随机森林就评估出了单个特征的重要性,但是并没有去除特征的冗余。特征的冗余是指:最好的m个特征并不一定是m个最好的特征。基于特征重要性进行特征选择有不同方法,其中[2]提出了一种即考虑特征重要性,又考虑了特征冗余的方法。在此,介绍一种较为简单的方法:
(1)利用随机森林评估特征的重要性,并降序排列。
(2)每次剔除一定比例的特征,得到新的特征集
(3)重复上述过程,直到剩下m个特征(m为提前设定的值)
另外,在特征重要性的基础上,也可以结合Wrapper方法进行特征选择。
[1]RANDOM FORESTS,Leo Breiman
[2]Variable selection using Random Forests,Robin Genuer, Jean-Michel Poggi, Christine Tuleau-Malot