zoukankan      html  css  js  c++  java
  • 集成学习---bagging and boosting

    作为集成学习的二个方法,其实bagging和boosting的实现比较容易理解,但是理论证明比较费力。下面首先介绍这两种方法。

    所谓的集成学习,就是用多重或多个弱分类器结合为一个强分类器,从而达到提升分类方法效果。严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法。

    1.bagging

    bagging算是很基础的集成学习的方法,他的提出是为了增强分类器效果,但是在处理不平衡问题上却有很好的效果。


     

    如上图,原始数据集通过T次随机采样,得到T个与原始数据集相同大小的子数据集,分别训练得到T个弱分类器Classifier,然后结合为一个强分类器。

    以下给出随机采样的概率解释及效果分析:

    采用的是概率论里面的booststrap思想,由于小样本估计的不准确性,再加上现代计算性能的提升,可以用重复的计算提升小样本的精度。

    原始小样本不能正确反映数据的真实分布,用T次随机采样拟合真实分布。

    下式为L次分类得到的强分类器等于L次估计的期望:


    下式为真实的y与每个弱分类器之间的差异,展开后得到右边:


    下式表示,最后得到弱分类器的差异会大于统计平均得到的强分类器的差异,简而言之就是通过强分类,更好地拟合了。


    上面得到的结果就是,如果原始数据为真实分布的前提下,用bagging集成分类器,始终是能提升效果的,提升的效果取决于分类器的稳定性,稳定性越差,提升的效果越高。如神经网络这样的不稳定分类器。

    当然,上面假设是数据接近真实分布,然后在概率[1/N,1/N,.....1/N]下重采样。

    如果训练数据不是真实分布,那么bagging的效果也可能比非bagging更差。

    接下来是如何把L个弱分类器集成为强分类器:

    最简单的方法就是投票法(vote)。对于一个测试样本,通过L个弱分类器得到L个类别信息,这些信息投票产生最后的类别。如L=10,分类结果分别为:[3,3,3,3,5,5,6,7,1,8.]

    那么这个样本就属于3.


    2.boosting

    类似于bagging集成学习,boosting也是通过重采样得到多个弱分类器,最后得到一个强分类器。区别是boosting是基于权值的弱分类器集成。


     

    上面为boosting的流程图,简要概括如下:

    1.e表示某个弱分类器的错误分类率,计算用来作为这个分类器的可信度权值a,以及更新样本权值D。

    2.D表示原始数据的权值矩阵。刚开始每个样本的采样概率都一样,为1/m。在某个弱分类器分类时,分类错误或对,则D就会根据e相应地增加或减少,使分类器更多的关注上次错分的样本。

    3.α为弱分类器的可信度,bagging中隐含的α为1,boosting中,根据每个弱分类器的表现(e较低),决定这个分类器的结果在总的结果中所占的权重,分类准的自然占较多的权重。

    最后根据可信度α,以及各个弱分类器的估计h(x),得到最后的结果。


    如上图为boosting的流程图,主要为两个部分,更新样本权值D和计算分类器权重α,前者使得原来分错的样本再下一个分类器中能够更可能分类正确;后者根据分类器的表现,赋予不同弱分类器不同权值,最后得到一个加权的强分类器。

    boosting概率上的效果证明这里略去,只引出一个结论,不断地迭代更新能使得最终的结果无限接近最优分类,不过boosting会倾向于一直分错的样本,如果样本中有离群的错误样本,boosting就会出现效果不好的情况。

    总结上面讨论了两个集成学习的方法,bagging和boosting,boosting有点像bagging的改进版本,加入了权值采样和权重强分类的概念。都是通过重采样和弱分类器融合实现的方法。

  • 相关阅读:
    Java零基础学习(四)JSP与Servlet
    Java零基础学习(三)封装继承多态
    vsftpd+nginx搭建图片服务器的一些问题
    1003. 我要通过!(20)(两种语言的运行时间差异)
    acm 1108 java做法
    acm 2020 用java实现
    acm 2519 java做法
    acm 2040 java做法
    acm 2003 java做法
    acm 2041 java的做法
  • 原文地址:https://www.cnblogs.com/riskyer/p/3292182.html
Copyright © 2011-2022 走看看