zoukankan      html  css  js  c++  java
  • 集成学习—boosting和bagging

    集成~bagging~权值~组合~抽样~样例~基本~并行

    一、简介

     集成学习通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能

     根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类

      个体学习器间存在强依赖关系、必须串行生成的序列化方法

      个体学习器间不存在强依赖关系、可同时生成的并行化方法

     前者的代表是Boosting,后者的代表是Bagging和“随机森林”

    二、bagging与boosting的概念及区别

     首先介绍Bootstraping,即自助法:它是一种有放回的抽样方法(可能抽到重复的样本)

     1、Bagging (bootstrap aggregating)

      Bagging即套袋法,其算法过程如下:

       A)从原始样本集中抽取训练集,每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中),共进行k轮抽取,得到k个训练集(k个训练集相互独立)

       B)每次使用一个训练集得到一个模型,k个训练集共得到k个模型(注:根据具体问题采用不同的分类或回归方法,如决策树、神经网络等)

       C)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果

     2、Boosting

      Boosting是一族可将弱学习器提升为强学习器的算法

      关于Boosting的两个核心问题:

      1)在每一轮如何改变训练数据的权值或概率分布?

       通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样本的权值,而误分的样本在后续受到更多的关注

      2)通过什么方式来组合弱分类器?

       通过加法模型将弱分类器进行线性组合,比如AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值

       而提升树通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型

     3、Bagging,Boosting二者之间的区别

      1)样本选择上:

       Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的

       Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化,而权值是根据上一轮的分类结果进行调整

      2)样例权重:

       Bagging:使用均匀取样,每个样例的权重相等

       Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大

      3)基学习器:

       Bagging:所有基学习器的权重相等.

       Boosting:每个基学习器都有相应的权重,对于分类误差小的分类器会有更大的权重

      4)并行计算:

       Bagging:各个预测函数可以并行生成

       Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果

  • 相关阅读:
    maven项目的导包问题,已经加载jar包了可是idea检测不到
    spark MLlib矩阵四则运算,线性代数
    maven spark Scala idea搭建maven项目的 pom.xml文件配置
    tensorflow2.0 numpy.ndarray 与tenor直接互转
    TensorFlow2.0矩阵与向量的加减乘
    Ubuntu14.04下Nginx反向代理Odoo域名
    Geforce experience报错:something went wrong try restarting geforce
    github的代码上传成功但是不显示绿格子(一直拖....心痛的教训.....)
    mapper文件提示:No data sources are configured to run this sql
    Pycharm中SQL语句提示SQL Dialect is Not Configured
  • 原文地址:https://www.cnblogs.com/always-fight/p/10660148.html
Copyright © 2011-2022 走看看