一、集成学习简介
  在讲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可通过并行训练节省大量时间开销)。

bagging和boosting算法(集成学习算法)相关推荐

  1. 集成学习算法的思想、通过集成学习提高整体泛化能力的前提条件、如何得到独立的分类器Bagging、Boosting、Stacking算法

    集成学习算法 Ensemble learning algorithm 目的:让机器学习的效果更好,单个的分类器如果表现的好,那么能不能通过使用多个分类器使得分类效果更好呢?或者如果单个分类器分类效果不 ...

  2. 集成学习(Bagging、Boosting、Stacking)算法原理与算法步骤

    集成学习 概述 严格意义上来说,集成学习算法不能算是一种机器学习算法,而像是一种模型优化手段,是一种能在各种机器学习任务上提高准确率的强有力技术.在很多数据挖掘竞赛中,集成学习算法是比赛大杀器,能很好 ...

  3. 机器学习笔记(六)Boosting集成学习算法Adaboost和GBDT

    一.前言 在前一篇文章中我们介绍了集成学习算法中的Bagging模型,本篇文章将继续介绍集成学习算法中的另一个代表性算法Boosting模型.Boosting是一种可将弱学习器提升为强学习器的算法,其 ...

  4. 集成学习-Boosting集成学习算法GBDT

    GBDT算法的核心为:先构造一个(决策)树,然后不断在已有模型和实际样本输出的残差上再构造一颗树,依次迭代. 目录 Decistion Tree(决策树) Gradient Boosting(梯度提升 ...

  5. 机器学习——集成学习算法(Adaboost、随机森林)

    集成算法简述 什么是集成学习 如何得到多个个体学习器 集成学习常用算法 Bagging 自助采样 学习器结合 包外估计 随机森林 Adaboost Boosting Adaboost算法原理 注意 什 ...

  6. 【史诗级干货长文】集成学习算法

    集成学习算法 1. 集成学习算法简介 1.1 什么是集成学习 1.2 复习:机器学习的两个核心任务 1.3 集成学习中boosting和Bagging 1.4 小结 2. Bagging和随机森林 2 ...

  7. 机器学习集成学习算法

    目录 1 集成学习算法简介 1.1 什么是集成学习 1.2 机器学习的两个核心任务 1.3 集成学习中boosting和Bagging 1.4 小结 2 Bagging和随机森林 2.1 Baggin ...

  8. ML之回归预测:利用Lasso、ElasticNet、GBDT等算法构建集成学习算法AvgModelsR对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测(模型评估、模型推理)

    ML之回归预测:利用Lasso.ElasticNet.GBDT等算法构建集成学习算法AvgModelsR对国内某平台上海2020年6月份房价数据集[12+1]进行回归预测(模型评估.模型推理) 目录 ...

  9. Stacking集成学习算法

    由于Blending在集成过程中只会用到验证集的数据,对数据的利用效率低,为了解决这个问题,可以引入交叉验证的方式.Stacking集成学习算法就是基于这个想法. 首先将所有数据分为训练集和测试集,假 ...

最新文章

  1. linux 命令行(给自己看的)
  2. linux 编译C语言代码后产生OBJ文件的方法
  3. 如何使python print输出不换行
  4. C++中对多态的理解
  5. VS2005中单元测试自定义异常的方法
  6. vue中在data中写入img地址 引入问题
  7. 设计企业网站大纲_深圳企业网站设计公司|品牌网站设计【尼高网站设计】
  8. 【python】多进程小结
  9. 几何画板椭圆九种画法_几何画板怎么制作椭圆定义演示动画?
  10. 外国程序员和中国程序员的区别
  11. 22个免费的UI界面设计工具、资源及网站
  12. 想转行it , 培训还是自学?
  13. Css3动画 Qian锋逆战班
  14. Dragon slayer
  15. linux开启并进入Mysql
  16. 随机过程 Brown 运动(下)
  17. 计算机的典型应用及事例,计算机网络典型应用案例精选
  18. H3CNE-rip协议
  19. 12V 电路采用电阻分压,产生 ± 6V的电源
  20. js和css压缩工具 YUI Compressor 在线使用,效果拔群

热门文章

  1. 蓝牙App设计2:使用Android Studio制作一个蓝牙软件(包含:代码实现等)
  2. TD三国赤壁通关攻略与录像下载_正常级别
  3. 三菱PLC若想实现简单CPU通讯,需要具备哪些条件?
  4. WSL2迁移系统盘的docker-desktop和docker-desktop-data到其他盘
  5. html5 css3光晕
  6. core image几个滤镜例子 oc版本和swift版本
  7. css样式大全(总结、心得、css3新特性、盒子居中模型等)
  8. 什么是码?什么是属性?【数据库系统概论】
  9. 攻防世界 Misc 打野 ——zsteg工具安装使用
  10. java 数组定义方法_java中定义数组的方法有哪些