声明: 这篇笔记是自己对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. Mac下eclipse导入其他工程中文注释出现乱码解决方案

    因为用的是mac版的eclipse,导入其他工程注释出现乱码的情况,找了网上的很多方法,大部分都是说的workspace,在这里修改,但是我修改之后还是乱码,最后发现这样一个方法,才得以解决. 点击 ...

  2. ionic中将service中异步返回的数据赋值给controller的$scope

    1.service中异步获取数据实例 angular.module('starter.services', []) .factory('Chats', function($http,$q) {//定义 ...

  3. MAC 调整Launchpad 图标大小

    1.调整每一列显示图标数量 defaults write com.apple.dock springboard-rows -int 7 2.调整每一行显示图标数量 defaults write com ...

  4. 转 java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException

    转自:http://blog.csdn.net/zb0567/article/details/7893063 java.lang.ClassNotFoundException: org.apache. ...

  5. Sencha Cmd的简介

    Sencha Cmd的简介 ~~~~~~~~~~~~~~~~~~~~~~~ Sencha cmd 是一个跨平台的命令行工具,它从你应用程序的新创建到部署入产品中的整个生命周期都提供了许多自动化的执行任 ...

  6. div无法跟随内容的增加而拉伸

    有时将 div 的 height 设置为 auto 后,仍然无法让 div 自动拉伸,发现是 display:block 的原因,将其设置为 inline-block 即可.

  7. STM32 驱动1602液晶

    利用STM32f103c8t6单片机驱动1602A液晶进行显示功能 上图即为写入信息后的效果图 本人用的是STM32的核心系统,无任何外设 库函数:3.5版本的库函数 驱动模式:采用4线驱动模式 供电 ...

  8. log4j的用法

    1.导入 2.在src下新建log4j.properties,内容如下 log4j.rootLogger=DEBUG, A1 ,R log4j.appender.A1=org.apache.log4j ...

  9. MVC笔记2:mvc+jquery.validate.js 进行前端验证

    1.引用如下js和css 代码 <link href="@Url.Content("~/Content/Site.css")" rel="sty ...

  10. GB和GBDT 算法流程及分析

    1.优化模型的两种策略: 1)基于残差的方法 残差其实就是真实值和预测值之间的差值,在学习的过程中,首先学习一颗回归树,然后将“真实值-预测值”得到残差,再把残差作为一个学习目标,学习下一棵回归树,依 ...