集成方法在数据挖掘中被广泛应用,因为它们能够显著提升机器学习模型的预测性能。单个模型很容易出现过拟合,或者在处理未见过的数据时表现不佳。而集成学习通过聚合多个模型并平衡它们的误差,巧妙地解决了这些问题。
!Ensemble-learningEnsemble Learning
为什么集成学习如此有效?
集成方法之所以有效,是因为它们解决了机器学习中面临的三个关键挑战:
1. 统计问题
当可用数据相对于可能存在的模型集合来说太小时,可能会有多个模型都能很好地拟合训练数据。学习算法可能只选中了其中一个,但这并不代表它能很好地泛化。集成学习通过整合多个模型的结果(例如取平均),降低了这种选择错误模型的风险。
2. 计算问题
在某些情况下,算法无法高效地找到全局最优模型。集成学习通过组合多个局部近似解来缓解这一问题,从而获得更好的结果。
3. 表示问题
如果假设的真实函数并不存在于基础学习器的函数集中,集成学习可以通过组合多个模型,更好地逼近这些复杂的目标函数。
> 注意: 实施集成学习的主要挑战在于模型之间的 “多样性”。为了让集成有效,每个基础模型应当犯不同类型的错误。即使单个模型相对较弱,只要它们之间的错误是不相关的,集成后的模型依然可以表现出强大的性能。
构建集成模型的方法
我们可以根据基础模型的训练方式和组合方式,将集成方法主要分为两类。
1. 独立构建集成
在这种方法中,每个基础模型都是独立训练的,互不依赖。为了确保模型能从数据的不同角度学习并产生多样化的误差,我们通常会在训练过程中引入随机性。训练完成后,我们会使用平均法或投票法等聚合技术将它们的预测结果结合起来,生成最终输出。
2. 协同构建集成
这种方法以依赖或顺序的方式构建模型,每个模型都会受到前一个模型性能的影响。通过专注于纠正之前模型犯下的错误,集成模型会变得越来越准确。最后,这些模型的预测结果会被组合起来,以利用它们的互补优势。
常见的集成分类器类型
1. Bagging (Bootstrap Aggregation) – 自助聚合
Bagging 通过使用训练数据集的不同自助样本(有放回的随机采样),并行且独立地训练多个模型。每个模型都在自己的数据子集上独立学习,这有助于降低方差并提高整体预测的稳定性。所有模型的输出会被组合起来,通常的做法是:对于回归问题取平均值,对于分类问题采用多数投票。
> 随机森林是对 Bagging 的一种扩展,它在每次树的分裂时还会选择随机的特征子集,从而进一步增加了模型之间的多样性。
!BaggingBagging – 工作原理
工作原理:
- 通过有放回的随机抽样创建多个自助数据集。
- 在每个子集上独立训练一个基础学习器(通常是决策树)。
- 组合所有模型的预测结果以生成最终输出。
优势:
- 降低方差,有助于防止过拟合。
- 模型并行训练,效率较高。
2. Boosting – 提升法
Boosting 采用顺序的方式构建模型,使每个模型都能从之前模型的错误中学习,从而改善偏差并提高准确率。在每次迭代结束后,被错误分类的样本权重会增加,迫使后续的模型重点关注这些难处理的样本。这个过程会持续多次迭代,最终预测结果由所有模型组合而成。
!BoostingBoosting – 工作原理
工作原理:
- 从一个弱基础模型(例如浅层决策树)开始。
- 在每次迭代后增加被错误分类样本的权重。
- 组合所有模型的预测结果以生成最终输出。
优势:
- 降低偏差,能将弱学习器转化为强学习器。
- 在处理结构化数据时表现优异,准确率高。
3. Stacking – 堆叠法
Stacking 通过使用一个元模型来学习如何最佳地合并预测结果,从而组合多个不同类型的模型。基础模型独立进行训练,它们的输出随后被用作元学习器的输入。这种策略利用了各种模型的优势,通常能提高整体的准确率和泛化能力。逻辑回归 是常被用作元模型的算法之一。