AdaBoost算法原理及强弱分类器说明
2014-04-12 21:40
183 查看
AdaBoost算法原理:
AdaBoost算法针对不同的训练集训练同一个基本分类器(弱分类器),然后把这些在不同训练集上得到的分类器集合起来,构成一个更强的最终的分类器(强分类器)。理论证明,只要每个弱分类器分类能力比随机猜测要好,当其个数趋向于无穷个数时,强分类器的错误率将趋向于零。AdaBoost算法中不同的训练集是通过调整每个样本对应的权重实现的。最开始的时候,每个样本对应的权重是相同的,在此样本分布下训练出一个基本分类器h1(x)。对于h1(x)错分的样本,则增加其对应样本的权重;而对于正确分类的样本,则降低其权重。这样可以使得错分的样本突出出来,并得到一个新的样本分布。同时,根据错分的情况赋予h1(x)一个权重,表示该基本分类器的重要程度,错分得越少权重越大。在新的样本分布下,再次对基本分类器进行训练,得到基本分类器h2(x)及其权重。依次类推,经过T次这样的循环,就得到了T个基本分类器,以及T个对应的权重。最后把这T个基本分类器按一定权重累加起来,就得到了最终所期望的强分类器。
一个强分类器的产生过程,AdaBoost算法的具体描述如下:
假定X表示样本空间,Y表示样本类别标识集合,假设是二值分类问题,这里限定Y={-1,+1}。令S={(Xi,yi)|i=1,2,…,m}为样本训练集,其中Xi∈X,yi∈Y。
① 始化m个样本的权值,假设样本分布Dt为均匀分布:Dt(i)=1/m,Dt(i)表示在第t轮迭代中赋给样本(xi,yi)的权值。
② 令T表示迭代的次数。
③ For t=1 to T do
根据样本分布Dt,通过对训练集S进行抽样(有回放)产生训练集St。
在训练集St上训练分类器ht。
用分类器ht对原训练集S中的所有样本分类。
得到本轮的分类器ht:X →Y,并且有误差εt=Pri-Di[ht(xi) ≠yi]。
令αt=(1/2)ln[(1-εt)/ εt]。
更新每个样本的权值
,其中,Zt是一个正规因子,用来确保ΣiDt+1(i)=1。
end for
④ 最终的预测输出为:
以上是一个强分类器的产生过程,表现为多个软分类器根据分类效果的票决。
如果需要N个强分类器,可设置不同的检测率和虚警率重复以上过程N次,得到N个强分类器。
将N个强分类器根据检测率和虚警率串联构成级联分类器。
【转载】http://www.cnblogs.com/cvlabs/archive/2010/04/16/1713119.html
【转载】http://blog.csdn.net/hqw7286/article/details/5556156
【转载】http://blog.csdn.net/haidao2009/article/details/7514787
AdaBoost算法针对不同的训练集训练同一个基本分类器(弱分类器),然后把这些在不同训练集上得到的分类器集合起来,构成一个更强的最终的分类器(强分类器)。理论证明,只要每个弱分类器分类能力比随机猜测要好,当其个数趋向于无穷个数时,强分类器的错误率将趋向于零。AdaBoost算法中不同的训练集是通过调整每个样本对应的权重实现的。最开始的时候,每个样本对应的权重是相同的,在此样本分布下训练出一个基本分类器h1(x)。对于h1(x)错分的样本,则增加其对应样本的权重;而对于正确分类的样本,则降低其权重。这样可以使得错分的样本突出出来,并得到一个新的样本分布。同时,根据错分的情况赋予h1(x)一个权重,表示该基本分类器的重要程度,错分得越少权重越大。在新的样本分布下,再次对基本分类器进行训练,得到基本分类器h2(x)及其权重。依次类推,经过T次这样的循环,就得到了T个基本分类器,以及T个对应的权重。最后把这T个基本分类器按一定权重累加起来,就得到了最终所期望的强分类器。
一个强分类器的产生过程,AdaBoost算法的具体描述如下:
假定X表示样本空间,Y表示样本类别标识集合,假设是二值分类问题,这里限定Y={-1,+1}。令S={(Xi,yi)|i=1,2,…,m}为样本训练集,其中Xi∈X,yi∈Y。
① 始化m个样本的权值,假设样本分布Dt为均匀分布:Dt(i)=1/m,Dt(i)表示在第t轮迭代中赋给样本(xi,yi)的权值。
② 令T表示迭代的次数。
③ For t=1 to T do
根据样本分布Dt,通过对训练集S进行抽样(有回放)产生训练集St。
在训练集St上训练分类器ht。
用分类器ht对原训练集S中的所有样本分类。
得到本轮的分类器ht:X →Y,并且有误差εt=Pri-Di[ht(xi) ≠yi]。
令αt=(1/2)ln[(1-εt)/ εt]。
更新每个样本的权值
,其中,Zt是一个正规因子,用来确保ΣiDt+1(i)=1。
end for
④ 最终的预测输出为:
以上是一个强分类器的产生过程,表现为多个软分类器根据分类效果的票决。
如果需要N个强分类器,可设置不同的检测率和虚警率重复以上过程N次,得到N个强分类器。
将N个强分类器根据检测率和虚警率串联构成级联分类器。
【转载】http://www.cnblogs.com/cvlabs/archive/2010/04/16/1713119.html
【转载】http://blog.csdn.net/hqw7286/article/details/5556156
【转载】http://blog.csdn.net/haidao2009/article/details/7514787
相关文章推荐
- 网页正文抽取演示(包含组件下载地址、原理说明文章地址)
- Ajax原理详细说明
- Haar特征、积分图、Adaboost算法、分类器训练
- Ajax原理详细说明
- JNI技术实践小结--原理分析和详细步骤截图说明
- 关于C语言项目编译原理说明
- MessagePack, Protocol Buffers和Thrift序列化框架原理和比较说明
- HTTPS_SSL配置的步骤以及原理说明
- 北斗系统基础知识1(北斗系统定位原理说明“图文详述”)
- 分享一个点击小图切换大图的jquery,并说明一下原理
- pinyin4j原理说明
- DAVINCI开发原理详细说明
- composer安装及使用说明和相关原理文档
- Angular的依赖注入(依赖反转)原理说明
- linux 数据同步 rsync 原理讲解及配置说明
- Adaboost算法原理及实例解析
- Ajax原理详细说明(转自ibm开发者网站)
- 请描述Java中异常处理机制的简单原理和应用,并说明Error与Exception有什么区别?
- 分析运行结果,说明原理。(没有分析结果不得分) import java.util.ArrayList; class Data { int
- 举个小栗子说明溢出漏洞利用原理及其检测原理