【机器学习】Bagging与随机森林原理与算法描述

1.Bagging原理

在介绍Bagging之前,我们首先介绍下自助采样法(Bootstrap sampling)。

自助采样法的原理如下:对给定米个样本的数据集,进行米随机有放回采样,得到含米个样本的采样集,初始训练集中约有63.2%的样本出现在采样集中。

Bagging(Bootstrap aggregating)正是直接基于自助采样法采样出Ť个含米个样本的采样集,然后基于每个采样集分别训练出一个基学习器,再将这些基学习器进行结合。在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法(简单即每个基学习器都使用相同权重的投票平均)。

那么问题来了,为什么要进行自助采样呢?

想要得到泛化能力强的集成,个体学习器应该尽可能“好而不同”。可以简单地将原始数据集分成Ť个子集,用来训练Ť个个体学习器,每个子集各不相同,得到的个体学习器具有较大的差异;但是每个子集只占原始数据集的一小部分,不足以进行有效学习,个体学习器的预测能力差。因此,我们利用自助采样法得到相互有交叠的采样子集用来训练个体学习器,以得到较强的泛化能力。

2.包外估计

由于每个个体学习器都只使用了初始训练集中约63.2%的样本,剩下的样本可用作验证集来对泛化性能进行包外估计(out-of-bag estimate)。

对每个个体学习器H T而言,有36.8%的样本没有用来训练,称为该学习器的包外估计样本。令D_T表示个体学习器H T所使用的训练样本集,{H ^ {oob}} \ left(x \ right)表示对样本X的包外预测。包外估计方法如下:

        1.对数据集d中的每个样本X,计算它作为包外样本的个体学习器对该样本的分类情况;

        2.以简单多数表决方法得到样本X的包外预测结果:

                                           {H^{oob}}\left( x \right) = \mathop {\arg \max }\limits_{y \in \kappa } \sum\limits_{t = 1}^T {I\left( {​{h_t}\left( x \right) = y} \right) \cdot I\left( {x \notin {D_t}} \right)}

        3.最后用所有包外预测不等于真实标记的误分个数占样本总数的比例作为包外估计,则Bagging的泛化误差的包外估计为:

                                           H^{^{oob}} = \frac{1}{​{\left| D \right|}}\sum\limits_{\left( {x,y} \right) \in D} {I\left( {​{H^{oob}}\left( x \right) \ne y} \right)}

3. Bagging算法描述


输入:训练集d,基学习算法\ mathfrak {L},基学习器个数Ť

过程:

        \ begin {array} {* {20} {c}} {for}&{t = 1,2,\ ldots,T}&{do} \ end {array}

                1.采样自助得到含米个样本的采样集{} D_T;

                2.用采样集{} D_T训练第Ť个基学习器{h_t} = {\ mathfrak {L}} \ left({​{D_t}} \ right)

输出:

      H \ left(x \ right)= \ mathop {\ arg \ max} \ limits_ {y \ in \ kappa} \ sum \ limits_ {t = 1} ^ T {I \ left({​{h_t} \ left(x \ right)= y} \ right)}(分类任务)或H \ left(x \ right)= \ frac {1} {T} \ sum \ limits_ {t = 1} ^ T {​{h_t} \ left(x \ right)}(回归任务)。


4.随机森林原理

Bagging主要关注降低方差,因此它在不剪枝决策树,神经网络等易受样本扰动的学习器上效用更为明显,最着名的是随机森林(Random forest)算法。

随机森林(Random forest,RF)是Bagging的一个扩展变体,RF与Bagging的不同之处在于:

        1. Bagging的基学习器不一定是同质的,也不一定是决策树;但RF以CART为基学习器。

        2. RF在训练过程中,引入了随机特征选择。RF在Bagging的数据样本扰动的基础上,增加了输入特征扰动,提高了模型的泛化能力。具体来说,传统决策树在选择划分特征时,在当前结点的特征集合中选择一个最优划分特征;而在RF中,是对基决策树的每个结点,先从该结点的特征集合中随机选择一个含有ķ个特征的子集,然后再从该子集选择最优划分特征。ķ越小,模型越健壮,同时对训练集的拟合程度会变差,也就是说,ķ越小,模型方差越小,偏差越大。

5.随机森林算法描述


输入:训练集d,决策树算法\ mathfrak {L},基学习器个数Ť

过程:

        \ begin {array} {* {20} {c}} {for}&{t = 1,2,\ ldots,T}&{do} \ end {array}

                1.采样自助得到含米个样本的采样集{} D_T;

                2.用采样集{} D_T训练第Ť个基学习器:{h_t} = {\ mathfrak {L}} \ left({​{D_t}} \ right)。并且在模型训练过程中,对决策树模型的每个结点,在结点的特征集合中选择{\ color {Red} k}个特征,再从这些特征中选择最优划分特征来划分子树。

输出:

      H \ left(x \ right)= \ mathop {\ arg \ max} \ limits_ {y \ in \ kappa} \ sum \ limits_ {t = 1} ^ T {I \ left({​{h_t} \ left(x \ right)= y} \ right)}(分类任务)或H \ left(x \ right)= \ frac {1} {T} \ sum \ limits_ {t = 1} ^ T {​{h_t} \ left(x \ right)}(回归任务)。


6.随机森林优缺点

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

随机森林的优点:

        1. 训练可以高度并行化,可以实现在大型数据集上高效运行;

        2. 由于可以随机选择决策树结点的划分特征,因此能够处理具有高维特征的输入样本,而不需要降维;

        3. 能够评估各个特征对预测的重要性;

        4. 由于采用了随机采样和随机特征选择,训练处的模型方差小,泛化能力强;

        5. 对缺失值不敏感,可以处理不平衡数据。

缺点:

        在某些噪音较大的数据集上,易陷入过拟合。

参考文献:

1.《机器学习》第八章集成学习——周志华

2.  Bagging与随机森林算法原理小结

3.  [机器学习与算法]随机森林(随机森林)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值