创建日期:2021.01.20
修改日期:2021.01.20
1. 集成学习
集成学习是一种机器学习范式。在集成学习训练多个模型(通常称为弱学习器)解决相同的问题,并将它们结合起来以获得更好的结果。
最重要的假设是:当弱模型被正确组合时,我们可以得到更精确和/或更鲁棒的模型。
2. 基模型
弱学习器就是基模型。作者认为基模型更准确,因为基模型未必是效果不好的或者弱的,是在特定的业务环境下评价不是很好。
在大多数情况下,基本模型本身的性能并不是非常好,或是因为它们具有较高的偏置(例如,低自由度模型),或是因为他们的方差太大导致鲁棒性不强(例如,高自由度模型)。
很重要的一点是:我们对弱学习器的选择应该和我们聚合这些模型的方式相一致。如果我们选择具有低偏置高方差的基础模型,我们应该使用一种倾向于减小方差的聚合方法;而如果我们选择具有低方差高偏置的基础模型,我们应该使用一种倾向于减小偏置的聚合方法。
3. 基模型同质性
集成学习中的基模型可以是同质的,也可以是不同质的。
- 使用单一的基础学习算法,有以不同方式训练的同质弱学习器。
- 使用不同的基础学习算法,些异质的弱学习器组合成异质集成模型。
4. 集成方法比较
降方差(bagging),减偏差(boosting),提升预测准确性(stacking)
-
bagging(Bootstrap aggregating自举汇聚法,自助法)
- 该方法通常考虑的是同质弱学习器,相互独立地并行学习这些弱学习器,并按照某种确定性的平均过程将它们组合起来。
- Bagging代表算法-RF(随机森林)。
- 属于并行方法。
-
boosting(提升法)
- 该方法通常考虑的也是同质弱学习器。它以一种高度自适应的方法顺序地学习这些弱学习器(每个基础模型都依赖于前面的模型),并按照某种确定性的策略将它们组合起来。
- 提升法又分为自适应提升(adaboost )和梯度提升(gradient boosting)。
- 属于串行方法。
-
stacking(堆叠法)
- 该方法通常考虑的是异质弱学习器,并行地学习它们,并通过训练一个「元模型」将它们组合起来,根据不同弱模型的预测结果输出一个最终的预测结果。
- 分阶段方法。
4. Bagging 自助法
给定一个训练集 D D D,样本个数为 m m m,Bagging算法从中均匀、有放回地选出 n n n个样本,形成子集 D i , i = 1 , 2 , . . . , t D_i, i=1,2, ..., t Di,i=1,2,...,t,作为新的训练集。
在 D i D_i Di练集上使用分类、回归等算法,则可得到 t个模型,再通过取平均值、取多数票等方法综合产生预测结果,即可得到Bagging的结果。
对于一个样本 D i D_i Di,它在某一次含 m m m个样本的训练集的随机采样中,每次被采集到的概率是 1 m \frac{1}{m} m1。不被采集到的概率为 1 − 1 m 1-\frac{1}{m} 1−m1。如果 m m m次采样都没有被采集中的概率是 ( 1 − 1 m ) m (1-\frac{1}{m})^m (1−m1)m。当 m → ∞ m→∞ m→∞时, ( 1 − 1 m ) m → 1 e ≃ 0.368 (1-\frac{1}{m})^m→\frac{1}{e}≃0.368 (1−m1)m→e1≃0.368。也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中。
对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。
5. Boosting 提升法
根据它们的上一轮的分类准确率给予不同的权重。加和弱学习者之后,数据通常会被重新加权,来强化对之前分类错误数据点的分类,其中一个经典的提升算法例子是AdaBoost。
6. Stacking 堆叠法
将训练好的所有基模型对整个训练集进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测。
7. 参考资料
(1)常用的模型集成方法介绍:bagging、boosting、stacking
(2)集成学习总结 & Stacking方法详解
(3)机器学习笔记(8)——集成学习之Bootstrap aggregating(Bagging)装袋算法
(4)Stacking算法
(5)机器学习(4):集成算法(Bagging、Boosting、Stacking)
(6)Bootstrap(自助法),Bagging,Boosting(提升)