精华内容
参与话题
问答
  • 所谓集成学习ensemble learning),是指通过构建多个弱学习器,然后结合为一个强学习器来完成分类任务。并相较于弱分类器而言,进一步提升结果的准确率。严格来说,集成学习并不算是一种分类器,而是一种学习器...

    所谓集成学习(ensemble learning),是指通过构建多个弱学习器,然后结合为一个强学习器来完成分类任务。并相较于弱分类器而言,进一步提升结果的准确率。严格来说,集成学习并不算是一种分类器,而是一种学习器结合的方法。

    参考地址:https://blog.csdn.net/chengfulukou/article/details/76886767

     

     

    展开全文
  • 机器学习之集成学习Ensemble

    千次阅读 2017-11-08 10:30:04
    集成算法: 将多个分类器集成起来而形成的新的分类算法。这类算法又称元算法(meta-algorithm)。最常见的集成思想有两种bagging和boosting。 集成思想 : boosting:重赋权(re-weighting) --...

     集成算法:


    将多个分类器集成起来而形成的新的分类算法。这类算法又称元算法(meta-algorithm)。最常见的集成思想有两种bagging和boosting。

    集成思想 :

    1. boosting:重赋权(re-weighting)

      --基于错误提升分类器性能,通过集中关注被已有分类器分类错误的样本,构建新分类器并集成。

      boosting的思想是 : 训练集(其中各个元素)的权重是根据学习器的表现来改变的.

      bagging采用自助采样的方式”产生”出多个训练集.但是boosting只有一个训练集,但是训练集中各个元素(输入向量)的权重是不同的.boosting是先从具有初始权重的训练集训练出一个弱学习器1,然后根据弱学习器1的表现,来更新样本的权重. 然后再具有新的权重的训练集上面训练弱学习器2,然后根据弱学习器2的表现来更新样本的权重……..反复多次 ,得到m个学习器,最后整合这些弱学习器得到强学习器. 比较出名的就是Adaboost算法。            

    •                                                              
    1. bagging:bootstrap sampling(有放回地取样)

      --基于数据随机重抽样的分类器构建方法。 

      bagging的思想 :  通过自助采样的方法得到K个训练集,然后分别在这K个训练集上面训练学习器.然后就得到了K个学习器.

      bootstrap : 不依靠外界的帮助,或者叫做自助法. 在这里表示一种有放回的抽样方法. bootstrap sampling : 自助采样,对于N个样本的训练集,我从里面随机取出m个样本,得到一个子训练集.然后把这些样本放回. 然后再取m个样本,得到第二个子训练集,再放回去………..重复这样的步骤k次,得到k个子训练集. Bagging可以看做是bootstrap aggregation的简写. 


      bagging对于弱学习器没有限制,也就是说,你可以用决策树,SVM等等都是可以的.一般常用的是决策树和神经网络. 因为bagging的随机采样思路,模型的泛化能力很强,降低了模型的方差.但是对于训练集的拟合程度就不是那么好,也就是说偏差会大一些. 符合bagging思想的比较出名的学习算法就是随机森林.

    主要方法:


    1、强可学习和弱可学习

        在集成学习方法中,是将多个弱模型,通过一定的组合方式,组合成一个强模型。在《统计学习方法》中介绍了“强可学习(strongly learnable)”和“弱可学习(weakly learnable)”的概念。
        在概率近似正确(probably approximately correct, PAC)学习的框架中,一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的。一个概念,如果存在一个多项式的学习算法能够学习它,学习正确率仅比随机猜测略好,那么就称这个概念是弱可学习的。Schapire指出在PAC学习框架下,一个概念是强可学习的充分必要条件是这个概念是弱可学习的。那么对于一个学习问题,若是找到“弱学习算法”,那么可以将弱学习方法变成“强学习算法”。

    2、在验证集上找表现最好的模型

        这样的方法的思想与决策树的思想类似,在不同的条件下选择满足条件的算法。

    3、多个模型投票或者取平均值

        对于数据集训练多个模型,对于分类问题,可以采用投票的方法,选择票数最多的类别作为最终的类别,而对于回归问题,可以采用取均值的方法,取得的均值作为最终的结果。在这样的思路里最著名的是Bagging方法.BaggingBoostrap Aggregating,其中,Boostrap是一种有放回的抽样方法,其抽样策略是简单的随机抽样。
        在Bagging方法中,让学习算法训练多次,每次的训练集由初始的训练集中随机取出的个训练样本组成,初始的训练样本在某次的训练集中可能出现多次或者根本不出现。最终训练出个预测函数,最终的预测函数为对于分类和回归问题可采用如下的两种方法:
    1. 分类问题:采用投票的方法,得票最多的类别为最终的类别
    2. 回归问题:采用简单的平均方法
    随机森林算法就是基于Bagging思想的学习算法。

    4、对多个模型的预测结果做加权平均

        在Bagging方法中,其特点在于随机化抽样,通过反复的抽样训练新的模型,最终在这些模型的基础上取平均。而在对多个模型的预测结果做加权平均则是将多个弱学习模型提升为强学习模型,这就是Boosting的核心思想。
        在Boosting算法中,初始化时对每个训练样本赋予相等的权重,如,然后用该学习算法对训练集训练轮,每次训练后,对训练失败的训练样本赋予更大的权重,也就是让学习算法在后续的学习中几种对比较难学的训练样本进行学习,从而得到一个预测函数序列,其中每个都有一个权重,预测效果好的预测函数的权重较大。最终的预测函数为对于分类和回归问题可采用如下的两种方法:
    1. 分类问题:有权重的投票方式
    2. 回归问题:加权平均
    AdaBoostGBDT(Gradient Boosting Decision Tree)是基于Boosting思想的两个最著名的算法。

    算法示例:

    1. 随机森林(Random Forest: bagging + 决策树)

      将训练集按照横(随机抽样本)、列(随机抽特征)进行有放回的随机抽取,获得n个新的训练集,训练出n个决策树,通过这n个树投票决定分类结果。主要的parameters 有n_estimators 和 max_features。

    2. Adaboost (adaptive boosting: boosting + 单层决策树):

      训练数据中的每个样本,并赋予其一个权重,这些权重构成了向量D。一开始,这些权重都初始化成相等值。首先在训练数据上训练出一个弱分类器并计算该分类器的错误率,然后在统一数据集上再训练分类器。在第二次训练中,会调高那些前一个分类器分类错误的样本的权重。如此反复,训练出许多分类器来进行加权投票,每个分类器的权重是基于该分类器的错误率计算出来的。

    3. GBDT (Gradient Boosting Decision Tree: boosting + 决策树):

      GBDT与Adaboost类似,反复训练出多个决策树,每次更新训练集的权重是按照损失函数负梯度的方向。n_estimators是弱分类器个数;max_depth或max_leaf_nodes可以用来控制每棵树的规模;learning_rate是hyper-parameter,取值范围为(0, 1.0],用来控制过拟合与欠拟合

    Boosting和Bagging的区别: 
    (1)从偏差-方差分解的角度看,Boosting主要关注降低偏差,因此Boosting能基于泛化性能相当弱的学习器构建出很强的集成;而Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更加明显; 
    (2)Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boosting的各轮训练集的选择与前面各轮的学习结果有关,即Bagging采用均匀取样,而Boosting根据错误率来取样,因此Boosting的分类精度要优于Bagging; 
    (3)Bagging的各个预测函数没有权重,而Boosting是有权重的; 
    (4)Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成; 
    (5)对于像神经网络这样极为耗时的学习方法,Bagging可通过并行训练节省大量时间开销; 
    (6)bagging和boosting都可以有效地提高分类的准确性。在大多数数据集中,boosting的准确性比bagging高。但在有些数据集中,boosting会导致Overfit。

    补充结合策略 :
    假设集成包含T个基学习器这里写图片描述,其中这里写图片描述在示例x上的输出为这里写图片描述。以下介绍几种对这里写图片描述进行结合的常见策略: 
    一.平均法 
    对于数值型输出这里写图片描述,最常见的结合策略是使用averaging(平均法)。 
    (1)Simple averaging(简单平均法) 
              这里写图片描述

    (2)Weighted averaging(加权平均法) 
              这里写图片描述 
    其中这里写图片描述是个体学习器这里写图片描述的权重,通常要求这里写图片描述这里写图片描述。  
    注意: 
    加权平均法的权重一般是从训练数据中学习而得,现实任务中的训练样本通常不充分或存在噪声,这将是的学习出的权重不完全可靠。尤其是对规模比较大的集成来说,要学习的权重比较多,容易导致过拟合。因此实验和应用均显示出,加权平均法未必一定优于简单平均法。一般而言,在个体学习器性能相差较大时适合使用加权平均法,而在个体学习器性能相近时适合使用简单平均法。

    二.投票法 
    对分类任务来说,学习器这里写图片描述将从类别标记集合这里写图片描述中预测一个标记,最常见的结合策略是使用voting。为了便于讨论,我们将这里写图片描述在样本x上的预测输出表示为一个N维向量这里写图片描述,其中这里写图片描述这里写图片描述在类别标记这里写图片描述上的输出。 
    (1)Majority voting(绝对多数投票法)

    这里写图片描述

    即若某标记得票过半数,则预测为该标记,否则拒绝预测。

    (2)Plurality voting(相对多数投票法)

            这里写图片描述

    即预测为得票最多的标记,若同时有多个标记获得最高票,则从中随机选取一个。

    (3)Weighted voting(加权投票法)

           这里写图片描述

    与加权平均法类似,这里写图片描述这里写图片描述的权重,通常这里写图片描述这里写图片描述

    三.学习法 
    当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合。Stacking是学习法的典型代表。 
    Stacking先从初始数据集训练出初级学习器,然后“生成”一个新的数据集用于训练次级学习器。在这个新的数据集中,初级学习器的输出被当作样例输入特征,而初级样本的标记仍被当作样例标记。我们假定初级学习器使用不同的学习算法产生,即初级集成是异质的,具体过程如下: 
    (1)划分训练数据集为两个不相交的集合; 
    (2)在第一个集合上训练多个学习器; 
    (3)在第二个集合上测试这几个学习器; 
    (4)把第三步得到的预测结果作为输入,把正确的回应作为输出,训练一个高层学习器。 
    注意: 
    在训练阶段,次级训练集是利用初级学习器产生的。若直接用初级学习器的训练集来产生次级训练集,则过拟合的风险会比较大。因此,一般是通过使用交叉验证或者留一法的方式,用训练初级学习器未使用的样本来产生次级学习器的训练样本。


    参考资料:

    http://blog.csdn.net/savinger/article/details/52842981
    http://blog.csdn.net/savinger/article/details/52862004
    展开全文
  • SpringBoot学习目录

    万次阅读 多人点赞 2019-08-05 10:29:38
    SpringBoot目录 SpringBoot 入门篇 SpringBoot Web篇 SpringBoot Redis 篇 SpringBoot Mybatis篇 ...SpringBoot集成邮件服务 SpringBoot 集成MongoDB SpringBoot 集成Shiro SpringBoot 文件上传 Spring...

    去年都制定好了编写SpringBoot学习文档,一方面自己可以加深对SpringBoot的认知,另一方面便于大家参考、交流,共同提升。但都因为各种原因耽搁了,为了督促自己,现把目标列下来,一步一步去实现,加油!!!


    SpringBoot目录

    1. SpringBoot 入门篇
    2. SpringBoot Web篇
    3. SpringBoot Redis 篇
    4. SpringBoot Mybatis篇
    5. SpringBoot RabbitMQ篇
    6. SpringBoot的定时器
    7. SpringBoot集成邮件服务
    8. SpringBoot 集成MongoDB
    9. SpringBoot 集成Shiro
    10. SpringBoot 文件上传
    11. 使用Spring Boot集成FastDFS
    12. SpringBoot打包
    13. Docker 部署 Spring Boot
    14. Jenkins部署SpringBoot
    15. SpringBoot 集成Memcached
    16. SpringBoot 集成Swagger
    17. Spring Boot Actuator监控应用
    18. Spring Boot Admin
    19. Spring Boot 动态 Banner
    展开全文
  • 集成学习 ensemble 机器学习 集成方法 boosting PCA bagging boosting stacking
  • 集成学习(ensemble learning)可以说是现在非常火爆的机器学习方法了。它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集成学习可以用于分类...

    集成学习(ensemble learning)可以说是现在非常火爆的机器学习方法了。它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集成学习可以用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有的机器学习领域都可以看到集成学习的身影。本文就对集成学习的原理做一个总结。

    1. 集成学习概述

        从下图,我们可以对集成学习的思想做一个概括。对于训练集数据,我们通过训练若干个个体学习器,通过一定的结合策略,就可以最终形成一个强学习器,以达到博采众长的目的。

        也就是说,集成学习有两个主要的问题需要解决,第一是如何得到若干个个体学习器,第二是如何选择一种结合策略,将这些个体学习器集合成一个强学习器。

    2. 集成学习之个体学习器

        上一节我们讲到,集成学习的第一个问题就是如何得到若干个个体学习器。这里我们有两种选择。

        第一种就是所有的个体学习器都是一个种类的,或者说是同质的。比如都是决策树个体学习器,或者都是神经网络个体学习器。第二种是所有的个体学习器不全是一个种类的,或者说是异质的。比如我们有一个分类问题,对训练集采用支持向量机个体学习器,逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过某种结合策略来确定最终的分类强学习器。

        目前来说,同质个体学习器的应用是最广泛的,一般我们常说的集成学习的方法都是指的同质个体学习器。而同质个体学习器使用最多的模型是CART决策树和神经网络。同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting系列算法,第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging和随机森林(Random Forest)系列算法。下面就分别对这两类算法做一个概括总结。

    3. 集成学习之boosting

        boosting的算法原理我们可以用一张图做一个概括如下:

        从图中可以看出,Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。

        Boosting系列算法里最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。提升树系列算法里面应用最广泛的是梯度提升树(Gradient Boosting Tree)。AdaBoost和提升树算法的原理在后面的文章中会专门来讲。

    4. 集成学习之bagging

        Bagging的算法原理和 boosting不同,它的弱学习器之间没有依赖关系,可以并行生成,我们可以用一张图做一个概括如下:

        从上图可以看出,bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次的随机采样,我们就可以得到T个采样集,对于这T个采样集,我们可以分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略来得到最终的强学习器。

        对于这里的随机采样有必要做进一步的介绍,这里一般采用的是自助采样法(Bootstap sampling),即对于m个样本的原始训练集,我们每次先随机采集一个样本放入采样集,接着把该样本放回,也就是说下次采样时该样本仍有可能被采集到,这样采集m次,最终可以得到m个样本的采样集,由于是随机采样,这样每次的采样集是和原始训练集不同的,和其他采样集也是不同的,这样得到多个不同的弱学习器。

        随机森林是bagging的一个特化进阶版,所谓的特化是因为随机森林的弱学习器都是决策树。所谓的进阶是随机森林在bagging的样本随机采样基础上,又加上了特征的随机选择,其基本思想没有脱离bagging的范畴。bagging和随机森林算法的原理在后面的文章中会专门来讲。

    5. 集成学习之结合策略

        在上面几节里面我们主要关注于学习器,提到了学习器的结合策略但没有细讲,本节就对集成学习之结合策略做一个总结。我们假定我得到的T个弱学习器是

    5.1 平均法

        对于数值类的回归预测问题,通常使用的结合策略是平均法,也就是说,对于若干和弱学习器的输出进行平均得到最终的预测输出。

        最简单的平均是算术平均,也就是说最终预测是

        如果每个个体学习器有一个权重

    ,则最终预测是

        其中

    是个体学习器的权重,通常有

    5.2 投票法

        对于分类问题的预测,我们通常使用的是投票法。假设我们的预测类别是

    ,对于任意一个预测样本x,我们的T个弱学习器的预测结果分别是

        最简单的投票法是相对多数投票法,也就是我们常说的少数服从多数,也就是T个弱学习器的对样本x的预测结果中,数量最多的类别

    为最终的分类类别。如果不止一个类别获得最高票,则随机选择一个做最终类别。

        稍微复杂的投票法是绝对多数投票法,也就是我们常说的要票过半数。在相对多数投票法的基础上,不光要求获得最高票,还要求票过半数。否则会拒绝预测。

        更加复杂的是加权投票法,和加权平均法一样,每个弱学习器的分类票数要乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。

    5.3 学习法

        上两节的方法都是对弱学习器的结果做平均或者投票,相对比较简单,但是可能学习误差较大,于是就有了学习法这种方法,对于学习法,代表方法是stacking,当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。

        在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。

     

        以上就是集成学习原理的一个总结,后面会分别对Adaboost, 提升树,bagging和随机森林的算法原理做一个总结,敬请期待。

    展开全文
  • 集成学习(ensemble learning)原理详解

    万次阅读 多人点赞 2017-08-27 16:30:52
    集成学习(ensemble learning)可以说是现在非常火爆的机器学习方法了。它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集成学习可以用于分类...
  • Ensemble learning 集成学习(一)

    千次阅读 2016-10-17 22:20:13
    一.Ensemble learning(集成学习集成学习通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统等。要获得好的集成,个体学习器应”好而不同”,意味着个体学习器要有一定的准确性,即学习器不能太...
  • 集成学习 ensemble learning

    千次阅读 2016-11-22 10:39:45
    集成学习ensemble learning)是通过构建并结合多个学习器来完成学习任务的,因此有写文章中也称其为多分类器系统(multi-classifier system)或者是委员会学习(committee-based learning)。 下图是集成学习的...
  • Ensemble learning 集成学习(二)

    千次阅读 2016-10-19 18:19:06
    No4.Grandient Boosting gradient boosting(又叫Mart, Treenet):Boosting是一种思想,Gradient Boosting是一种实现Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向。...
  • 集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。集成学习可以提升机器学习算法。本视频教学课程主要讲解:个体与集成、Boosting...
  • 集成学习是机器学习中的一个重要分支,集成学习ensemble learning,它是一种利用样本数据训练多个不同的弱分类器,然后将这些弱分类器整合成一个强大分类器的机器学习方法。 集成学习可以解决什么问题? 学习...
  • 集成学习Ensemble Learning)

    万次阅读 2017-12-09 15:27:22
    本博客是针对周志华教授所著《机器学习》的“第8章 集成学习”部分内容的学习笔记。个体与集成 Boosting Bagging与随机森林 Bagging 随机森林 结合策略 平均法 投票法 学习法个体与集成集成学习,顾名思义,通过将多...
  • 集成学习(Ensemble)

    2017-11-19 16:28:33
    集成学习(Ensemble)目前的集成学习方法分为两类: 1.个体学习器间存在强依赖关系、必须串行生成的序列化方法。 Boosting 2.个体学习器间不存在强依赖关系、可以同时生成的并行化方法。 Bagging RandomForest ...
  • 集成学习放在第二个写是因为ensemble learning虽然有learning,但是在算法中并未显式表现出learning,并且也含有“投票表决”的部分内容,跟knn分类的思想比较像。(GBDT和Random Forest同属集成学习 属于比较...
  • 1、voting原理 假设有1000种分类器,每个分类器预测的正确率只有50.5%,如果以预测类别最多的作为预测结果,则准确率可达到60%,如果有10000种分类器,则准确率可达到84%左右。该结果的前提是分类器彼此独立,但是...
  • ensemble learning(集成学习)笔记

    千次阅读 2017-02-22 17:51:09
    要想得到好的集成分类器,一个是基分类器要有一定的准确性,至少不能随机扔硬币猜正反还离谱;其次要有多样性,也就是分类器间有差异性存在,这样才能保证泛化能力不至于太差. ensemble learning的分类 依据基...
  • 机器学习_集成学习(Ensemble)

    千次阅读 2019-12-06 15:10:28
    集成学习(Ensemble)介绍 集成学习也称为模型融合(Model Ensemble)、多分类器学习(multiple Classifier System)或基于委员会的学习(Committee-Based Learning)。是一种有效提升机器学习效果的方法。 不同于传统的...
  • 机器学习之集成学习(ensemble learning)

    万次阅读 多人点赞 2018-11-10 16:42:47
    集成学习(Ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统、基于委员会的学习等。 集成学习的一般结构为:先产生一组“个体学习器”,再用某种策略将它们结合起来。集成中只...
  • Ensemble learning from rdkit import Chem from rdkit.Chem import DataStructs from rdkit.Chem import AllChem from rdkit import RDPaths from rdkit.Chem.Draw import IPythonConsole from rdkit.C...
  • 概述本文参考:模型融合的【机器学习】模型融合方法概述 概况有五个部分:Voting、Averaging、Bagging 、Boosting、 Stacking(在多个基础模型的预测上训练一个机器学习模型)1、Voting有3个基础模型,那么就采取...
  • 一、集成学习法 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)...
  • 集成学习ensemble learning)
  • 集成学习(Ensemble Learning)

    万次阅读 2009-11-22 12:48:00
    Ensemble Learning现在基本上就叫集成学习。相关的概念有上面说的多模型系统(这实际上在很大程度上对应了机器学习里面的多专家混合)、Committee Learning、Modular systems、多分类器系统等等。这些概念相互之间有...
  • 集成学习ensemble Learning)

    千次阅读 2017-10-12 08:54:33
    集成学习ensemble Learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等,其一般结构是先产生一组“个体...

空空如也

1 2 3 4 5 ... 20
收藏数 37,890
精华内容 15,156
关键字:

ensemble