集成学习概览:Bagging与Boosting
主要参考了以下资料:
集成学习综述-从决策树到XGBoost
李宏毅老师的机器学习课程中对应章节:ensemble learning
周志华老师《机器学习》书中对应章节
集成学习(ensemble learning)是机器学习中一种重要的思想,其核心是将一些简单的机器学习模型组合起来得到
一个强大的模型。通常来讲被组合的简单模型称为弱学习器(weak learner)或基学习器(base learner),组合起
来后形成的模型为强学习器(strong learner)。
根据训练各个弱学习器的思路不同,集成学习主要分为两种方式:Bagging和Boosting。前者通过对原始训练样本
集进行随机抽样,形成不同的训练样本集来训练每个弱学习器,各个弱学习器之间可以认为近似是独立的,典型代表
是随机森林;后者为训练样本增加权重(AdaBoost),或者构造标签值(GBDT)来依次训练每个弱学习器,各个弱
学习器之间相关,后面的弱学习器利用了前面的弱学习器的信息。
1. Bagging
Bagging的思路是对训练集进行若干次重新采样,组成若干个训练子集,从每个训练子集中独立训练出一个分类器,
最后整合所有分类器的结果进行预测。在整合预测结果时,通常对分类任务采用简单投票法,对回归任务使用简单平
均法。
Bagging的基础是Bootstrap采样法(中文又译为自助采样法),这也是“Bagging”这个名称的来源(Bootstrap
Aggregating)。Bootstrap是一种有放回抽样方法,具体做法是:在 个样本的集合中有放回的抽取 个样本形成一
个数据集。在这个新的数据集中原始样本集中的一个样本可能会出现多次,也可能不出现。
假设样本集中有 个样本,每次抽中其中任何一个样本的概率都为 ,即等概率,一个样本在每次抽样中没被抽中
的概率为 。由于是有放回的抽样,每两次抽样之间是独立的,因此对于连续 次抽样,一个样本没被抽中的
概率为:
可以证明,当 趋向于无穷大时这个值的极限是 ,约等于0.368,其中 是自然对数的底数。即如下结论成立:
证明过程很简单,在微积分中,有这样一个重要极限:
这说明在训练每个基学习器时,只使用了初始训练集中63.2%的样本,剩下约36.8%的样本可用作验证集来对泛化性
能进行“包外估计”(out-of-bag estimation)。为此,对于训练集中某一特定样本 ,我们只需要考虑那些未使用 训
练的基学习器在 上的预测结果,然后以此类推,求出整个训练集中所有样本预测结果的误差,即可得到包外误差。