集成学习正广泛地被应用于机器学习/数据挖掘的实际项目之中。掌握集成学习方法,了解其特性与适用场景,对机器学习理论与实践的结合帮助甚大。这里,我们考察集成学习最重要的两种类型:装袋(Bagging)与提升(Boosting),从其两大算法入手:Random Forest、GBDT,基于自己生成的数据集场景和UCI数据集开展实验,对比分析算法的表现。
基础简要回顾
关于集成学习,引用博文笔记︱集成学习Ensemble Learning的描述如下图:
从图中可以看出,集成学习包括元算法和模型融合两方面,元算法提供了从个体弱学习器到集成强学习器的实现,模型融合则在强学习器的基础上,设计结合策略进一步提升性能,元算法按照个体弱学习器之间的依赖关联关系,又分为Boosting类算法和Bagging类算法。下面对其中最基础的几大算法进行概述。
Bagging
Bagging(装袋法)基于自助采样法(bootstrap sampling)来生成训练数据,通过多轮有放回的对初始训练集进行随机采样,多个训练集被并行化生成,对应可训练出多个基学习器,再将这些基学习器结合,构建出强学习器。
因为是随机有放回的采样(自助法),初始训练集中的样本既有可能多次出现在某个采样集中,又有可能不出现,通过统计计算,初始集约有63.2%的样本出现在训练集当中,剩下的36.8%样本可用于模型泛化能力的验证,这种方法称