集成学习之随机森林

蓝咒 提交于 2020-02-10 12:40:35

 

 

 

随机森林的主要作用是降低模型的复杂度,解决模型的过拟合问题。

 

1、随机森林概述

随机森林利用随机的方式将许多决策树组合成一个森林,每个决策树在分类的时候投票决定测试样本的最终类别。

 

2、随机森林算法流程

随机森林是非常具有代表性的Bagging集成算法,它的所有基评估器都是决策树,分类树组成的森林就叫做随机森林分类器,回归树所集成的森林就叫做随机森林回归器。其主要包括4个部分:随机选择样本;随机选择特征;构建决策树;随机森林投票分类。

 

随机森林的分类算法流程如下图:

 

image

 

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的期望预测为

 
$$E(\frac{1}{n}\sum_{i=1}^{n}X_i)=\frac{1}{n}E(\sum_{i=1}^{n}X_i)=E(X_i)\approx\mu$$
 

结论:Bagging整体模型的期望近似于单模型的期望,这意味整体模型的偏差也与单模型的偏差近似,则bagging法并不能显著降低bias,所以Bagging通常选用偏差低的强学习器。

 

3.2 方差讨论

Bagging的抽样是有放回抽样,这样数据集之间会有重复的样本,样本之间并不独立。假设单个模型的方差为$\sigma^2$,设单模型之间具有相关系数0<ρ<1,则模型均值的方差为:

 
$$Var(\frac{1}{n}\sum_{i=1}^n{X_i})=\frac{\sigma^2}{n}+\frac{n-1}{n}\rho\sigma^2$$
 

可以看出,随着n值的增大,第一项趋于0,第二项趋于ρσ2,所以Bagging法能够降低整体方差。而随机森林在后续随机选取固定数量的特征项时,会进一步降低了单模型之间的相关性$\rho$,使得总体模型的方差变得更低。

 

注意:这里有必要提一下相关性这个概念,其包括子数据集间的相关性和子数据集间特征的相关性。若子数据集间重复的样本或子数据集间重复的特征越多,则相关性越大。

(1)森林中任意两棵树的相关性越大,方差越大,错误率越大;

(2)增大特征个数,树的相关性和分类能力会相应的提高。

 

4、随机森林的优缺点

 

优点:

1.随机森林可以解决分类和回归问题。

2.相比较于普通的决策树,保证了样本的随机性和属性的随机性。

3.通过随机选择样本选择不同的训练集构建决策树,可以一定程度上避免过拟合。

缺点:

1.一些分类/回归问题的训练数据中存在噪音,随机森林中的数据集会出现过拟合的现象。

2.相对于普通决策树算法,计算成本增加,训练时间延长。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!