天天看点

bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)

bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)

一、 什么是集成学习

集成学习是通过构建并结合多个学习器来完成学习任务的一类算法。

根据个体学习器(基学习器)之间是否存在强依赖关系可将集成学习分为两类:

  1. Boosting

个体学习器之间存在强依赖关系,必须串行生成的序列化方法。

2. Bagging

个体学习器之间不存在强依赖关系,可同时生成的并行化方法。

二、 Bagging和Boosting算法族介绍

1、Bagging(Bootstrap AGGregating, 装袋)算法族介绍

Bagging 是一种个体学习器之间不存在强依赖关系,可同时生成的并行式集成学习方法。

(1)Bagging算法原理

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

(a)从原始样本集中抽取训练集。每轮从原始样本集中使用

Bootstraping

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

(b)每次使用一个训练集得到一个模型,

k个训练集共得到k个模型

。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)。

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

Bagging算法流程请参见图1。

bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)

图1 Bagging算法

(2)随机森林(Random Forest, RF)= Bagging + 决策树
bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)

图2 随机森林与bagging的关系

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

bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)

图3 随机森林算法流程

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

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

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

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

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

(3)举例解释随机森林

例题:根据已有的训练集已经生成了对应的随机森林,随机森林如何利用某一个人的年龄(Age)、性别(Gender)、教育情况(Highest Educational Qualification)、工作领域(Industry)以及住宅地(Residence)共5个字段来预测他的收入层次。

收入层次 :

    Band 1: Below $40,000

    Band 2: $40,000 – 150,000

    Band 3: More than $150,000

随机森林中每一棵树都可以看做是一棵CART(分类回归树),这里假设森林中有5棵CART树,总特征个数N=5,我们取m=1(这里假设每个CART树对应一个不同的特征)。

CART 1 : Variable Age
bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)
CART 2 : Variable Gender
bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)
CART 3 : Variable Education
bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)
CART 4 : Variable Residence
bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)
CART 5 : Variable Industry
bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)

我们要预测的某个人的信息如下:

  1. Age : 35 years ; 2. Gender : Male ; 3. Highest Educational Qualification : Diploma holder; 4. Industry : Manufacturing; 5. Residence : Metro.

  根据这五棵CART树的分类结果,我们可以针对这个人的信息建立收入层次的分布情况:

bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)

结论:根据以上分析,这个人的收入层次70%是一等,大约24%为二等,6%为三等,所以最终认定该人属于一等收入层次(小于$40,000)。

(4)代码实现随机森林(使用sklearn实现)
bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)

感谢阅读,下一篇将给大家介绍Boosting算法族,希望继续关注。