bagging和boosting算法(集成学习算法)

一、集成学习简介
  在讲boosting和bagging算法之前,首先需要了解一下集成学习的概念。集成学习是指将若干弱分类器组合之后产生一个强分类器。弱分类器(weak learner)指那些分类准确率只稍好于随机猜测的分类器(error rate < 50%)。如今集成学习有两个流派,一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合,随机森林算法就属于bagging派系;另一个是boosting派系,它的特点是各个弱学习器之间有依赖关系,Adaboost算法就属于boosting派系。在实现集成学习算法时,很重要的一个核心就是如何实现数据的多样性,从而实现弱分类器的多样性。集成学习的思想如下图所示:

这里写图片描述

集成学习有如下的特点:
  (1)将多个分类方法聚集在一起,以提高分类的准确率(这些算法可以是不同的算法,也可以是相同的算法。);
  (2)集成学习法由训练数据构建一组基分类器,然后通过对每个基分类器的预测进行投票来进行分类;
  (3)严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法;
  (4)通常一个集成分类器的分类性能会好于单个分类器;
  (5)如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。
二、bagging算法
2.1、bagging算法思想
  bagging是bootstrap aggregating的缩写。该算法的思想是让学习算法训练多轮,每轮的训练集由从初始的训练集中随机取出的n个训练样本组成,某个初始训练样本在某轮训练集中可以出现多次或根本不出现(即所谓的有放回抽样),训练之后可得到一个预测函数序列h_1,⋯ ⋯h_n ,最终的预测函数H对分类问题采用投票方式,对回归问题采用简单平均方法对新示例进行判别。上面的算法思想可通过下图来进行理解:

这里写图片描述

算法的基本流程为:
  输入为样本集D={(x,y1),(x2,y2),…(xm,ym)}D={(x,y1),(x2,y2),…(xm,ym)},弱学习器算法, 弱分类器迭代次数T。
  输出为最终的强分类器f(x)f(x)
  (1)对于t=1,2…,T:(a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集Dm;(b)用采样集DmDm训练第m个弱学习器Gm(x);
  (2) 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。
2.2、bagging算法案例
  为了更好理解bagging的概念,提供下面一个例子。
X 表示一维属性,Y 表示类标号(1或-1)测试条件:当x<=k时,y=?;当x>k时,y=?;k为最佳分裂点
  下表为属性x对应的唯一正确的y类别。

这里写图片描述

  现在进行5轮随机抽样,结果如下:

这里写图片描述

  每一轮随机抽样后,都生成一个分类器。然后再将五轮分类融合。

这里写图片描述

  对比符号和实际类,我们可以发现:在该例子中,Bagging使得准确率可达90%。由此,总结一下bagging方法:
  (1) Bagging通过降低基分类器的方差,改善了泛化误差;
  (2)其性能依赖于基分类器的稳定性;如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误差;如果稳定,则集成分类器的误差主要由基分类器的偏倚引起;
  (3)由于每个样本被选中的概率相同,因此bagging并不侧重于训练数据集中的任何特定实例。

三、boosting算法
3.1、boosting算法的基本思想
  boosting算法是Adaptive boosting的缩写,是一种迭代算法。每轮迭代中会在训练集上产生一个新的分类器,然后使用该分类器对所有样本进行分类,以评估每个样本的重要性(informative)。
  具体来说,算法会为每个训练样本赋予一个权值。每次用训练完的新分类器标注各个样本,若某个样本点已被分类正确,则将其权值降低,并以该权重进行下一次数据的抽样(抽中的概率减小);若样本点未被正确分类,则提高其权值,并以该权重进行下一次数据的抽样(抽中的概率增大)。权值越高的样本在下一次训练中所占的比重越大,也就是说越难区分的样本在训练过程中会变得越来越重要。 整个迭代过程直到错误率足够小或达到一定次数才停止。

这里写图片描述

3.2、boosting算法的案例
  以下图为例,来说明boosting算法的核心思想:

这里写图片描述

  由图可以发现,boosting算法在迭代的过程中不断加强识别错误样本的学习比重,从而实现最终的强化学习。

四、Bagging和Boosting算法的区别
  (1) bagging的训练集是随机的,各训练集是独立的;而boosting训练集的选择不是独立的,每一次选择的训练集都依赖于上一次学习的结果;
  (2) bagging的每个预测函数都没有权重;而boosting根据每一次训练的训练误差得到该次预测函数的权重;
  (3) bagging的各个预测函数可以并行生成;而boosting只能顺序生成。(对于神经网络这样极为耗时的学习方法,bagging可通过并行训练节省大量时间开销)。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值