主页 topics 什么是 Bagging 算法(装袋算法)? 什么是 Bagging 算法?
了解引导聚合算法(即 Bagging 算法)如何提高机器学习模型的准确度,从而使您能够获得更深入的洞察。
Z 软件的等距插图
什么是 Bagging 算法?

Bagging 算法又称引导聚合算法,是一种集成学习算法,通常用于降低噪声数据集中的方差。 在 Bagging 方法中,用替换法来选择训练集中的随机数据样本,这意味着可多次选择单个数据点。 在生成多个数据样本后,将单独训练这些弱模型,根据任务类型(如回归或分类),这些预测的平均值或多数值会产生更准确的估计值。 

值得注意的是,随机森林算法被认为是 Bagging 算法的扩展,利用装袋和特征的随机性来创建一个不相关的决策树森林。

集成学习

集成学习为“群体智慧”的观点提供了依据,这表明一个更大群体的决策通常要优于专家个人的决策。 与此类似,集成学习指的是一组(集成的)基础学习器或模型,它们共同协作以获得更准确的最终预测。 单个模型,又称基础或弱学习器,由于高方差或高偏差可能性能不佳。 然而,当弱学习器聚集后,可以形成一个强学习器,它们的结合可以减少偏差或降低方差,产生更好的模型性能。

集成方法通常使用决策树来说明,因为这种算法在没有修剪的情况下容易出现过拟合(高方差和低偏差);如果决策树非常小,比如决策树桩,即仅有一层的决策树,则容易出现欠拟合(低方差和高偏差)。 请记住,当一个算法在训练集中出现过拟合或欠拟合现象时,它不能很好地泛化到新的数据集,所以集成方法被用来抵消这种行为,以便将模型泛化到新的数据集。 虽然决策树会表现出高方差或高偏差,但值得注意的是,它并不是唯一一种利用集成学习在偏差-方差权衡中找到“最佳位置”的建模技术。

Bagging 与 Boosting

Bagging 算法和 Boosting 算法是两种主要的集成学习方法。 正如本研究报告 (PDF, 248 KB)(此链接位于 ibm. com 外部)中强调的那样,这些学习方法之间的主要区别在于它们的训练方式。 在 Bagging 算法中,弱学习器并行训练,但在 Boosting 算法中,它们串行训练。 这意味着会构建一系列模型,并且随着每次新的模型迭代,前一个模型中误分类数据的权重会增加。 这种权重的重新分配可帮助算法发现需要关注的参数,从而提高其性能。 AdaBoost 是英文“adaptative boosting”(自适应提升)的缩写,它是同类算法中的第一个,也是最受欢迎的提升算法之一。 其他类型的 Boosting 算法包括 XGBoost、GradientBoost 和 BrownBoost。

另一个不同之处在于 Bagging 算法和 Boosting 算法的使用场景不同。 例如,Bagging 算法通常用于呈现出高方差和低偏差的弱学习器,而 Boosting 算法则用于低方差和高偏差的学习器。

Bagging 算法原理

1996 年,Leo Breiman (PDF, 829 KB)(此链接位于 ibm. com 外部)提出了 Bagging 算法,它包含三个基本步骤:

  1. 自举:Bagging 利用自举采样技术来创建不同的样本。 这种重采样方法通过随机选取数据点并进行替换,生成训练数据集的不同子集。 这意味着每次从训练数据集中选择数据点时,都可以多次选择同一实例。 因此,值/实例在样本中重复两次(或更多)。
  2. 并行训练:然后,使用弱学习器或基础学习器独立和并行训练这些自举样本。
  3. 聚集:最后,根据任务(即回归或分类),采用预测的平均值或多数值来计算更准确的估计值。 在回归问题中,取单个分类器预测的所有输出的平均值,这就是软投票。 而对于分类问题,接受票数最高的分类;这被称为硬投票或多数投票。
Bagging 算法的优势和面临的挑战

Bagging 算法在用于分类或回归问题时,具有许多重要优势,但也面临诸多挑战。 Bagging 算法的主要优势包括:

  • 易于实现:像 scikit-learn(又称 sklearn)这样的 Python 库可以很容易地将基础学习器或估计器的预测结合起来,进而提高模型性能。 它们的文档(链接位于 IBM 外部)展示了可用的模块,您可以在模型优化中利用这些模块。
  • 降低方差:Bagging 可以在学习算法中降低方差。 这对于高维数据尤其有用,因为缺失值可能导致更高的方差,使其更易陷入过拟合,并阻止对新数据集的准确泛化。

Bagging 算法面临的主要挑战包括:

  • 可解释性损失:因为预测中会涉及平均值,所以通过 Bagging 算法很难得出非常精确的业务洞察。 虽然输出比任何单个的数据点都更精确,但是更精确或更完整的数据集也可以在单一分类或回归模型中产生更高的精度。
  • 计算成本高:随着迭代次数的增加,Bagging 算法速度减慢,并且变得更加密集。 因此,它不太适合实时应用。 集群系统或大量处理核心是在大量测试集上快速创建装袋集成的理想选择。
  • 灵活性差:作为一种技术,Bagging 对于不太稳定的算法尤其有效。 一个更加稳定或者受到大量偏差影响的模型,提供的优势不如模型数据集中变化较小的时候多。 正如《机器学习实践指南》(链接位于 IBM 外部)中所指出的:“装袋线性回归模型将有效地返回足够大的 b 的原始预测。”
Bagging 算法的应用

Bagging 技术被广泛应用于许多行业,为现实世界的价值和有趣的观点提供洞察,例如在 GRAMMY Debates with Watson 中。 主要用例包括:

  • 医疗保健:Bagging 已经被用于生成医学数据预测。 例如,研究 (PDF, 2.8 MB)(该链接位于 ibm.com 外部)显示,集成方法已被用于处理一系列生物信息学问题,如基因和/或蛋白质选择,以确定感兴趣的具体特征。 更具体地说,该项研究(该链接位于 ibm.com 外部)根据各种风险预测因子,深入研究了它在预测糖尿病发病方面的作用。
  • IT:Bagging 算法还可以提高 IT 系统的精度和准确性,比如网络入侵检测系统。 同时,该研究(该链接位于 ibm.com 外部)着眼于 Bagging 技术如何提高网络入侵检测的准确性,并降低误报率。
  • 环境:集成方法(如 Bagging 算法)已经应用于遥感领域。 更具体地说,该研究(该链接位于 ibm.com 外部)展示了如何使用它来绘制海岸景观中的湿地类型。
  • 金融:金融行业的深度学习模型也利用了 Bagging,使关键任务自动化,包括欺诈检测、信用风险评估和期权定价问题。 该研究(该链接位于 ibm.com 外部)展示了如何利用 Bagging 和其他机器学习技术来评估贷款违约风险。 而这项研究(该链接位于 ibm.com 外部)则强调了 Bagging 是如何通过防止银行和金融机构内部的信用卡欺诈将风险最小化的。
相关解决方案
IBM SPSS Modeler

IBM SPSS Modeler 可提供预测性分析来帮助您发现数据模式、保证预测准确性并改善决策。

探索 IBM SPSS Modeler
Watson Studio

在任何云中构建和扩展可信 AI。 实现 ModelOps 的 AI 生命周期自动化。

探索 Watson Studio
Bagging 与 Boosting

探索 IBM 数据科学社区,了解更多关于数据科学和机器学习的信息。

探索 IBM 数据科学社区
采取下一步行动

IBM 解决方案支持端到端的机器学习生命周期。 了解 IBM 数据建模工具(例如 IBM SPSS Modeler 和 Watson Studio)如何帮助您构建不同的模型,并通过微调提升准确性,改善预测结果和任何后续的数据分析。 注册获取 IBMid 并加入 IBM 数据科学社区,了解有关数据科学和机器学习的更多信息。

立即加入 IBM 的数据科学社区