为了解决普通决策树方法具有高方差的缺点,可以通过多次使用自助抽样训练集(bootstrapped samples),并建立回归树或分类树,然后对多次预测结果求平均或者投票的方式得到最终集成学习的预测结果,进而以达到减小统计学习方法方差的目的。这种方法叫作引导聚集算法,即聚合法(bagging)。但是,装袋法中的决策树是由使用相同的输入变量组合在不同的自助抽样训练集得到,从而它们具有一定的相关性,进而增加了得到的集成预测结果的方差。为了减少这种由于决策树之间相关性造成的方差,L.布赖曼和A.卡特勒在2001年提出了随机森林的算法。具体而言,相比如装袋法,随机森林在对自助抽样训练集建立决策树的时候,不是考虑所有的个输入变量,而是随机抽取
个输入变量来构建决策树(这里通常
远小于
)。由于决策树使用的输入变量集合是不相同的,所以随机森林方法能降低树与树之间的相关性,从而降低预测值的方差,提高预测效果。随机森林方法实现了对装袋法的一大改进,二者最大的区别便在于输入变量子集的数量不同。随机森林中的“森林”表示该方法是由多棵决策树构成的,“随机”表示该方法在构建决策树的时候使用随机从全部输入变量中抽取的变量子集。实际数据分析证明,随机森林是一种高准确度的集成学习分类器,既能用于分类问题又能用于回归问题,能够处理大量的输入变量并有效评估变量的重要性,而且能处理缺失值问题。
随机森林的具体实现过程如下。首先,从包含个样本的原始训练样本集中通过重抽样方法产生
个样本;假设输入变量总个数为
,然后随机地从
个输入变量中选取
个变量(其中
),利用该
个输入变量特征建立决策树(比如,分类回归树CART)并获得最佳分割点;将以上步骤重复进行
次,即可生成
棵决策树,形成随机森林。对于新数据,如果是分类问题,可以通过每棵决策树的预测结果进行投票,获得最终票数最多的类作为预测结果;如果是回归问题,将每棵决策树的预测结果求平均从而得到最终预测结果。