Bagging算法与随机森林

来源:互联网 发布:软件组件 编辑:程序博客网 时间:2024/05/16 16:21

Bagging算法

一、自助采样法

给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采样到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’,这就是自助采样的结果。

显然有一部分样本会在D‘中出现多次,而另一部分样本不出现。样本在m次采样中始终不被采到的概率是:

limm(11m)m=1e=0.368

即通过自助采样法,初始数据集D中约有36.8%的样本未出现在样本数据集D‘中。于是我们可将D’用作训练集,D\D’用作测试集,这种做法简称“包外估计”

二、算法描述

我们可以采样出T个含有m个训练样本的采样集,然后基于每个采样集训练出一个集学习器,在将这些基学习器进行结合。在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个。

算法描述

输入:训练集D={(x1,y1),,(xN,yN)};

​ 基学习算法ξ;

​ 训练轮数T。

过程

for t = 1,2 , … , T do

​ 通过自助采样法得到Dbs

ht=ξ(D,Dbs)

end for

输出: H(x)=argmaxyYTt=1I(ht(x)=y)

三、包外估计

Dt表示ht实际使用的训练样本集,令Hoob(x) 表示对样本x的包外估计,即仅考虑哪些未使用x训练的集学习器在x上的预测

Hoob(x)=argmaxyYt=1TI(ht(x)=y)I(xDt)

则Bagging泛化误差的包外估计为
ϵoob=1|D|(x,y)DI(Hoob(x)y)

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

随机森林

对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含K个属性的子集,然后再从这个子集中选择一个最优属性用于划分。

K控制了随机性的引入程度

  1. 若令K=d,则基决策树的构建与传统决策树相同
  2. 若令K=1,则随机选择一个属性用于划分
  3. 一般情况下推荐值K= log2d .

随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动,这就使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升

0 0
原创粉丝点击