西瓜书机器学习算法脉络梳理之集成学习
集成学习(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