主页

topics

Boosting

什么是 Boosting 算法?
深入了解 IBM 的 boosting 解决方案 注册获取 AI 更新
包含云朵、饼图、象征符号图形的拼贴插图
什么是 Boosting 算法?

Boosting 是一种集成学习方法,它将一组弱学习器组合成一个强学习器,以最大限度地减少训练误差。Boosting 算法可以提高数据挖掘计划的预测能力。

在 boosting 中,选择随机数据样本,拟合模型,然后按顺序训练,也就是说,每个模型都试图补偿其前身的弱点。在每次迭代中,来自每个分类器的弱规则被组合成一个强预测规则。

集成学习

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

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

Bagging 算法与 Boosting 算法

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

Bagging 和 boosting 的另一个区别在于它们的使用方式。例如,Bagging 方法通常用于呈现高方差和低偏差的弱学习器,而 Boosting 方法在观察到低方差和高偏差时则会被利用。虽然可以使用 bagging 来避免过度拟合,但是 boosting 方法更容易出现 这种情况 (链接位于 ibm.com 之外),尽管这实际上取决于数据集。但是,参数调整可以帮助避免该问题。 

因此,bagging 和 boosting 在现实世界中也有不同的应用。Bagging 已用于贷款审批流程和统计基因组学,而 boosting 则更多地用于图像识别应用程序和搜索引擎。 

如何选择合适的 AI 基础模型

使用此模型选择框架选择最合适的模型,同时平衡性能要求与成本、风险和部署需求。

相关内容 注册以获取有关 AI 数据存储的电子书
Boosting 类型

Boosting 方法侧重于以迭代方式组合弱学习器,以构建可以预测更准确结果的强学习器。需要提醒的是, 弱学习器对数据的分类效果要略胜于随机猜测。这种方法可以为预测问题提供 稳健的结果,甚至可以在图像检索 等任务上胜过神经网络和支持向量机(链接位于 ibm.com 外部)。  

Boosting 算法在顺序过程中创建和聚合弱学习器的方式可能有所不同。三种常用的 boosting 方法包括: 

  • 自适应 boosting 或 AdaBoost:Yoav Freund 和 Robert Schapire 被认为发明了 AdaBoost 算法。该方法以迭代方式运行,识别误分类的数据点并调整其权重以最小化训练误差。该模型以顺序方式继续优化,直到产生最强的预测因子。  
  • Gradient boosting:Jerome H. Friedman 在 Leo Breiman 工作的基础上,开发出 gradient boosting,其工作原理是将预测器依次添加到一个集合中, 每个预测器都会纠正前一个预测器的错误。但是,gradient boosting 不是像 AdaBoost 那样更改数据点的权重,而是 训练前一个预测变量的残差。之所以使用 gradient boosting,是因为它结合了 gradient descent 算法和 boosting 方法。  
  • Extreme gradient boosting 或 XGBoost: XGBoost 是 gradient boosting 技术的一种实现方式,专为提高计算速度和扩大计算规模而设计。XGBoost 利用 CPU 上的多个内核, 允许在训练期间并行学习。  

Boosting 算法的优势和面临的挑战

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

Boosting 算法的主要优势包括:  

  • 易于实施:Boosting 可与多个超参数调整选项结合使用,以改进拟合效果。无需预处理数据,且诸如 Boosting 之类的算法具有内置的例程来处理缺失数据。在 Python 中, scikit-learn 集成方法库(也称为 sklearn.ensemble)可以轻松实现流行的加速方法,包括 AdaBoost、XGBoost 等  
  • 减少偏差: 提升算法将多个弱学习器按顺序结合起来,对观察结果进行迭代改进。这种方法有助于减少浅决策树和逻辑回归模型中常见的高偏差。 
  • 计算效率:由于提升算法在训练过程中只选择能提高预测能力的特征,因此有助于降低维度并提高计算效率。  

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

  •  过度拟合:于提升是否有助于减少或加剧过度拟合,研究中存在一些争议 (链接位于ibm.com外部)。我们将其归入挑战之中,因为在确实发生的情况下,预测无法推广到新的数据集。  
  •  密集的计算:boosting 中的连续训练很难扩展。尽管 XGBoost 试图解决其他类型的 boosting 方法中出现的可扩展性问题,但由于每个估算器都建立在其前身之上,因此 boosting 模型的计算成本可能很高。与 bagging 相比,boosting 算法的训练速度可能更慢,因为大量参数也会影响模型的行为。 
Boosting 的应用

Boosting 算法非常适合各行各业的人工智能项目,包括:  

  • 医疗保健:Boosting 用于降低医疗数据预测中的错误,例如预测心血管风险因素和癌症患者的生存率。例如,研究 (链接位于 ibm.com 之外)表明,集成方法显著提高了识别可从心血管疾病预防治疗中受益的患者的准确性,同时避免了对其他患者的不必要治疗。同样,另一项研究(链接位于 ibm.com 以外)发现,将 boosting 技术应用于多个基因组学平台可以改善对癌症存活时间的预测。 

  • IT:梯度增强回归树在搜索引擎中用于页面排名,而 Viola-Jones 提升算法用于 图像检索。正如康奈尔大学 指出的那样(链接位于 ibm.com 外部),当预测的发展方向明确时,增强型分类器可以更快地停止计算。这意味着 搜索引擎可以停止评估排名较低的页面,而图像扫描仪只会考虑实际包含所需对象的图像。   

  • 金融:Boosting 与深度学习模型一起用于自动化关键任务,包括欺诈检测、定价分析等。例如,信用卡欺诈检测和金融产品定价分析 (链接位于 ibm.com 外部)中的 boosting 方法提高了分析海量数据集的准确性,从而最大限度地减少了财务损失。  

相关解决方案
IBM SPSS Modeler

借助直观的拖放式数据科学工具,提高投资回报率并加速实现价值的时间。

深入了解 IBM SPSS Modeler
IBM® Cloud 解决方案

混合。开放。弹性。 您的数字化转型平台与合作伙伴。

深入了解云解决方案
IBM Cloud Pak 解决方案

AI 驱动型混合云软件。

深入了解 Cloud Pak 解决方案
资源 IBM Research: quantum boosting

本文展示了量子技术如何提高经典 AdaBoost 的时间复杂度。

SnapBoost: A Heterogeneous Boosting Machine

IBM Research 研究了 Heterogeneous Newton Boosting Machine (HNBM),其中基本假设类可能因 boosting 迭代而异。

采取后续步骤

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

探索 SPSS Modeler 免费试用 30 天