个人总结:集成学习常见算法特点及对比
集成学习简介
集成学习(Ensemble Learning)是一种机器学习范式,它通过构建并结合多个基学习器(或称为弱学习器)的预测结果来改善整体模型的性能。其基本思想是“三个臭皮匠赛过诸葛亮”,即虽然单个学习器可能只有有限的学习能力或泛化能力,但通过合理地将它们的预测结果聚合起来,可以创建一个更强大、更稳健且具有更好泛化性能的集成模型。
在集成学习中,个体学习器通常是同质的或者异质的,可以基于不同的算法训练而成,也可以在数据的不同子集上训练得到。主要分为两大类集成思想:
1. 串行化思想
- Boosting:这种方法逐步构建模型序列,每个新模型都着重于纠正前一步模型的错误。经典的Boosting算法包括AdaBoost、Gradient Boosting Decision Tree (GBDT)和XGBoost等。
- 思想特点:
(1)每一个训练器重点关注前一个训练器不足的地方进行训练;
(2)加权投票;
(3)串行训练。
2. 并行化思想
- Bagging:Bootstrap Aggregating,通过从原始数据集中抽样产生多个数据子集(bootstrap sample),然后在这些子集上独立训练多个模型,如决策树,最后通过投票(分类任务)或平均(回归任务)等方式整合各个模型的结果。随机森林就是Bagging的一个著名应用。
- 思想特点:
(1)有放回的抽样(即可以对样本抽样,也可以对特征抽样);
(2)平权投票;
(3)弱学习器并行训练。
结合策略主要包括但不限于以下几种:
- 投票法(Voting):对于分类问题,根据各个模型的预测类别进行多数投票决定最终类别。
- 平均法(Averaging):在回归任务中,取所有模型预测值的平均作为最终输出。
- 学习法(Stacking):将基学习器的预测结果作为新的特征输入到第二层模型中,通过这个元模型来进行最终预测。
通过集成学习,可以在保持准确率的同时降低过拟合的风险,并且通常能够提升模型在未见过数据上的表现,因此在实际应用中,尤其是在高复杂度问题和评测竞赛中,集成学习方法被广泛采用。
随机森林
随机森林(Random Forests)算法是Bagging思想的代表算法,采用决策树模型作为每一个弱学习器。该算法可以处理分类和回归问题,并且在实际应用中表现出良好的准确性和鲁棒性。
1. 构建随机森林
1.1 算法流程
(1)随机选取部分样本,并随机选取部分特征(特征子集)交给其中一棵决策树训练;
(2)重复采样,构建出多棵决策树;
(3) 将相同的测试数据交给所有构建出来的决策树进行训练及结果预测。
1.2 预测结果说明
- 分类任务中,随机森林通过平权投票的方式来决定最终类别,即对于每一个待预测样本,所有决策树分别作出预测,最后取出现次数最多的类别作为整体预测结果。
- 回归任务中,则采取平均策略,将各个决策树的预测输出值求均值得到最终的预测结果。
2. 算法优势及特点
- 随机森林具有很好的抗过拟合能力(相比单棵决策树),能有效抑制模型的过拟合倾向。所以在模型参数中一般不会限制决策树的最大深度(max_depth);
- 能够处理大量输入变量,并能评估各特征重要性(集成学习算法共有的属性),有助于特征选择;
- 能够处理缺失值和非平衡数据集,以及连续和离散型特征;
- 可以提供概率估计,并能够发现数据集中的相互作用关系。
AdaBoost
AdaBoost(Adaptive Boosting,自适应提升)算法是基于Boosting思想的、迭代式的集成学习算法之一(基础),即通过结合多个弱分类器来构建一个强分类器。
1. 基本思想与算法流程
AdaBoost的核心是通过调整训练样本的权重分配,让算法在每一轮迭代中重点关注那些前一轮被错误分类或难以分类的样本。
算法流程如下:
(1)初始化:给每个训练样本赋予相同的权重。
(2)迭代过程: