自助聚集法,通常称为袋装法,是机器学习中的一种集成学习方法,旨在提高预测模型的准确性和稳健性。它通过从原始训练数据集中生成多个自助样本(有放回的随机子集),在每个样本上分别训练一个基模型,然后聚合它们的预测结果。对于回归任务,最终预测通常是所有基模型输出的平均值;对于分类任务,则是多数投票。袋装法主要降低方差,有助于缓解过拟合,尤其适用于决策树等高方差算法。
该技术由Leo Breiman于1994年在其论文《Bagging Predictors》中提出。它是集成学习中的基础概念,区别于提升法(顺序纠正错误)和堆叠法(通过元学习器组合多样模型)。袋装法在实践中广泛使用,最著名的是作为随机森林的核心,在其中结合了特征子采样。其简单性和有效性使其成为学术研究和工业应用中的标准工具,涵盖从金融到医疗保健的各个领域。
历史发展
袋装法源于20世纪90年代初更广泛的统计和机器学习研究,这一时期人们对组合多个模型以改善泛化能力的兴趣日益增长。加州大学伯克利分校的统计学家Leo Breiman于1994年正式提出了该方法,建立在Bradley Efron早期关于自助方法的工作基础上。Breiman从理论和实证两方面证明,对在扰动数据集上训练的模型的预测进行平均可以减少误差,尤其对于输出随数据微小变化而显著变化的不稳定学习器。
在Breiman于2001年引入随机森林后,该方法迅速获得广泛关注。随机森林通过在每个决策树分裂时随机选择特征子集来扩展袋装法。这一创新进一步去相关了基模型,带来了显著的性能提升。此后,袋装法已集成到众多软件库中,包括scikit-learn、R的randomForest包和TensorFlow Decision Forests,使其对全球从业者易于使用。
算法细节
袋装算法的过程直接明了。给定大小为n的训练集,该过程生成B个自助样本,每个大小为n,均匀有放回地抽取。这意味着某些原始实例可能在样本中出现多次,而其他实例则被省略(任何给定样本中大约出现63.2%的唯一实例,其余为重复)。对于每个样本,独立训练一个基模型,通常使用相同的算法和超参数。基模型可以是决策树、神经网络或其他学习器。
聚合取决于任务。对于回归,预测结果取平均:\( \hat{f}(x) = \frac{1}{B} \sum_{b=1}^{B} \hat{f}_b(x) \)。对于分类,最终类别由基模型之间的多数投票决定。自助样本数B是一个关键超参数;典型值范围从50到500,超过几百后收益递减。袋装法不需要对基模型进行交叉验证,因为袋外样本(未包含在给定自助样本中的实例)可用于估计泛化误差,而无需单独的验证集。
理论基础
袋装法的有效性源于方差降低。对于预测方差为 \( \sigma^2 \) 且模型间两两相关性为 \( \rho \) 的基模型,集成平均的方差约为 \( \rho \sigma^2 + (1-\rho)\sigma^2/B \)。随着B增加,第二项消失,剩下 \( \rho \sigma^2 \)。因此,袋装法在基模型不稳定(高方差)但相关性不太高时效果最佳。决策树是理想选择,因为小的数据扰动会导致不同的分裂,但整体结构仍足够相似以保持相关性适中。
Breiman的原始分析表明,只要基学习器不稳定,袋装法就能降低回归的均方误差和分类的误分类率。它对线性回归等稳定学习器帮助不大,因为其方差已经很低。该方法还通过基模型预测的分布提供了一种自然的不确定性估计机制,可用于构建预测区间。
实际应用
袋装法应用于多个领域。在金融领域,它用于信用评分和欺诈检测,其中减少误报至关重要。在医疗保健领域,袋装决策树帮助预测患者结果并从电子健康记录中诊断疾病。在遥感领域,随机森林(一种袋装变体)从卫星图像中分类土地覆盖。该方法在自然语言处理中也很常见,用于文本分类,尽管深度学习模型通常依赖其他正则化技术。
一个显著应用是在Machine learning竞赛中的集成方法,袋装法经常与提升法结合使用,或作为稳定预测的最终步骤。例如,在Netflix Prize和Kaggle竞赛中,参与者经常对其最佳模型进行袋装以获取微小的准确率提升。在工业界,像Amazon Web Services和Google Cloud这样的公司提供包含袋装实现的托管服务,使得无需手动编排即可进行可扩展的模型训练。
局限性与扩展
袋装法有几个局限性。它不减少偏差;如果基模型系统性欠拟合,袋装法不会纠正这一点。它还随着基模型数量线性增加计算成本,尽管由于每个模型独立,训练可以轻松并行化。存储多个模型时内存使用可能较高。此外,对于单个模型已经良好泛化的非常大的数据集,或对于线性支持向量机等稳定算法,袋装法效果较差。
扩展方法解决了其中一些问题。随机森林添加特征子采样以进一步去相关树。粘贴法(或子袋装法)在较小的随机样本上无放回训练,减少计算负担。刹车法(带梯度提升的自助聚集)结合了袋装法和提升法以提高准确率。对于神经网络,一种相关技术称为深度集成,训练多个具有不同随机初始化的网络,有效地在权重级别应用袋装法。这些变体突显了Breiman原始思想对现代集成学习的持久影响。