选择性集成学习

在机器学习领域,集成学习由于可以提高学习系统的泛化能力,因此被广泛关注使用。对于集成学习可以分为两个阶段:

1)对训练数据集构造出多个基分类器。

这些基分类器的构造通常采用数据子集或者特征子集的方法进行构造,加上随机子集的方法,保证构造出的多个基分类器相互之间具有差异性

2)对这些基分类器的预测结果采用某种方式进行组合预测。

            组合方式可以是平均投票,加权投票等等。

那么选择性集成学习,其实就是在集成学习的基础上增加了一个阶段,即分类器的选择阶段。也可以认为是通过剔除那些对集成分类器的预测能力具有负面影响的基分类器,从而进一步提高分类性能。如下面两幅图,左图是集成学习的流程,右图是选择性集成的流程。

可以认为选择性集成学习就是在假定已生成的的多个基分类器基础上,基于某种策略只选择一部分用于构建最终的集成。那么它的好处是什么呢?

      (1)因为剔除了分类性能差劲的基分类器,改善了集成学习的预测性能。

      (2)由于集成分类器个数的下降,使得集成学习的整体预测速度得到了提升并且降低了计算机的存储需求。

分类器的选择策略问题:

        可以看出来选择性集成其实就是一个组合优化问题,属于NP难问题,如果采用穷举法,就会存在组合爆炸问题。目前主要有以下一些组合策略:

       (1)基于聚类的方法

       (2)基于排序的方法:

       (3)基于优化的方法:

       (4)其他(动态选择和循环集成):

一 基于聚类:

        聚类属于无监督学习,一般利用某种条件将整个数据集分为几组。这里通过使用聚类比如kmeans算法,将多个基分类器分为几个簇。如下图所示:

   

比如有10个分类器,通过对分类器的输出结果进行聚类,分为3个簇,然后分别从这三个簇中选取出分类器性能最好的分类器用于集成,这样通过簇保证了不同簇分类器之间的差异性,同时通过聚类剔除了多余的分类器。对于聚类的方法,应当注意两个问题:

(1)聚类的个数选择

(2)簇内的距离定义:比如欧式距离、差异性等等。

      

二  基于排序:

基于排序的策略指的是通过事先对分类器进行排序,然后选取靠前的某些个分类器进行集成。

  (1)采用何种标准进行排序  

以往一般采用分类器的准确率进行排序,但是后来使用证明,个体分类器的性能比较好,并不能保证集成后的效果也是好的,因此现在一般采用分析分类器之间的相关性,使得所选择的分类器之间具有互补性,从而避免他们间的优势相互抵消。

    (2)选择多少个分类器进行集成

     a)自己设置选择分类器的个数大小或者个数所占总的分类器个数的百分比

b)设置阈值,只选择那些达到阈值的分类器个数,阈值可以是设置Acc的大小

三 基于优化的方法:

求解组合优化问题,很多时候是采用启发式搜索近似最优组合解。同理这里我们也可以借助优化算法比如(粒子群算法,遗传算法…)剔除不必要的基分类器,选择最优的基分类器子集。

如下图,集合T为分类器集,w是分类器的权向量,通过采用遗传算法,迭代优化出一组最优全向量值,然后选取出那些向量权重大于某个阈值的分类器进行集成学习。

还有一些常用的策略(贪心算法),如下:

    (1)HC(Hill Climbing 爬山策略)

    (2)FSS(Forward Sequential Selection 前序选择策略)

    (3)BSS(Backward Sequential Selection 后序选择策略)

     对于这些启发式搜索都有适应函数,定义为:f(x)=(1-r)Acc+r*div:  Acc:分类器的分类准确率    div  分类器的差异性

    

     1.HC

      我们知道爬山算法,是一个逐步求优的搜索过程,每一次搜索都是建立在对前一次搜索的评估的基础之上的,大致步骤如下:

  1. 随机选择两个性能较好的基分类器作为初始集成模型M,计算适应函数。
  2. 从集成模型之外随机选取一个分类器添加到M,计算适应函数,比较适应函数,如果使用函数变小则撤销这一步。
  3. 重复以上步骤,当连续多次适应函数没有发生变化时,或者已无候选分类器时,结束步骤。

2.FSS

  1. 首先采用某种指标对所有的候选分类器进行排序,可以采用Acc或者其他指标。
  2. 选取两个指标最好的的分类器作为初始集成模型,计算适应函数。
  3. 从集成模型之外选取最优性能的分类器添加到集成模型M,计算适应函数,如果适应函数下降,则撤销这一步。
  4. 重复以上步骤,当连续多次适应函数没有发生变化时,或者已无候选分类器时,结束步骤。

3.BSS

  1. 首先将所有的分类器都加入到集成模型M里面。
  2. 随机删除集成模式M当中的一个基分类器,计算机适应函数,如果适应函数下降,则撤销这一步。
  3. 重复以上步骤,当连续多次适应函数没有发生变化时结束步骤。

 四 其他(动态选择和循环集成):

  1. 构造出一定数量的候选分类器,并计算互补指数,对分类器进行排序。
  2. 动态选取准确率较高的的分类器组合,构成最优子集。
  3. 如果所有的候选分类器都参与集成仍不能得到预期准确率,就循环利用候选分类器,直到符合某个结束条件。

时间: 2024-10-12 03:43:00

选择性集成学习的相关文章

集成学习 概念介绍

集成学习(Esemble learning) 在机器学习领域,如何根据观察数据学习一个精确的估计数据是一个主要问题. 通常,我们通过训练数据应用某个算法得出一个训练模型,然后使用评估数据来评估这个模型的预测正确率,最后如果我们可以接受这个正确率就使用该模型进行预测数据.通常我们将训练数据进行交叉验证,比如说10则交叉验证,我们将训练数据平均分为10份,循环用其中的9份数据来训练模型,用另一份数据验证准确率,最后将结果准确率平均就是最后的分类准确率.当然还有其他方法. 但是寻找一个可以有很高准确率

Ensemble learning(集成学习)

定义 集成学习是一种机器学习范式,其中多个学习器被训练来解决相同的问题. 这与试图从训练数据中学习一个假设的普通机器学习方法相反,集成方法尝试构造一组假设并将它们结合使用. 一个集合包含一些通常被称为基础学习器的学习器. 一个集合的泛化能力通常比单个基础学习器的泛化能力强得多. 实际上,集成学习具有极大吸引力,因为它可以将弱于随机猜测的弱学习器提升为能够做出非常准确预测的强大学习器. 所以,"基础学习器"也被称为"弱学习器". 然而,值得注意的是,尽管大多数理论分析

Ensemble_learning 集成学习算法 stacking 算法

原文:https://herbertmj.wikispaces.com/stacking%E7%AE%97%E6%B3%95 stacked 产生方法是一种截然不同的组合多个模型的方法,它讲的是组合学习器的概念,但是使用的相对于bagging和boosting较少,它不像bagging和boosting,而是组合不同的模型,具体的过程如下:1.划分训练数据集为两个不相交的集合.2. 在第一个集合上训练多个学习器.3. 在第二个集合上测试这几个学习器4. 把第三步得到的预测结果作为输入,把正确的回

【基础知识八】集成学习

难点:如何产生"好而不同"的个体学习器:"好而不同":"准确性"和"多样性" 一.个体与集成 构建并结合多个学习器来完成学习任务 集成:结果通过投票法voting产生,"少数服从多数" 获得整体性能提升要求个体学习器:好而不同 1)个体学习器有一定的"准确性" 2)学习器间具有差异 集成学习的错误率: 假设基学习器的误差相互独立,随着集成中个体分类器数目T的增大,集成的错误率将指数级下降

scikit_learn 官方文档翻译(集成学习)

1.11. Ensemble methods(集成学习) 目标: 相对于当个学习器,集成学习通过使用多个基学习器的预测结果来来提高学习预测的泛化性能以及鲁棒性: 集成学习的两个思路: 1).通过使用并行的学习,得到多个学习模型然后取其平均结果目的在于减少方差,代表算法有随机森林.通常来说多个学习器的集成要比单个学习器的效果要好多. 2).采用串行的方式生成多个学习器目的在于减少偏差(bias),使用多个弱分类器组合成为一个强分类器,代表算法adaBoosting以及boosting tree.G

机器学习算法--集成学习

1. 个体和集成 集成学习通过构建并结合多个"个体学习器"来完成学习任务.个体学习器通常由一个现有的学习算法从训练数据产生,若集成中只包含同种类型的个体学习器,称为同质集成:若包含不同类型的个体学习器,为异质集成.同质集成中的个体学习器也成为"基学习器". 如何产生并结合"好而不同"的个体学习器,恰是集成学习研究的核心. 根据个体学习器的生成方式,目前的集成学习方法大致分为两大类: (1)个体学习器间存在强依赖关系,必须串行生成的序列化方法,代表

集成学习之Adaboost算法原理小结

在集成学习原理小结中,我们讲到了集成学习按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,另一类是个体学习器之间不存在强依赖关系.前者的代表算法就是是boosting系列算法.在boosting系列算法中, Adaboost是最著名的算法之一.Adaboost既可以用作分类,也可以用作回归.本文就对Adaboost算法做一个总结. 1. 回顾boosting算法的基本原理 在集成学习原理小结中,我们已经讲到了boosting算法系列的基本思想,如下图: 从图中

机器学习之集成学习

1. 概念梳理: AdaBoost: 运行过程:训练数据中的每一个样本,并赋一个权重,这些权重值构成向量D,已开始这些权重值一样. 第一次训练完,得到一个弱分类器,计算该分类器的错误率,然后调整每个样本的权重值,对同一个训练数据进行第二次训练得到第二个分类器.(第一次分对的样本权重减小,分错的权重提高.)并且AdaBoost为每个分类器都分配了一个权重值alpha. 这样,样本权重D和alpha不断训练和调整,知道错误率为0或者分类器的数目达到要求为止. bagging:从原始数据集选择S次后得

关于集成学习基础的简单描述

关于集成学习基础的简单描述 什么是集成学习? 集成建模是优化模型表现的一条重要途径.通常来说,将集成学习方法运用在你所构建的诸多模型之上是十分值得的,而同道中人们也一次又一次地证明着这一点.他们在诸如Kaggle之类的数据建模竞赛中往往会不约而同地采用集成学习,并且从中受益. 集成学习其实是一个很宽泛的概念,对于它的定义,可谓仁者见仁智者见智.接下来,本文将介绍一些集成建模的基本概念和思想,这些知识应该足以让你起步,从而去构建你自己的集成模型.同时,和往常一样,我们将尽量让它们看起来简单一些.