Boosting

boosting和bagging很类似,所使用的多个分类器类型都是一致的。另外,他们的主要区别点如下:

boosting中不同的分类器是通过串行得到的,每个分类器都是根据已经训练出来的分类器的性能来进行训练。 bagging中不同的分类器之前是没有影响的。

boosting最终的分类结果是各个基本分类器的加权得到,bagging分类器的权重是相等的。

boosting不改变所给的训练数据,只是改变所给训练数据的一个权值的分布。

Boosting的主要版本:AdaBoost, GBDT

接下来就介绍一下AdaBoost:

Ada Boost是一个Linear Aggregation的例子。是对分类错误的example权重提高,一步一步的得到不同的弱分类器,最后融合这些分类器的算法。

从样本中有放回抽样得到每次的训练集,以u纪录出现的次数。

在原始数据集上来看,就相当于是对不同的样本错误采取加权来计算Ein,当前g就是寻找这些加权后的最小Ein,现在我换一种思路,不再是每次放回抽样,然后怎样怎样,而是:

我现在有了g1,g1在一些样本上分类错误,在另一些样本上分类正确,我要怎么由g1得到g2呢?

由于我们希望不同的g差别很大,所以我们希望在新样本上,g1的表现很差,什么叫表现很差呢?就是和你随便猜的表现差不多,

也就是在 u(t + 1)上g1一半分错,一半分对。

所以就可以由之前的数据,进行“加权”得到新的数据进行训练得到g2。

假设之前的错误率为 r,那么正确分类的数据就要乘以 r,错误分类的数据就要乘以(1 - r)

定义方块t:

也就是说,如果这次分对了,那么权重就乘以方块t,分错了就除以方块t。这样对于错误率小于1/2的弱分类器,方块t就会大于1,错误的数据的权重就会得到加强。

好了,有了以上的描述,那么接下来就正式一点的来理一理这个算法Ada boost.

就是首先因为是平方误差,所以初始化权重u为1/N,然后每次就是在数据上找一个g,这基于 min Ein.然后由分类数据的对错确定数据之后的一个权重。

得到新数据之后再训练得到g2,然后得到新权重,然后。。。鸡生蛋,蛋生鸡,子子孙孙无穷尽也。。。

这其中,不能再使用uniform aggregation了,因为你第一次好的数据,在第二次差到极致,你这么组合有意思么?所以,这里采用Linear aggregation。而且这里的权重为ln(方块t)

所以,我们的AdaBoost只要搭配一个弱弱的演算法就好了,那么现在就介绍一个弱弱的演算法Decision Stump

就看单一的feature,在里面决定你要切在哪里,哪边为正,哪边为负。那么我们可以搜索所有参数的组合,得到最好的Decision Stump

物理上看,就比如一个二维的。每次只能切水平刀,竖直刀。

对于权重和更新参数的另一种更新规则,统计学习方法教材上有更详细的描述,而且我觉得那种更新方法似乎更有道理。

Adaboost优缺点:

优点:分类时,分类精度高

    弱分类器好选择

    构造简单,结果可理解

    不容易产生过拟合

缺点:对异常值明感

Adaptive Boosting的更多相关文章

  1. 机器学习技法:08 Adaptive Boosting

    Roadmap Motivation of Boosting Diversity by Re-weighting Adaptive Boosting Algorithm Adaptive Boosti ...

  2. 机器学习技法笔记:08 Adaptive Boosting

    Roadmap Motivation of Boosting Diversity by Re-weighting Adaptive Boosting Algorithm Adaptive Boosti ...

  3. 随机森林(Random Forest),决策树,bagging, boosting(Adaptive Boosting,GBDT)

    http://www.cnblogs.com/maybe2030/p/4585705.html 阅读目录 1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 ...

  4. 机器学习技法总结(五)Adaptive Boosting, AdaBoost-Stump,决策树

    上一讲主要利用不同模型计算出来的g.採用aggregation来实现更好的g.假设还没有做出来g.我们能够採用bootstrap的方法来做出一系列的"diversity"的data ...

  5. 自适应增强(Adaptive Boosting)

    简介 AdaBoost,是英文”Adaptive Boosting“(自适应增强)的缩写,是一种迭代提升算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成 ...

  6. 一步一步理解AdaBoosting(Adaptive Boosting)算法

    最近学习<西瓜书>的集成学习之Boosting算法,看了一个很好的例子(https://zhuanlan.zhihu.com/p/27126737),为了方便以后理解,现在更详细描述一下步 ...

  7. aggregation(2):adaptive Boosting (AdaBoost)

    给你这些水果图片,告诉你哪些是苹果.那么现在,让你总结一下哪些是苹果? 1)苹果都是圆的.我们发现,有些苹果不是圆的.有些水果是圆的但不是苹果, 2)其中到这些违反"苹果都是圆的" ...

  8. 【Adaptive Boosting】林轩田机器学习技法

    首先用一个形象的例子来说明AdaBoost的过程: 1. 每次产生一个弱的分类器,把本轮错的样本增加权重丢入下一轮 2. 下一轮对上一轮分错的样本再加重学习,获得另一个弱分类器 经过T轮之后,学得了T ...

  9. 转载:bootstrap, boosting, bagging 几种方法的联系

    转:http://blog.csdn.net/jlei_apple/article/details/8168856 这两天在看关于boosting算法时,看到一篇不错的文章讲bootstrap, ja ...

随机推荐

  1. CentOS 6\7修改主机名

    1.CentOS6修改主机名 1)临时修改主机名: 显示主机名: oracle@localhost:~$ hostname localhost 修改 oracle@localhost:~$ sudo ...

  2. 设有三个进程A、B、C,其中A与B构成一对生产者与消费者(A为生产者,B为消费者),共享一个由n个缓冲块组成的缓冲池;B与C也构成一对生产者与消费者(此时B为生产者,C为消费者)共享另一个由m个缓冲块组成的缓冲池。用P、V操作描述它们之间的同步关系。

    生产者消费者问题 设信号量mutex1, mutex2, full1, full2, empty1, empty2分别表示1和2号缓冲区的访问互斥, 是否满, 是否空 semaphore mutex1 ...

  3. MAC os x 系统java开发环境搭建教程

    https://jingyan.baidu.com/article/3d69c55147a3baf0cf02d7ca.html

  4. SWFUpload 参数详解

    属性   类型 默认值 描述 upload_url String 处理上传文件的服务器端页面的url地址,可以是绝对地址,也可以是相对地址,当为相对地址时相对的是当前代码所在的文档地址 preserv ...

  5. atoi简析

    原文链接 atoi()函数的功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将 ...

  6. python第一章练习题

    本章总节 练习题 1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释 编译型:把源代码编译成机器语言的可执行文件,程序执行的时候执行可执行文件即可. 优点:程序执行不 ...

  7. jquery 筛选元素 (3)

    .addBack() 添加堆栈中元素集合到当前集合中,一个选择性的过滤选择器. .addBack([selector]) selector 一个字符串,其中包括一个选择器表达式,匹配当前元素集合,不包 ...

  8. 继续分享shell 之变量使用

    变量类型 运行shell时,会同时存在三种变量: 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量. 2) 环境变量 所有的程序,包括 ...

  9. Windows Server 2012 搭建DHCP及远程路由访问

    1.1    基础环境信息 1.2    DHCP与远程访问服务器角色安装 1.服务器管理器—>仪表板—>添加角色和功能,出现添加角色和功能向导,点击下一步 2.选择安装类型为基于角色或基 ...

  10. 【Ecshop】商品数据采集扩展

    一个自用的Ecshop商品数据采集程序 ->到此下载