简单来说,随机森林就是Bagging+决策树的组合(此处一般使用CART树)。即由很多独立的决策树组成的一个森林,因为每棵树之间相互独立,故而在最终模型组合时,每棵树的权重相等,即通过投票的方式决定最终的分类结果。
随机森林算法主要过程:
1、样本集的选择。
假设原始样本集总共有N个样例,则每轮从原始样本集中通过Bootstraping(有放回抽样)的方式抽取N个样例,得到一个大小为N的训练集。在原始样本集的抽取过程中,可能有被重复抽取的样例,也可能有一次都没有被抽到的样例。
共进行k轮的抽取,则每轮抽取的训练集分别为T1,T2,…,Tk。
2、决策树的生成
假如特征空间共有D个特征,则在每一轮生成决策树的过程中,从D个特征中随机选择其中的d个特征(d<D)组成一个新的特征集,通过使用新的特征集来生成决策树。
在k轮中共生成k个决策树,由于这k个决策树在训练集的选择和特征的选择上都是随机的,因为这k个决策树之间是相互独立的。
3、模型的组合
由于生成的k个决策树之间是相互独立的,每个决策树的重要性是相等的,因而在将它们进行组合时,无需考虑他们的权值,或者可以认为他们具有相同的权值。对于分类问题,最终的分类结果使用所有的决策树投票来确定最终分类结果;对于回归问题,使用所有决策时输出的均值来作为最终的输出结果。
4、模型的验证
模型的验证需要验证集,而在此我们无需专门额外的获取验证集,只需要从原始样本集中选择没有被使用过的样例即可。
在从原始样本中选择训练集时,存在部分样例一次都没有被选中过,在进行特征选择时,也可能存在部分特征未被使用的情况,我们只需将这些未被使用的数据拿来验证最终的模型即可。
5、总结
主要有几个方面的特性:
1)有两个随机抽取过程:分别为从原始样本集中随机抽取训练集,和决策树的特征选择上随机抽取部分特征生成决策树。
2)各决策树之间的相互独立性。因为相互独立,故而在决策树的生成过程可以并行进行,大大提高了算法的时间效率。
6、在线随机森林(online Random Forests)
与普通的随机森林的区别就是树的不同,在线随机森林的每棵树都是在线随机决策树。
由于研究的不够清楚就先不写了!
[1] 李航,统计学习方法。
[2] BIGBIGBOAT, http://www.cnblogs.com/liqizhou/archive/2012/05/10/2494558.html
[3] Saffari etc. On-line Random Forests, iccv.
http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5457447