集成学习-bagging

1.Bagging(Bootstrap AGGregating, 装袋)算法族介绍
Bagging 是一种个体学习器之间不存在强依赖关系,可同时生成的并行式集成学习方法。

(1)Bagging算法原理

Bagging即套袋法,是一种采用自助采样法(bootstrap)的集成学习算法。自助采样法是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间,其算法过程如下:

(a)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)。

(b)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)。

(c)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果,若分类预测时两类获得相同票数时,最简单的方法是任选其一;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

随机森林(Random Forest,简称RF)是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。

构造随机森林的4个步骤:

(a)假如有N个样本,则有放回的随机选择N个样本(每次随机选择一个样本,然后返回继续选择)。这选择好了的N个样本用来训练一个决策树,作为决策树根节点处的样本。

(b)当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取出m个属性,满足条件m << M。然后从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性。

(c)决策树形成过程中每个节点都要按照步骤2来分裂(很容易理解,如果下一次该节点选出来的那一个属性是刚刚其父节点分裂时用过的属性,则该节点已经达到了叶子节点,无须继续分裂了)。一直到不能够再分裂为止。注意整个决策树形成过程中没有进行剪枝。

(d)按照步骤a~c建立大量的决策树,这样就构成了随机森林了。

2.随机森林的优点
有效运行于大数据集:来自boostrap的样本随机选取
能处理高维特征,且无需降维:来自特征的随机选取
能评估各个特征在分类问题上的重要性:来自决策树
能够获取到内部生成误差的一个无偏估计:由包外估计提供,来源是boostrap
对异常值不敏感:来自boostrap的样本随机选取
能够很好地处理缺省(待探究原因):来自决策树
3… 随机森林的缺点
容易受噪声影响而过拟合:主要是回归时使用均方误差作为损失函数,易受噪声影响是均方误差的通病

你可能感兴趣的:(集成学习-bagging)