Bagging(引导聚集算法)简述


1 概念

        Bagging算法 (Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法。
        Bagging算法可与其他分类、回归算法结合,提高其准确率、稳定性的同时,通过降低结果的方差,避免过拟合的发生。

  • bootstrap样本:有放回抽样
            有放回抽样是简单随机抽样的操作方式之一。把总体中的抽样单位从 1 至 N 编号, 每抽取一个号码后再将它放回总体。对于任意一次抽取而言,由于总体容量不变,所以 N 个号码被抽中的机会均等。
            这种有放回抽样会有 63.2% 的样本出现在采样集中,而剩下的 36.8% 样本可以作为验证集对模型的泛化性能进行包外估计。当基学习器是决策树时,可以用包外样本来辅助剪枝,还可以用于估计决策树中各结点的后验概率来辅助对零训练样本结点的处理。基学习器是神经网络时,用包外样本来辅助早期停止来减小过拟合。

与此相反,若每抽到一个号码后不再放回,第一次是从 N个单位中机会均等地抽取,而第二次则从所余(N-1) 个单位中机会均等地抽取⋯⋯最后在 N-(N-1)个单位中机会均等地抽取,这种方式称无放回抽样。在样本容量相同的情况下,有放回抽样比无放回抽样的平均数估计的标准误sx大。

  • aggregating:对多个基学习器进行平均

2 原理

        在集成学习中,通常认为Bagging的主要作用是降低方差,而Boosting的主要作用是降低偏差。Boosting能降低偏差很好理解,因为其原理就是将多个弱学习器组合成强学习器。但Bagging为什么能降低方差?

2.1 方差

首先,来看方差的定义:
        设X为随机变量,则方差 V a r ( X ) = E [ ( X − E [ X ] ) 2 ] Var(X) = E[(X-E[X])^2] Var(X)=E[(XE[X])2],表示 X X X与平均值 E [ X ] E[X] E[X]之间差异的平方的期望值,用于刻画 X X X取值的散布程度。

方差有两个重要的性质,后文会用到:

  1. c为常数,则
    V a r ( c X ) = E [ ( c X − E [ c X ] ) 2 ] = c 2 E [ ( X − E [ X ] ) 2 ] = c 2 V a r ( X ) ( 1 ) Var(cX) = E[(cX - E[cX])^2] = c^2E[(X-E[X])^2] = c^2Var(X) \qquad (1) Var(cX)=E[(cXE[cX])2]=c2E[(XE[X])2]=c2Var(X)(1)
  2. 独立随机变量之和的方差等于各变量的方差之和:
    V a r ( X 1 + ⋯ + X n ) = V a r ( X 1 ) + ⋯ + V a r ( X n ) ( 2 ) Var(X_1 + \cdots + X_n) = Var(X_1) + \cdots +Var(X_n) \qquad (2) Var(X1++Xn)=Var(X1)++Var(Xn)(2)

2.2 模型的偏差与方差

        通常对于一个模型而言,比起其在训练集的表现,通常我们更关心其在测试集上的表现,或者说希望了解其泛化性能。偏差-方差分解 (bias-variance decomposition)就是其中的一种重要工具。下图形象地展示了偏差与方差的区别:

在这里插入图片描述

        要理解模型的偏差和方差,首先需要做一个假设 (PRML中称之为“思维实验”,thought experiment)。假设我们有很多个数据集,每个数据集中的样本都是从总体分布 P P P中抽样而得。对于其中一个特定的数据集 D D D,在此数据集上学习算法得到的单模型为 f ( x ; D ) f(x;D) f(x;D)。可以看到对于不同的数据集 D D D,学习到的模型都是不一样的,因此一个学习算法的期望预测为 f ˉ ( x ) = E D [ f ( x ; D ) ] \bar{f}(x)=E_D[f(x;D)] fˉ(x)=ED

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Bagging和Boosting算法都是集成学习(Ensemble Learning)中常用的方法。 Bagging算法是基于Bootstrap采样技术的一种集成学习方法,它通过对原始数据集进行有放回的随机采样,生成多个子数据集,然后在每个子数据集上训练一个基学习器,最终将所有基学习器的结果进行投票或平均得到最终结果。Bagging算法可以有效地降低模型的方差,提高模型的泛化能力。 Boosting算法是一种迭代的集成学习方法,它通过训练一系列的基学习器,每个基学习器都是在前一个基学习器的误差上进行训练,最终将所有基学习器的结果进行加权得到最终结果。Boosting算法可以有效地降低模型的偏差,提高模型的准确率。 总的来说,Bagging算法适用于高方差的模型,而Boosting算法适用于高偏差的模型。 ### 回答2: Bagging和Boosting算法都是机器学习中的集成学习方法,旨在通过结合多个弱模型的预测结果来提高模型的预测性能。下面将分别介绍这两种算法Bagging算法Bagging全称为“Bootstrap Aggregating”,即自助采样聚合算法。它的基本思想是通过随机从数据集中有放回地采样多个样本子集,来训练多个不同的弱模型,最终通过对所有弱模型的预测结果进行平均或投票来得出集成模型的预测结果。这种采样方法可以保证每个模型都获得了与样本总量相等的训练数据,从而避免了测试集的过拟合问题。而且,因为每个模型都是独立地训练的,因此可以并行实现,大大加速了训练过程。常见的Bagging算法有随机森林(Random Forest)等。 Boosting算法:Boosting全称为“Adaptive Boosting”,即自适应提升算法。它的基本思想是通过加权训练多个弱模型,每次训练都会根据前一次的训练结果对数据进行逐步调整,从而不断提高模型的准确性。具体来说,每次训练完一个模型后,根据该模型的预测错误情况,对预测错误的样本进行加权,如果该样本在上一轮的训练中预测错误,那么在下一轮训练中其权重会相应提高。最终权重高的样本会被更关注,从而创造新的模型以更加有效地捕捉指定数据集的信息。最后通过将所有弱模型的结果进行加权求和,得出整体模型的预测结果。常见的Boosting算法有AdaBoost、GBDT(Gradient Boosting Decision Tree)等。 综上,Bagging有样本平等和并行化的优点,可以通过多种算法实现。Boosting则更加致力于错误的样本,而且可以通过梯度下降等方法进一步优化过程。这两种算法都是将弱学习器组合成一个强学习器并提高分类准确度的有效方法,可以通过不同的实现途径和数据集进行实验确认哪一种方法在给定的数据集中具有更高的性能。 ### 回答3: Bagging和Boosting是两种常用的集成学习方法。它们的共同点是将多个分类器集成起来,提高整体预测的准确率。 Bagging(Bootstrap Aggregating)算法是一种基于自助采样的集成学习方法。该算法的基本思想是从原始数据集中采用有放回的抽样方式,生成k个新的数据集,然后使用这些数据集训练k个基学习器。最终的预测结果是所有基学习器预测结果的平均或多数表决。Bagging算法的特点在于能够有效地减少方差,在处理复杂的模型以及存在过拟合的数据集时表现优异。 Boosting算法的核心思想是将若干个弱分类器进行加权集成,形成一个强分类器。boosting算法中各分类器的构建存在依赖性,即后一分类器的构造需要根据前一分类器所分类错误的数据进行训练。其中最著名的算法有Adaboost和Gradient Boosting。其中,Adaboost(Adaptive Boosting)算法特点在于对训练数据中分类错误的样本进行加权,提高这些样本在后续分类器中的优先级,以此来提高整体预测精度;而Gradient Boosting算法则是在每次训练中,通过学习前一次链式模型的损失函数负梯度信息来修正模型预测值。 Bagging和Boosting算法都是一种集成学习方法,但是它们的具体实现方式不同,Bagging采用的是有放回的抽样方式,从原始数据集生成多个数据集,训练多个基学习器,然后综合所有基学习器的预测结果;而Boosting则通过递归训练基分类器来不断提高预测能力。此外,Bagging算法在处理过拟合问题表现更为出色,而Boosting算法则更适合在复杂的数据集上使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值