声明: 这篇笔记是自己对AdaBoost原理的一些理解,如果有错,还望指正,俯谢~

背景:

AdaBoost算法,这个算法思路简单,但是论文真是各种晦涩啊~,以下是自己看了A Short Introduction to Boosting和PRML的一些笔记. 摔~ 

正文:

  AdaBoost算法,是一种组合算法(通过多个弱分类器,组合成一个强分类器):

关于AdaBoost算法的流程,简单的描述,我们以A Short Introduction to Boosting中提到的用AdaBoosting进行二分类来描述一下AdaBoost算法的具体流程:

  1, 不放假设给定要训练的数据包含下面三个信息data{weight,value,values[num]}; 注意:num表示的分类的数目,这里num=2;

   然后data也是一个大小N的数组,我们这里假定有T个弱分类器(T的大小需要自定义,原则上越大越好,但是T了会有性能问题,需要主观把握一下),其中value,values中的值取值范围在{-1,+1}之间取舍.

  2, 初始化data数组中的weight=1/N;

3,  for t = 1,...,T;

    3.1使用第t个弱分类器对数据data进行分类,然后得到分类的数组ht:X -> {-1,+1};

    3.2 统计分类错误率:  E=表示错误率,errorNum表示样本分类错误的个数,totalNum表示总样本数.

    3.3 计算a的值,并保存在数组中,计算公式: Et为上面计算所得的错误率,一般要求错误率不要低于1/2

    3.4   更新数据data中的权重weight

         for i=1 , ...., N ;

         if ht(xi) == data[i].value:

            

else

            

    注:Zt代码

3.5 data中的权重weight更新完成之后,t=t+1,重新将新的权重的data交给下一个弱分类器进行分类,重复3~3.5;

最后将得到的at  , ht(x),进行累成,

    4 for i=1 , ..... , N ;

        

5.1计算accuray:

         

 以上就是整个Adaboost原理的详细流程,更加形象的流程图,出自依据PRML;

           

如果理解了上面流程之后,建议移步去这个地方学习一下,因为总结的比较到位,所以就直接给出地址,去哪儿看吧~;

  http://baidutech.blog.51cto.com/4114344/743809/

数据挖掘学习笔记--AdaBoost算法(一)的更多相关文章

  1. 集成学习值Adaboost算法原理和代码小结(转载)

    在集成学习原理小结中,我们讲到了集成学习按照个体学习器之间是否存在依赖关系可以分为两类: 第一个是个体学习器之间存在强依赖关系: 另一类是个体学习器之间不存在强依赖关系. 前者的代表算法就是提升(bo ...

  2. [ML学习笔记] XGBoost算法

    [ML学习笔记] XGBoost算法 回归树 决策树可用于分类和回归,分类的结果是离散值(类别),回归的结果是连续值(数值),但本质都是特征(feature)到结果/标签(label)之间的映射. 这 ...

  3. 集成学习之Adaboost算法原理小结

    在集成学习原理小结中,我们讲到了集成学习按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,另一类是个体学习器之间不存在强依赖关系.前者的代表算法就是是boostin ...

  4. 学习笔记 - Manacher算法

    Manacher算法 - 学习笔记 是从最近Codeforces的一场比赛了解到这个算法的~ 非常新奇,毕竟是第一次听说 \(O(n)\) 的回文串算法 我在 vjudge 上开了一个[练习],有兴趣 ...

  5. 集成学习之Adaboost算法原理

    在boosting系列算法中,Adaboost是最著名的算法之一.Adaboost既可以用作分类,也可以用作回归. 1. boosting算法基本原理 集成学习原理中,boosting系列算法的思想:

  6. 学习笔记——EM算法

    EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(expectation):M步,求 ...

  7. 学习笔记-KMP算法

    按照学习计划和TimeMachine学长的推荐,学习了一下KMP算法. 昨晚晚自习下课前粗略的看了看,发现根本理解不了高端的next数组啊有木有,不过好在在今天系统的学习了之后感觉是有很大提升的了,起 ...

  8. Java学习笔记——排序算法之快速排序

    会当凌绝顶,一览众山小. --望岳 如果说有哪个排序算法不能不会,那就是快速排序(Quick Sort)了 快速排序简单而高效,是最适合学习的进阶排序算法. 直接上代码: public class Q ...

  9. 数据挖掘学习笔记:挖掘频繁模式、关联和相关[ZZ]

    所 谓挖掘频繁模式,关联和相关,即指在出现的数据集中找到一个经常出现的序列模式或者是一个经常出现的数据结构.就像搞CPU设计的人知道,Cache的预 取机制有流预取和指针预取,前者就是发现流模式,即发 ...

随机推荐

  1. Mysql基于GTID主从复制

    Mysql5.6基于GTID全局事务的复制 什么是GTID?   GTID(Global Transaction Identifiers)是全局事务标识 当使用GTIDS时,在主上提交的每一个事务都会 ...

  2. 从客户端检测到有潜在危险的 Reque

    web.config里面加上<httpRuntime requestValidationMode="2.0" />如下<system.web><htt ...

  3. hibernate--一对多 多对一 双向关联 (重点!!!)

    一方 group: package com.bjsxt.hibernate; import java.util.HashSet; import java.util.Set; import javax. ...

  4. 自动化运维 Ansible

    自动化运维 Ansible 特性 (1).no agents:不需要在被管控主机上安装任何客户端: (2).no server:无服务器端,使用时直接运行命令即可: (3).modules in an ...

  5. 五、pig学习

    一.什么是pig 1.pig和sql.map-reduce的关系 来自为知笔记(Wiz)

  6. 17、手把手教你Extjs5(十七)模块的新增、修改、删除操作

    上节在Grid展示时做了一个金额单位可以手工选择的功能,如果你要加入其他功能,也只要按照这个模式来操作就行了,比如说你想改变金额字段的颜色.小数位数.零值是否显示.货币符号.单位显示在标题栏或者跟在金 ...

  7. HTML5语义化标签重构页面

    在HTML5未出现之前我们都用div+css来构建页面,比如<div id=”header”>,div的滥用,使得代码的可读性和可维护性很差,现在用本文来介绍一下用HTML5′干净的’语义 ...

  8. 关于ios 推送功能的终极解决

    刚刚做了一个使用推送功能的应用 遇到了一些问题整的很郁闷 搞了两天总算是弄明白了 特此分享给大家 本帖 主要是针对产品发布版本的一些问题 综合了网上一些资料根据自己实践写的 不过测试也可以看看 首先要 ...

  9. uCOS-iii 中定义的一些常量

    uCOS-iii 中定义的一些常量 uCOS-iii 中有许多宏定义的量,这些量不需要全部记住是什么意思,因为在阅读代码的时候可以选中变量或宏定义然后右键查看定义,就可以知道它代表的什么意思.但是如果 ...

  10. PHP上传文件大小的修改

    采用了plupload来上传文件,但是一直失败. 设置了插件的参数和接受的参数,仍旧失败. 此时想到php.ini中需要修改 post_max_sizeupload_file_size 然后重启服务器