声明: 这篇笔记是自己对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. CodeForces 617A Elephant

    C语言语法入门题 #include<cstdio> #include<cstring> #include<vector> #include<cmath> ...

  2. 五、Hive

    一.Hive 1.1 Hive简介 1.2 Hive说明 1.3Hive的体系架构 来自为知笔记(Wiz)

  3. Tomcat与Nginx、Apache结合的相关实践

    一.LNMT 简介:在Tomcat服务器前端部署一个Nginx(反向代理),当用户请求静态资源时,由Nginx服务器负责响应:当用户请求java应用程序资源时,由后端的Tomcat服务器进行响应. 环 ...

  4. HTML学习(六)图像

    图像标签(<img>)和源属性(Src)在 HTML 中,图像由 <img> 标签定义.<img> 是空标签,意思是说,它只包含属性,并且没有闭合标签.要在页面上显 ...

  5. mysql 查找重复的数据

    Select Name,Count(*) From A Group By Name Having Count(*) > 1   Name是字段

  6. FMDB事务的使用

    http://blog.csdn.net/qq_29892943/article/details/50541439 首先,说一下事务是什么,比如说我们有一个学生表和一个学生成绩表,而且一个学生对应一个 ...

  7. 对AD域进行定期自动备份设置图解

    今天为大家讲解一下,如何对域进行定期的备份,因为如果域出问题了,在公司里那可就不好玩了啊,对做定期备份,在域出问题的时候可以及时恢复,减少对域重建而浪费大量的时间,同样也耽误公司员工的工作,这样的事情 ...

  8. Codeforces 242E:XOR on Segment(位上的线段树)

    http://codeforces.com/problemset/problem/242/E 题意:给出初始n个数,还有m个操作,操作一种是区间求和,一种是区间xor x. 思路:昨天比赛出的一道类似 ...

  9. 《Web接口开发与自动化测试 -- 基于Python语言》 ---前言

    前    言 本书的原型是我整理一份Django学习文档,从事软件测试工作的这六.七年来,一直有整理学习资料的习惯,这种学习理解再输出的方式对我非常受用,博客和文档是我主要的输出形式,这些输出同时也帮 ...

  10. .NET运行机制

    .NET运行机制   .NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境..NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应 ...