什么是 Bagging 算法?
携手 IBM 应用 Bagging 算法 注册获取云更新
电脑显示器、服务器、云朵、点的组合拼贴插图
什么是 Bagging 算法?

Bagging 算法又称引导聚合算法,是一种集成学习方法,通常用于降低噪声数据集中的方差。

在 Bagging 算法中,用替换法来选择训练集中的随机数据样本,这意味着可多次选择单个数据点。在生成多个数据样本后,将单独训练这些弱模型,根据任务类型(如回归或分类),这些预测的平均值或多数值会产生更准确的估计值。

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

集成学习

集成学习为“群体智慧”的观点提供了依据,这表明一个更大群体的决策通常要优于专家个人的决策。与此类似,集成学习指的是一组(集成的)基础学习器或模型,它们共同协作以获得更准确的最终预测。

单个模型,又称基础或弱学习器,由于高方差或高偏差可能个体性能不佳。然而,当弱学习器聚集后,可以形成一个强学习器,它们的结合可以减少偏差或降低方差,产生更好的模型性能。

集成方法通常使用决策树来说明,因为这种算法在没有修剪的情况下容易出现过拟合(高方差和低偏差)。如果决策树非常小,比如决策树桩,即仅有一层的决策树,则容易出现欠拟合(低方差和高偏差)。

请记住,当一个算法在训练集中出现过拟合或欠拟合现象时,它不能很好地泛化到新的数据集,所以集成方法用于抵消这种行为,以便将模型泛化到新的数据集。虽然决策树会表现出高方差或高偏差,但值得注意的是,它并不是唯一一种利用集成学习在偏差-方差权衡中找到“最佳位置”的建模技术。

Bagging 算法与 Boosting 算法

Bagging 算法和 Boosting 算法是两种主要的集成学习方法。正如本研究(ibm.com 外部链接)中强调的那样,这些学习方法之间的主要区别在于它们的训练方式。

在 Bagging 算法中,弱学习器并行训练,但在 Boosting 算法中,它们按顺序进行学习。这意味着会构建一系列模型,并且随着每次新的模型迭代,前一个模型中误分类数据的权重会增加。

这种权重的重新分配可帮助算法发现需要关注的参数,从而提高其性能。AdaBoost 是英文“adaptative boosting”(自适应提升)的缩写,它是同类算法中的第一个,也是最受欢迎的 Boosting 算法之一。其他类型的 Boosting 算法包括 XGBoost、GradientBoost 和 BrownBoost。

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

实现混合云的全部价值

连接并集成系统,以使您的基础架构为 AI 做好准备。

相关内容 注册获取应用程序现代化指南
Bagging 算法的原理

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

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

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

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

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

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

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

  • 医疗保健:Bagging 算法已经被用于生成医学数据预测。例如,研究(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 Watson® Studio

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

深入了解 IBM Watson Studio
资源 Bagging 算法与 Boosting 算法

通过 IBM 数据科学社区,了解两种集成学习方法之间的差异。

什么是 Boosting 算法?

了解 Boosting 算法及其如何提高数据挖掘计划的预测能力。

采取后续步骤

IBM SPSS Modeler 是一种可视化数据科学和机器学习 (ML) 解决方案,它通过自下而上的假设生成方法揭示隐藏在数据中的模式和模型。世界各地的组织都将它用于数据准备和发现、预测分析、模型管理和部署以及 ML,以将数据资产变现。

探索 SPSS Modeler 免费试用 30 天