随机森林是一种包含多个决策树的分类器。随机森林的算法是由Leo Breiman和Adele Cutler发展推论出的。随机森林,顾名思义就是用随机的方式建立一个森林,森林里面由很多的决策树组成,而这些决策树之间没有关联。
随机森林就是用过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支------集成学习(Ensemble Learning)方法。集成学习就是使用一系列学习器进行学习,并将各个学习方法通过某种特定的规则进行整合,以获得比单个学习器更好的学习效果。集成学习通过建立几个模型,并将它们组合起来来解决单一预测问题。它的工作原理主要是生成多个分类器或者模型,各自独立地学习和作出预测。
随机森林是由多棵决策树构成的。对于每棵树,他们使用的训练集是采用放回的方式从总的训练集中采样出来的。而在训练每棵树的结点时,使用的特征是从所有特征中采用按照一定比例随机地无放回的方式抽取的。
随机森林的特点
- 当分类资料集具有很多种资料时,可以产生高准确度的分类器。
- 当分类资料集为不平衡的资料集时,随机森林可以平衡误差。
- 随机森林可以计算出各例中的亲近度,在数据挖掘、侦测偏离者及将资料视觉化方面有着非常重要的作用。
- 在大数据集上表现良好。
- 能够评估在分类问题上的各个特征的重要程度。
随机森林的构造方法
随机森林的建立基本由随机采样和完全分裂两部分组成。
随机采样
随机森林对输入的数据进行行、列的采样,但两种采样的方法有所不同。对于行采样,采用的方式是有放回的的采样,即在采样得到的样本集合中,可能会有重复的样本。假设输入样本为N个,那么采样的样本也为N个。这使得在训练时,每棵树的输入样本都不是全部的样本,所以相对不容易出现过拟合。对于列采样,采用的方式是按照一定的比例无放回的抽样,从M个特征中,选择m个样本(m<M);
完全分裂
在形成决策树的过程中,决策树的每个节点都要按完全分裂的方式来分裂,直到结点不能再分裂。采用这种方式建立出的决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本都是指向同一个分类器。
每棵树的构造方法过程如下:
- 用N表示训练例子的个数 ,M表示变量的数目。
- 用m来表示当在一个节点上做决定时会用到的变量的数目。
- 从N个训练案例中采用可重复取样的方式,取样N次,形成一组训练集,并使用这棵树来对剩余变量预测其类别,并对误差进行评估。
- 对于每个节点,随机选择m个基于此点上的变量。根据这m个变量,计算其最佳的分割方式。
- 对于森林中的每棵树都不用采用剪枝技术,每棵树都能完整生长。
- 森林中任意两棵树的相关性与森林中每棵树的分类能力是影响随机森林分类效果的两个重要因素。任意两棵树数之间的相关性越大,错误率越大;每棵树的分类能力越强,整个森林的错误率越低。