集成学习(ensemble learning)就是把多个学习器通过某种方式组合来完成学习任务。
一般分三类:
a、bagging : 有利于减少 方差;
b、boosting: 有利于减少 偏差;
c、stacking: 提升预测结果。
集成的方式包括:
a、串行集成 : 同质学习器,通过提高错分样本的权重来提升;
b、并行集成 : 异质学习器,独立性异质学习器平均来降低误差。
Bagging(装袋)
Bagging,装袋采样,随机采样训练集构成多个子集训练学习器。通常分类使用投票;回归采用平均值。
具体过程如下:
1)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping(有放回)的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(我们这里假设k个训练集之间是相互独立的,事实上不是完全独立)
2)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。但是是同种模型。(注:,k个训练集虽然有重合不完全独立,训练出来的模型因为是同种模型也是不完全独立。这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
3)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
对于Bagging需要注意的是,每次训练集可以取全部的特征进行训练,也可以随机选取部分特征训练,例如随机森林就是每次随机选取部分特征。
代表:随机森林和随机树
Boosting(提升)
boosting和bagging的区别在于是对加权后的数据利用弱分类器依次进行训练。分类任务按照权重进行投票,而对于回归任务进行加权,然后再进行预测。
boosting是一族可将弱学习器提升为强学习器的算法,这族算法的工作机制类似:
1)先从初始训练集训练出一个基学习器;
2)再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注;
3)基于调整后的样本分布来训练下一个基学习器;
4)重复进行上述步骤,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。
Stacking(堆叠)
Stacking是通过一个元分类器或者元回归器来整合多个分类模型或回归模型的集成学习技术。基础模型利用整个训练集做训练,元模型将基础模型的特征作为特征进行训练。
基础模型通常包含不同的学习算法,因此stacking通常是异质集成。
集成学习的结合策略包括:
1、平均法
对数值型输出,最常见的结合策略是使用平均法。
简单平均法
加权平均法
但是对于规模比较大的集成来说,权重参数比较多,较容易导致过拟合。加权平均法未必一定优于简单平均法。
一般而言,在个体学习器性能相差较大时,宜使用加权平均法,而在个体学习器性能相近时,宜使用简单平均法。
2、投票法
绝对多数投票法
若某标记得票过半数,则预测为该标记;否则拒绝预测。
相对多数投票法
预测为得票最多的标记。若同时有多个标记获得最高票,则从中随机选取一个。
加权投票法
3、学习法
当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合。
后续计划详细学习了解每种方式,并记录。
领取专属 10元无门槛券
私享最新 技术干货