学习记录——Boosting算法

Boosting算法

Boosting的基本思想很简单,就是"三个臭皮匠顶个诸葛亮"。将若干个弱分类器(base Learner)组合起来,变成一个强分类器。

Adaboost算法及分析

1995年,Freund  and schapire 提出了现在的Adaboost算法,其主要框架可以描述为:
(1)循环多次迭代
 更新样本分布
 寻找当前分布下的最优弱分类器
 计算弱分类器误差率
(2)聚合多次训练的弱分类器
现在,随着boost算法的发展,出现了很多其他的boost算法,例如:logitboost算法,gentleboost算法等等。

完整的Adaboost算法




Adaboost算法及分析

   Adaboost算法可总结:
(1)每次迭代改变的是样本的分布,而不是重复采样
(2)样本分布的改变取决于样本是否被正确分类
总是分类正确的样本权值低
总是分类错误的样本权值高(通常是边界附近的样本)
(3)最终的结果是弱分类器的加权组合
权值表示该弱分类器的性能
 Adaboost的优点:
(1)Adaboost是一种很高精度的分类器
(2)可以使用各种方法构建子分类器,Adaboost算法提供的是框架
(3)当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单
(4)简单,不用做特征筛选
(5)不用担心过度拟合(过拟合的现象指的是,随着模型训练误差的下降,模型的泛化误差(测试误差)在上升。对于Adaboost算法,
当训练误差小到一定程度以后,继续训练,泛化误差仍然不会增加。)
总之:Adaboost是简单,有效。

简单例子体现Adaboost实现过程


 图中,“+”和“-”分别表示两种类别,在这个过程中,我们使用水平或者垂直的直线作为分类器,来进行分类。
第一步:
        
 根据分类的正确率,得到一个新的样本分布D2,一个子分类器h1
 其中划圈的样本表示被分错的。在右边的图中,比较大的“+”表示对该样本做了加权。
第二步:
          
  根据分类的正确率,得到一个新的样本分布D3,一个子分类器h2
第三步:
           
  得到一个子分类器h3
整合所有子分类器:

  因此可以得到整合的结果,从结果中看,即使简单的分类器,组合起来也能获得很好的分类效果。

为什么每次迭代都要把分错的点的权值变大呢?

这样有什么好处?不这样不行吗?
注意到算法最后的表达式为
      这里面的a表示的权值,是由得到的。
而a是关于误差的表达式。所有的一切都指向误差
提高错误点的权值,当下一次分类器再次分错了这些点之后,会提高整体的错误率,这样就导致a变的很小,最终导致这个分类器在整个混合分类器
的权值变低。也就是说,这个算法让优秀的分类器占整体的权值更高,而差得分类器权值更低。

Adaboost算法应用

    目前广泛应用于人脸检测、目标识别等领域。其中有人脸识别、汽车识别、驾驶员识别的方面的应用和研究。

总结:

算法的流程:
1.给每个样本都赋予一个权重,可以是随机,也可以是相等的权重
2.按照样本权重从大到小的顺序,选择n个样本训练弱分类器Ci
3.在样本预测阶段,多个分类器进行投票决定样本数据哪种分类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值