zoukankan      html  css  js  c++  java
  • 西瓜书机器学习算法脉络梳理之集成学习

    集成学习(ensemble learning)通过构建并结合多个学习器完成任务。也可称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。其一般结构是先生成一组“个体学习器”(individual learner),再用某种策略将它们结合起来。

    若“个体学习器”均为同种类型,则为同质集成(homogeneous ensemble);

    若“个体学习器”不是同一种类型,则为异质集成(heterogenous )。

    同质集成中的“个体学习器”,称为“基学习器”(base learner),相应的学习算法称为及学习算法(base learning algorithm);异质集成中的“个体学习器”称为“组件学习器”(component learner)。

     要获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的准确性(学习器不能太坏)和多样性(diversity,学习器间具有差异)。           

                                                              

    如何生成个体学习器?

    根据个体学习器的生成方式,大体分为两类:

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

    * 个体学习器间不存在依赖关系、可同时生成的并行方法;代表是Bagging和随机森林

     

    Boosting 是一族可将弱学习器提升为强学习器的算法。弱学习器(weak learner)常指泛化性能略优于随机猜测的学习器;例如在二分类问题上精度略高于50% 的分类器。

    工作机制:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续得到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此反复进行,直至基学习器数目达到事先指定的值 T,最终将这 T 个基学习器进行加权结合。

    Bagging 是给定包含m个样本的数据集,基于自助采样法(bootstrap sampling,即有放回采样),采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。

    随机森林(Random Forest, 简称 RF)是 Bagging 的一个扩展变体。RF是在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择。具体来说,在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中,选择最优属性用于划分。这里的参数 k控制了随机性的引入程度。

     

    采用什么策略结合这些生成的个体学习器?考虑如下的结合策略

    对于数值型输出,最常见的结合策略是平均法(averaging)。具体有简单平均(simple averaging)和加权平均(weighted averaging)。

    对于类别标记输出,最常见的结合策略是投票法(voting)。具体有绝对多数投票法(majority voting)、相对多数投票法(plurality voting)和加权投票法(weighted voting)。

    当训练数据很多时,一种更为强大的结合策略是“学习法”,即通过另一个学习器进行结合。典型代表是 Stacking。

    Stacking 先从初始数据集训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征。而初始样本的标记仍被当作样例标记。

     

    多样性

    个体学习器的选择?“好而不同”理论分析——“误差-分歧分解”(error-ambiguity decomposition)

    多样性度量(diversity measure)用于度量集成中个体分类器的多样性,即估算个体学习器的多样化程度。典型做法是考虑个体分类器的两两相似或不相似性。常见的多样性度量如下:

    * 不合度量(disagreement measure)

    * 相关系数(correlation coefficient)

    * Q-统计量(Q-statistic)

    * k-统计量(k-statistic)

     

    如何增强多样性?

    数据样本扰动。通常基于采样法,从初始训练集,产生不同的数据子集,再利用不同的数据子集训练出不同的个体学习器。

    输入属性扰动。从初始属性集中,抽取属性子集,再基于每个属性子集训练一个基学习器。

    输出表示扰动。

    算法参数扰动

    参考资料

    [1] 周志华. 机器学习[M]. 北京:清华大学出版社, 2016. 171~190

  • 相关阅读:
    补题报告 个人赛2020.4.12
    UCF Local Programming Contest 2017 2020.4.7
    比赛:ICPC Asia Taipei-Hsinchu Regional 2019 2020.4.1
    UCF Local Programming Contest 2016 2020.3.28
    Benelux Algorithm Programming Contest 2019 2020/3/21
    比赛名:Preliminaries for Benelux Algorithm Programming Contest 2019 时间2020.3.14
    【Scala】Scala使用scalikejdbc工具连接MySQL(推荐)
    【Scala】Scala使用JDBC连接Mysql/权限问题
    【异常】Specified key was too long;max key length is 767 bytes、解决由于HDFS格式化造成Hive数据全部丢失的问题
    【异常】Hive作业异常kill :Hadoop MapReduce Error
  • 原文地址:https://www.cnblogs.com/klchang/p/11332837.html
Copyright © 2011-2022 走看看