7.1.2 集成模型分类
集成算法通常包括两部分:一部分是生成单个学习器的方法;另一部分是融合每个学习器的输出结果的方法。其中,生成单个学习器的过程又可大致分为两个类别:一个类别是异构算法,即不同种类的学习算法在同一个数据集合中使用;另一个类别是同构的,即同一个学习算法被应用在不同的训练集或训练集的不同部分。
现在,研究者们陆续提出了很多经典的集成学习算法,这些算法都是使用特定的策略来操作所给定的训练样本的集合,以便能够得到多个不同的训练子集,进而利用这些训练子集来生成多个不同的基分类器。综合来看,这些集成学习算法分为三个类别,分别为Bagging算法族、Boosting算法族以及Stacking算法族。以下简单介绍这三种类型的集成学习算法。
1.Bagging算法
1996年,Breiman L.提出了Bagging算法。该算法首先从原始样本集中抽取训练集,通过重复随机抽样来构建不同的新样本集,然后训练不同的基分类器模型,最后通过投票的方式将基分类器的预测结果组合起来。Bagging算法的多个基学习器训练过程是可以并行进行的。常用的随机森林算法就是Bagging算法的一种。(https://www.daowen.com)
2.Boosting算法
1990年,Boosting算法由Schapire RE提出。该算法首先设定相同的权重给所有的训练样本,在运行迭代过程中不断调整样本的权重,使得先前的基学习器识别错误的训练样本在后面的基学习器中得到更多的关注,然后基于调整后的样本分布来训练下一个基学习器,如此重复最终得到高效的分类器。具有代表性的Boosting算法有GBDT和AdaBoost等。
3.Stacking算法
Stacking模型的重点放在了组合多个基学习器的结果上。首先训练多个不同的模型,然后把之前训练的各个模型的输出作为输入来训练一个新的模型,并得到一个最终的输出。Bagging算法可以认为是一种简化版的Stacking算法。在实际中,我们通常使用logistic回归作为组合模型。