• 集成学习先产生一组个体学习器,再用某种策略将它们结合起来.如果集成中只包含同种类型的个体学习器则叫同质集成,其中的个体学习器称为基学习器,相应的学习算法称为基学习算法.如果包含不同类型的个体学习器则叫异质集成,其中的学习器常称为组件学习器.
  • 要获得好的集成,个体学习器应"好而不同".即要有一定的准确性,并且要有多样性.
  • 目前的集成学习方法大致分为两大类:
  1. 序列化方法:个体学习器间存在强依赖关系,必须串行生成.
  2. 并行化方法:个体学习器间不存在强依赖关系,可同时生成.
  • Boosting先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使做错的训练样本在后续受到更多关注(给予更大的权重或重采样).然后基于调整后的样本分布来训练下一个基学习器;直到基学习器的数目达到指定值T之后,将这T个基学习器加权结合.Boosting主要关注降低偏差,因此能基于泛化性能相当弱的学习器构建出很强的集成.代表算法有AdaBoost.
  • Bagging是并行式集成学习方法最著名的代表.它基于自助采样法,采样出T个含m个训练样本的采样集,基于每个采样集训练出一个基学习器,再将这些基学习器进行简单结合.在对预测输出进行结合时,常对分类任务使用投票法,对回归任务使用平均法.Bagging主要关注降低方差,因此在不剪枝决策树,神经网络等易受样本扰动的学习器上效用更明显.代表算法有随机森林.
  • 随机森林在以决策树为基学习器构建Bagging的基础上,进一步引入了随机属性选择.即先从属性集合(假定有d个属性)中随机选择一个包含k个属性的子集,再从这个子集中选择一个最优属性进行划分.当k=d时,基决策树与传统决策树相同.当k=1时,则随机选择一个属性用于划分.一般推荐k=log2d.
  • 学习器结合可能会从三个方面带来好处:
  1. 统计:可能有多个假设在训练集上达到同等性能,单学习器可能因误选而导致泛化性能不佳,结合多个学习器会减小这一风险.
  2. 计算:通过多次运行之后进行结合,降低陷入糟糕局部极小点的风险.
  3. 表示:结合多个学习器,相应的假设空间有所扩大,有可能学得更好的近似.
  • 结合策略:
  1. 平均法:对数值型输出,最常见的策略是平均法.一般而言,在个体学习器性能相差较大时使用加权平均法,性能相近时使用简***均法.权重一般也是从训练数据中学习而得.
  2. 投票法:对分类任务来说,最常见的策略是投票法.又可细分为绝对多数投票法,相对多数投票法,加权投票法.绝对多数投票法允许"拒绝预测",若必须提供预测结果则退化为相对多数投票法.若基学习器的类型不同,则类概率值不能直接比较,需要将类概率输出转化为类标记输出后再投票.
  3. 学习法:当训练数据很多时,一种更强大的策略是通过另一个学习器来结合.Stacking是学习法的典型代表.我们把个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器.Stacking用初级学习器的输出作为样例输入特征,用初始样本的标记作为样例标记,然后用这个新数据集来训练次级学习器.一般用初级学习器的输出类概率作为次级学习器的输入属性,用多响应线性回归(Multi-response Linear Regression,MLR)作为次级学习算法效果较好.
  • 多样性增强常用的方法有:数据样本扰动,输入属性扰动,输出表示扰动,算法参数扰动.