前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据挖掘学习笔记--AdaBoost算法(一)

数据挖掘学习笔记--AdaBoost算法(一)

作者头像
Gxjun
发布2018-03-27 12:10:51
7810
发布2018-03-27 12:10:51
举报
文章被收录于专栏:ml

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

背景:

AdaBoost算法,这个算法思路简单.

正文:

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

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

下AdaBoost算法的具体流程:

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

   1.1 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是归一化函数,将 Z = sqrt( Et(1-Et) );

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

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

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

           5计算accuray:


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

  附录:如果理解了上面流程之后,建议移步去这个地方学习一下,因为对有些公式给予了证明,因为当时证明的时候,

参考的是那儿的,所以直接给出源吧:http://baidutech.blog.51cto.com/4114344/743809/ 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-01-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景:
  • 正文:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档