bagging,boosting,adboost,random forests都属于集成学习范畴.

在boosting算法产生之前,还出现过两种比较重要的算法,即boostrapping方法和bagging方法。首先介绍一下这二个算法思路:

1.     从整体样本集合中,抽样n* < N个样本针对抽样的集合训练分类器Ci ,抽样的方法有很多,例如放回抽样,不放回抽样等.

2.     对于预测样本, 众多分类器进行投票,最终的结果是分类器投票的优胜结果.

以上就是bagging的主要思想.但是,上述这两种方法,都只是将分类器进行简单的组合,实际上,并没有发挥出分类器组合的威力来。到1989年,Yoav Freund与 Robert Schapire提出了一种可行的将弱分类器组合为强分类器的方法。即boosting算法. 还有1995年,Freund and schapire提出了现在的adaboost算法:http://www.cnblogs.com/liqizhou/archive/2012/04/23/2466578.html.

以下参考别人写的boosting方法,加上自己的一点体会.

Boosting方法:

Boosting这其实思想相当的简单,大概是,对一份数据,建立M个模型(比如分类),一般这种模型比较简单,称为弱分类器(weak learner)每次分类都将上一次分错的数据权重提高一点再进行分类,这样最终得到的分类器在测试数据与训练数据上都可以得到比较好的成绩。

上图(图片来自prml p660)就是一个Boosting的过程,绿色的线表示目前取得的模型(模型是由前m次得到的模型合并得到的),虚线表示当前这次模型。每次分类的时候,会更关注分错的数据,上图中,红色和蓝色的点就是数据,点越大表示权重越高,看看右下角的图片,当m=150的时候,获取的模型已经几乎能够将红色和蓝色的点区分开了。

Boosting可以用下面的公式来表示:

训练集中一共有n个点,我们可以为里面的每一个点赋上一个权重Wi(0 <= i < n),表示这个点的重要程度,通过依次训练模型的过程,我们对点的权重进行修正,如果分类正确了,权重降低,如果分类错了,则权重提高,初始的时候,权重都是一样的。上图中绿色的线就是表示依次训练模型,可以想象得到,程序越往后执行,训练出的模型就越会在意那些容易分错(权重高)的点。当全部的程序执行完后,会得到M个模型,分别对应上图的y1(x)…yM(x),通过加权的方式组合成一个最终的模型YM(x)。

我觉得Boosting更像是一个人学习的过程,开始学一样东西的时候,会去做一些习题,但是常常连一些简单的题目都会弄错,但是越到后面,简单的题目已经难不倒他了,就会去做更复杂的题目,等到他做了很多的题目后,不管是难题还是简单的题都可以解决掉了。

算法的流程:

1.     给每个样本都赋予一个权重,可以使随机,也可以使相等的权重.

2.     按照样本权重从大到小的顺序,选择n个样本训练弱分类器Ci.

3.     在样本预测阶段, 多个分类器进行投票决定样本数据那种分类.

Online Boosting

在线 Boosting 算法重点研究如何替换弱分类器来学习时变的样本集,本文提出了一种新的在线 Boosting 算法,各弱学习器调节自身参数进而适应时变的环境。与以往直接替换学习器的方式不同,该方法随着新的样本集的到来调节弱分类器的参数,使分类正确率高的弱分类器有较高的权重,而分类正确率低的弱分类器的权重也会相应降低。

下面讲一下Poisson重采样
对每一训练样本,按照参数为 λ 的 Poisson分布得到一个随机数,对样本重复训练该随机数次。一个基学习器训练完毕之后将该样本继续传递给下一个基学习器。当一个基学习器误分类一个训练样本,该样本在提交给下一个基学习器时,其对应的 Poisson 分布参数 λ 增加;反之样本对应的 Poisson分布参数减少,并通过这些来更新每个基学习器的误差 ε 。从这个角度,训练样本的权重更新方法和离线 AdaBoost 相同。

其流程如下:

其中:λm 的作用是控制整个基分类器的误差,因为在线进来的不知一个样本。有很多样本。

下面给出online boosting 和online adboosting的思路。

在目标图像的目标物体附近选择正样本,离目标物体远的区域作为负样本。

OAB1 = 在线boosting(搜索半径r=1,每帧1个正样本)
OAB5 = 在线boosting(搜索半径r=5,每帧45个正样本)

以上内容是自己在网络上看到的,呵呵,和大家分享一下.....

Boosting, Online Boosting,adaboost相关推荐

  1. [机器学习] Boosting算法1 --- AdaBoost

    [机器学习] Boosting算法1 --- AdaBoost [机器学习] Boosting算法2 --- GBDT [机器学习] Boosting算法3 --- XGBoost [机器学习] Bo ...

  2. 机器学习算法总结之Boosting:Boosting Tree、GBDT

    写在前面 上一篇 机器学习算法总结之Boosting family:AdaBoost 提到Boost但是没说它的整个框架及分类,在这里记一下. Boosting(提升方法) = 加法模型 + 前向分步 ...

  3. 大白话5分钟带你走进人工智能-第30节集成学习之Boosting方式和Adaboost

    目录 1.前述: 2.Bosting方式介绍: 3.Adaboost例子: 4.adaboost整体流程: 5.待解决问题: 6.解决第一个问题:如何获得不同的g(x): 6.1 我们看下权重与函数的 ...

  4. 【机器学习】boosting集成学习Adaboost

    一.什么是Adaboost AdaBoost,是英文"Adaptive Boosting"(自适应增强)的缩写,由Yoav Freund和Robert Schapire在1995年 ...

  5. Bagging与Boosting算法的原理与区别,Boosting算法之一Adaboost原理与代码实现

    1. Bagging和Boosting的原理与区别 在讲解Boosting之前,必须提一下Bagging算法.两者作为机器学习中集成学习的主要算法,其思想是必须理解和掌握的.总的来说Bagging和B ...

  6. Boosting算法和Adaboost算法的关系

    1990年,SChapire就首先构造出一种多项式级的算法,将弱学习算法提升为强学习算法,就是最初的Boosting算法.Boosting意思为提升.加强,现在一般指将弱学习提升为强学习的一类算法. ...

  7. Boosting实例(AdaBoost)

    #读取数据 import pandas as pd data=pd.read_csv('/data/train.csv') data.head()#提取特征值和标签值 X=data.iloc[:,:- ...

  8. 机器学习两大利器:Boosting 与 AdaBoost

    本文经机器之心(almosthuman2014) 授权转载,禁止二次转载 在 Kaggle 及其它机器学习任务中,集成方法非常流行,不论是 还是随机森林,它们都强大无比.而本文作者从最基础的 Boos ...

  9. 【李宏毅2020 ML/DL】补充:Ensemble: Bagging, Boosting, Adaboost, Gradient Boosting, Stacking

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.在另一个UP主上传的2017课程BV13x411v7U ...

最新文章

  1. linux open 缓冲区,Linux上文件的默认缓冲区大小
  2. AWS 日本出现大规模故障
  3. 上证指数30年k线图_技术预判2020:上证指数要突破3500点才会“井喷”
  4. 现代办公通讯手段对比分析
  5. 由汉诺塔引起的对递归的思考
  6. 来了!PostgreSQL 同步流复制原理和代码浅析,请签收
  7. 实践GoF的23的设计模式:SOLID原则(下)
  8. 【网页素材】数据图表界面设计UI设计PSD模板
  9. KVM virtio bug整理
  10. java让文件隐藏文件_使用java8API遍历过滤文件目录及子目录及隐藏文件
  11. Ajax程序设计入门
  12. PyTorch-GPU版本、Tensorflow-GPU版本配置
  13. 各国的 电视制式 度量衡 电压
  14. 关于指针总结(指针种类,概念,作用与用途)
  15. 在校园网中进行无线路由器设置
  16. PyTorch nn.CrossEntropyLoss() dimension out of range (expected to be in range of [-1, 0], but got 1)
  17. vue2 项目启动一直卡在98%Starting development server...98% after emitting CopyPlugin
  18. 关于uni-app隐藏安卓虚拟键
  19. Random Projection 随机投影法
  20. 每日一题 极限值为5201314

热门文章

  1. 企业公众号文章写作方向要从这几个方面着手
  2. Debian虚拟机安装常用软件
  3. python key=lambda函数_使用’key’和lambda表达式的python max函数
  4. L1、L2、smooth L1三类损失函数
  5. OpenSSL公钥 私钥 RSA
  6. 有关ucenter同步的原理(个人总结的一点浅薄见解)
  7. python求多叉树任意两点之间的距离
  8. Java虚拟机:Java虚拟机编译器
  9. lt;#37;= %、lt;#37; %、lt;#37;@ %、lt;#37;:%和lt;#37;# %的区别
  10. 【DS】三分钟带你学会时间(空间)复杂度