什么是 Boosting 算法?

什么是 Boosting 算法?

机器学习方面,提升方法是一种集成学习方法,它将一组弱学习器组合成一个强学习器,以最大限度地减少训练误差。提升算法可以提高图像、物体和功能识别、情感分析数据挖掘等方面的预测能力。

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

更多关于集成学习的内容

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

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

专家为您带来最新的 AI 趋势

获取有关最重要且最有趣的 AI 新闻的精选洞察分析。订阅我们的每周 Think 时事通讯。请参阅 IBM 隐私声明

谢谢!您已订阅。

您的订阅将以英语提供。您会在每份时事通讯中找到一个取消订阅链接。您可以在此处管理您的订阅或取消订阅。有关更多信息,请参阅我们的 IBM 隐私声明

Bagging 算法与 Boosting 算法

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

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

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

AI 学院

让 AI 服务于客户服务

了解生成式 AI 如何提供更加无缝、令人满意的客户体验,并在以下三个关键领域提高组织的工作效率:自助服务、人工客服和联络中心运营。

Boosting 类型

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

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

  • 自适应提升方法或 AdaBoost:Yoav Freund 和 Robert Schapire 被认为发明了 AdaBoost 算法。该方法以迭代方式运行,识别误分类的数据点并调整其权重以最小化训练误差。该模型以顺序方式继续优化,直到产生最强的预测因子。

  • 梯度提升:Jerome H. Friedman 在 Leo Breiman 工作的基础上,开发出 梯度提升方法,其工作原理是将预测器依次添加到一个集合中, 每个预测器都会纠正前一个预测器的错误。但是,梯度提升方法不是像 AdaBoost 那样更改数据点的权重,而是 训练前一个预测变量的残差。之所以使用梯度提升方法,是因为它结合了梯度下降算法和提升方法。

  • 极端梯度提升或 XGBoost: XGBoost 是梯度提升技术的一种实现方式,专为提高计算速度和扩大计算规模而设计。XGBoost 利用 CPU 上的多个内核, 允许在训练期间并行学习。

提升方法的优点和面临的挑战

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

提升方法的主要优点包括:

  • 易于实施:提升方法可与多个超参数调整选项结合使用,以改进拟合效果。无需预处理数据,且诸如提升方法之类的算法具有内置的例程来处理缺失数据。在 Python 中, scikit-learn 集成方法库(也称为 sklearn.ensemble)可以轻松实现流行的加速方法,包括 AdaBoost、XGBoost 等

  • 减少偏差: 提升算法将多个弱学习器按顺序结合起来,对观察结果进行迭代改进。这种方法有助于减少浅决策树和逻辑回归模型中常见的高偏差。

  • 计算效率:由于提升算法在训练过程中只选择能提高预测能力的特征,因此有助于降低维度并提高计算效率。

提升方法面临的主要挑战包括:

  •  过拟合: 关于提升是否有助于减少过拟合或加剧过拟合, 研究 中存在一些争议。我们将其归类为挑战,因为在发生这种情况时,预测结果无法推广到新的数据集。

  •  密集的计算: 提升的顺序训练很难扩展。由于每个估计器都是基于其前代估计器构建的,因此尽管 XGBoost 试图解决其他类型的提升方法中存在的可扩展性问题,但提升方法模型的计算成本可能很高。与袋装算法相比,提升算法的训练速度可能更慢,因为大量参数也会影响模型的行为。

Boosting 的应用

提升方法非常适合各行各业的人工智能项目,包括:

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

 

  • IT:梯度提升回归树在搜索引擎中用于页面排名,而 Viola-Jones 提升算法用于 图像检索。Cornell 指出,当预测的方向明确时,增强分类器可以更快地停止计算。这意味着 搜索引擎可以停止评估排名较低的页面,而图像扫描仪只会考虑实际包含所需对象的图像。

  • 金融:提升方法与深度学习模型一起用于自动化关键任务,包括欺诈检测、定价分析等。例如,信用卡欺诈检测和金融产品定价分析中的提升方法提高了海量数据集分析的准确性,从而将经济损失降至最低。
相关解决方案
IBM watsonx.ai

使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。

了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。

深入了解 AI 解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取后续步骤

一站式访问跨越 AI 开发生命周期的功能。利用用户友好型界面、工作流并访问行业标准 API 和 SDK,生成功能强大的 AI 解决方案。

深入了解 watsonx.ai 预约实时演示