[机器学习] 集成学习
集成学习
集成学习(ensemble learning)通过构建并结合多学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能
要获得好的集成,个体学习器应好而不同,即个体学习器要有一定的准确性,并且要有多样性,即学习器间要有差异
根据个体学习器的生成方式, 目前的集成学习方法大致可分为两大类
-
学习器间存在强依赖关系、必须串行生成的序列化方法,如Boosting
-
学习器间不存在强依赖关系、可同时生成的并行化方法,如 Bagging 和随机森林
集成学习在各个规模的数据集上都有很好的策略
-
数据集大:划分成多个小数据集,学习多个模型进行组合
-
数据集小:利用Bootstrap方法(也称为自助法,一种有放回的抽样方法)进行抽样,得到多个数据集,分别训练多个模型再进行组合
Boosting
Boosting 是一族可将弱学习器提升为强学习器的算法
工作原理
- 先从初始训练集训练出一个基学习器
- 根据基学习器的表现对训练样本分布进行调整, 使得先前基学习器做错的训练样本在后续受到更多关注
- 基于调整后的样本分布来训练下一个基学习器;
- 重复进行, 直至基学习器数目达到事先指定的值 T , T, T, 最终将这 T T T 个基学习器进行加权结合
从偏差-方差分解的角度看, Boosting 主要关注降低偏差, 因此 Boosting 能基于泛化性能相当弱的学习器构建出很强的集成
Boosting 族算法最著名的代表是 AdaBoost,是通过集中关注被已有分类器错分的那些数据来获得新的分类器
AdaBoost
- 优点:泛化错误率低,易编码,可以应用在大部分分类器上
- 缺点:对离群点敏感
过程
- 训练数据中的每个样本,并赋予其一个权重,这些权重构成了向量D,权重都初始化成相等值
- 在训练数据上训练出一个弱分类器并计算该分类器的错误率,然后在同一数据集上再次训练弱分类器
- 在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本 的权重将会提高
- 计算出D之后,AdaBoost又开始进入下一轮迭代
- AdaBoost算法会不断地重复训练和调整权重的过程,直到训练错误率为0或者弱分类器的数目达到用户的指定值为止
Bagging
Bagging 是并行式集成学习方法最著名的代表
流程
-
给定包含 m m m 个样本的数据集, 我们先随机取出一个样本放入采样集中, 再把该样本放回初始数据集, 使得下次采样时该样本仍有可能被选中
-
经过 m m m 次随机采样操作, 我们得到含 m m m 个样本的采样集, 初始训练集中有的样本在采样集里多次出现, 有的则从未出现
-
采样出 T T T 个含 m m m 个训练样本的采样集, 然后基于每个采样集训练出一个基学习器
-
将这些基学习器进行结合
在对预测输出进行结合时, Bagging 通常对分类任务使用简单投票法, 对回归任务使用简单平均法
- Bagging通过降低基分类器的方差,改善了泛化误差
- 其性能依赖于基分类器的稳定性;如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误差;如果稳定,则集成分类器的误差主要由基分类器的偏倚引起
- 由于每个样本被选中的概率相同,因此bagging并不侧重于训练数据集中的任何特定实例
随机森林
随机森林(Random Forest) 是 Bagging 的一个扩展变体
随即森林在以决策树为基学习器构建 Bagging 集成的基础上, 进一步在决策树的训练过程中引入了随机属性选择
具体来说, 传统决策树在选择划分属性时是在当前结点的属性集合(假定有 d d d 个属性)中选择一个最优属性
而在随即森林中, 对基决策树的每个结点, 先从该结点的属性集合中随机选择一个包含 k k k个属性的子集, 然后再从这个子集中选择一个最优属性用于划分
随机森林的训练效率常优于 Bagging, 因为在个体决策树的构建过程中, Bagging 使用的是“确定型”决策树, 在选择划分属性时要对结点的所有属性进行考察,而随机森林使用的“随机型”决策树则只需考察一个属性子集
优点
- 具有极好的准确率
- 能够有效地运行在大数据集上
- 能够处理具有高维特征的输入样本,而且不需要降维
- 能够评估各个特征在分类问题上的重要性
- 对于缺省值问题也能够获得很好得结果
结合策略
每个基学习器之间不存在很强的依赖性,为了提高集成的泛化能力在最终预测结果时,需要一定的策略对多个结果进行结合
平均法
对数值型输出,最常见的结合策略是使用平均法,又可分为
- 简单平均法
- 加权平均法
一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法
投票法
对分类任务来说, 学习器将从类别标记集合 中预测出一个标记, 最常见的结合策略是使用投票法
-
绝对多数投票法
若某标记得票过半数,则预测为该标记;否则拒绝预测
-
相对多数投票法
预测为得票最多的标记。若同时有多个标记获得最高票,则从中随机选取一个。
-
加权投票法
学习法
当训练数据很多时, 一种更为强大的结合策略是使用“学习法”, 即通过另一个学习器来进行结合
Stacking 是学习法的典型代表
Stacking
Stacking是通过一个元分类器或者元回归器来整合多个分类模型或回归模型的集成学习技术
基础模型通常包含不同的学习算法,利用整个训练集做训练
元模型将基础模型的特征作为特征进行训练
参考
集成学习–bagging、boosting、stacking
机器学习-周志华
Machine Learning in Action by Peter Harrington