随机森林的主要作用是降低模型的复杂度,解决模型的过拟合问题。
1、随机森林概述¶
随机森林利用随机的方式将许多决策树组合成一个森林,每个决策树在分类的时候投票决定测试样本的最终类别。
2、随机森林算法流程¶
随机森林是非常具有代表性的Bagging集成算法,它的所有基评估器都是决策树,分类树组成的森林就叫做随机森林分类器,回归树所集成的森林就叫做随机森林回归器。其主要包括4个部分:随机选择样本;随机选择特征;构建决策树;随机森林投票分类。
随机森林的分类算法流程如下图:
1.样本选择
自助采样:假设训练数据集包含m个样本,随机从样本集中可放回的抽取m次,得到与训练集数量相同的训练集。经过K轮自助采样,可以得到K个包含m个训练样本的采样集。随机选择样本是有放回!!!
2.特征选择
在随机森林中,我们不计算所有特征的增益。如果每个特征的样本维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征。然后计算m个特征的增益,选择最优特征(属性)。若M=m,则与传统决策树相同,一般而言,推荐$m=\log_2{M}$或$m=\sqrt{M}$。随机选择特征是无放回!!!
3.决策树构建
基于随机采样后采样后的数据集进行多个决策树的构建,决策树构建以完全分裂的方式构建。
完全分裂:即要么叶子节点无法继续分裂,要么所有样本指向同一个分类。
构建方法:从这m个属性中采用某种策略来选择1个属性作为该节点的分裂属性。即选择特征的标准可以是我们常见的InformationGain(ID3)或者 Gain Ratio(C4.5)。
4.投票分类
通过以上过程我们构建了K个决策树,当有新的测试数据过来时,会经过多个数的分类,然后基于少数服从多数的投票机制判断最终分类结果。
注意:随机森林的生成过程相比于Bagging多了属性选择,Bagging比一般决策树多了个bootstrap sampling(自助采样)。
3、随机森林的方差和偏差¶
随机森林是基于bagging思想的模型框架,仅仅是增加了特征选择的过程,所以我们从bagging角度去分析随机森林的偏差与方差问题。
3.1 偏差讨论¶
根据可放回抽样中子数据集的相似性以及使用的是相同的模型,因此各模型有近似相等的 bias和 variance,且模型的分布也近似相同但不独立(因为子数据集间有重复的变量)。 设单模型的期望为μ,则Bagging的期望预测为
结论:Bagging整体模型的期望近似于单模型的期望,这意味整体模型的偏差也与单模型的偏差近似,则bagging法并不能显著降低bias,所以Bagging通常选用偏差低的强学习器。
3.2 方差讨论¶
Bagging的抽样是有放回抽样,这样数据集之间会有重复的样本,样本之间并不独立。假设单个模型的方差为$\sigma^2$,设单模型之间具有相关系数0<ρ<1,则模型均值的方差为:
可以看出,随着n值的增大,第一项趋于0,第二项趋于ρσ2,所以Bagging法能够降低整体方差。而随机森林在后续随机选取固定数量的特征项时,会进一步降低了单模型之间的相关性$\rho$,使得总体模型的方差变得更低。
注意:这里有必要提一下相关性这个概念,其包括子数据集间的相关性和子数据集间特征的相关性。若子数据集间重复的样本或子数据集间重复的特征越多,则相关性越大。
(1)森林中任意两棵树的相关性越大,方差越大,错误率越大;
(2)增大特征个数,树的相关性和分类能力会相应的提高。
4、随机森林的优缺点¶
优点:
1.随机森林可以解决分类和回归问题。
2.相比较于普通的决策树,保证了样本的随机性和属性的随机性。
3.通过随机选择样本选择不同的训练集构建决策树,可以一定程度上避免过拟合。
缺点:
1.一些分类/回归问题的训练数据中存在噪音,随机森林中的数据集会出现过拟合的现象。
2.相对于普通决策树算法,计算成本增加,训练时间延长。
来源:https://www.cnblogs.com/Maggieli/p/12288860.html