什么是数据挖掘中的提升?

2025年3月17日 | 阅读 8 分钟

提升是一种集成学习方法,它将一组弱学习器组合成强学习器,以最小化训练误差。在提升中,会随机抽取一部分数据,用模型拟合,然后进行顺序训练。也就是说,每个模型都试图弥补其前一个模型的弱点。每个分类器的弱规则在每次迭代中都会被组合起来,形成一个严格的预测规则。

提升是一种将弱学习器转换为强学习器的有效算法。它们通过加权平均值和更高的投票值来利用弱学习器和强学习器之间的对话进行预测。这些算法使用决策桩(decision stamp)和保证金最大化分类(margin maximizing classification)进行处理。

What is Boosting in Data Mining

目前有三种可用的算法:AdaBoost(自适应提升算法)、Gradient Boosting(梯度提升)和XG Boosting(XGBoost)算法。这些是遵循训练过程来预测和微调结果的机器学习算法。

示例

让我们通过以下示例来理解这个概念。以电子邮件为例。您将如何识别您的电子邮件,它是垃圾邮件还是非垃圾邮件?您可以通过以下条件来识别:

  • 如果电子邮件包含很多来源,这意味着它是垃圾邮件。
  • 如果电子邮件只包含一个文件图像,那么它是垃圾邮件。
  • 如果电子邮件包含“您赢得了xxxxx美元彩票”这样的消息,那么它是垃圾邮件。
  • 如果电子邮件包含一些已知来源,那么它不是垃圾邮件。
  • 如果它包含官方域名,如educba.com等,那么它不是垃圾邮件。

上述规则不足以识别垃圾邮件或非垃圾邮件;因此,这些规则被称为弱学习器

为了将弱学习器转换为强学习器,可以使用以下方法组合弱学习器的预测:

  1. 使用平均值或加权平均值。
  2. 考虑预测具有更高的投票数。

考虑上述5条规则,有3票支持垃圾邮件,2票支持非垃圾邮件。由于垃圾邮件的投票数较高,我们将其视为垃圾邮件。

为什么要使用提升?

为了解决复杂的问题,我们需要更先进的技术。假设有一个包含猫狗图像的数据集,您被要求构建一个模型来将这些图像分类为两个不同的类别。和每个人一样,您将开始使用以下规则来识别图像:

  1. 图像有尖耳朵:猫
  2. 图像有猫状眼睛:猫
  3. 图像有更大的四肢:狗
  4. 图像有锐利的爪子:猫
  5. 图像有更宽的嘴部结构:狗

这些规则帮助我们识别图像是狗还是猫。然而,如果仅根据单个规则来分类图像,预测可能会有误。这些规则被称为弱学习器,因为它们不足以将图像分类为猫或狗。

因此,为了确保我们的预测更准确,我们可以结合弱学习器的预测,使用多数投票规则或加权平均。这构成了强学习器模型。

在上面的例子中,我们定义了5个弱学习器,其中大多数规则(即5个学习器中有3个预测图像为猫)得出了图像是猫的预测。因此,我们的最终输出是猫。

提升算法是如何工作的?

提升算法工作基本原理是生成多个弱学习器,并将它们的预测组合成一个严格的规则。这些弱规则是通过在数据集的不同分布上应用基础机器学习算法来生成的。这些算法在每次迭代中生成弱规则。经过多次迭代后,弱学习器被组合成一个强学习器,该学习器将做出更准确的预测。

What is Boosting in Data Mining

算法工作流程如下:

步骤 1:基础算法读取数据,并为每个样本观测分配相等的权重。

步骤 2:识别基础学习器产生的错误预测。在下一次迭代中,这些错误预测将分配给下一个基础学习器,并赋予更高的权重。

步骤 3:重复步骤 2,直到算法能够正确分类输出。

因此,提升的主要目标是更多地关注被错误分类的预测。

提升的类型

提升方法侧重于迭代地组合弱学习器来构建一个能够做出更准确预测的强学习器。作为提醒,弱学习器在分类数据时比随机猜测略好。这种方法可以为预测问题提供稳健的结果,在某些任务上可以优于神经网络和支持向量机。

提升算法在顺序过程中如何创建和聚合弱学习器方面可能有所不同。三种流行的提升方法包括:

1.自适应提升或AdaBoost:此方法进行迭代操作,识别被错误分类的数据点并调整它们的权重以最小化训练误差。模型持续顺序优化,直到产生最强的预测器。

AdaBoost通过将几个弱学习器组合成一个强学习器来实现。AdaBoost中的弱学习器考虑单个输入特征,并绘制一个单次分裂的决策树,称为决策桩(decision stump)。在绘制第一个决策桩时,所有观测值被赋予相等的权重。

分析第一个决策桩的结果,如果任何观测值被错误分类,则为其分配更高的权重。通过考虑更高权重的观测值更重要,来绘制一个新的决策桩。再次,如果任何观测值被错误分类,它们将被赋予更高的权重,这个过程会一直持续,直到所有观测值都落入正确的类别。

AdaBoost可用于分类和回归问题。然而,它更常用于分类。

2.梯度提升(Gradient Boosting):梯度提升也基于顺序集成学习。这里的基学习器是顺序生成的,因此当前基学习器始终比前一个更有效,即整体模型随着每次迭代顺序改进。

这种提升类型的不同之处在于,错误分类结果的权重不会递增。相反,梯度提升方法试图通过添加一个新模型来优化前一个学习器的损失函数,该模型添加弱学习器以减小损失函数。

这里的核心思想是克服前一个学习器预测中的错误。这种提升有三个主要组成部分:

  • 损失函数(Loss function):损失函数的使用取决于问题的类型。梯度提升的优点在于,不需要为每个损失函数都设计新的提升算法。
  • 弱学习器(Weak learner):在梯度提升中,决策树被用作弱学习器。回归树用于提供真实值,这些值可以组合起来创建正确的预测。就像在AdaBoost算法中一样,使用单次分裂的小树,即决策桩。对于较大的级别,例如4-8,使用较大的树。
  • 加性模型(Additive Model):树以一次一个的方式添加到此模型中。现有的树保持不变。在添加树的过程中,使用梯度下降来最小化损失函数。

与AdaBoost一样,梯度提升也可用于分类和回归问题。

3.极端梯度提升或XGBoost:XGBoost是一种高级梯度提升方法。XGBoost由陈天奇开发,属于分布式机器学习社区(DMLC)类别。

该算法的主要目标是提高计算的速度和效率。梯度下降提升算法由于按顺序分析数据集,因此计算速度较慢。因此,XGBoost用于增强或极大地提升模型的性能。

XGBoost旨在专注于计算速度和模型效率。XGBoost提供的主要功能包括:

What is Boosting in Data Mining
  • 并行处理(Parallel Processing):XG Boost为树构建提供并行处理,在训练过程中利用CPU核心。
  • 交叉验证(Cross-Validation):XG Boost允许用户在每次迭代中运行提升过程的交叉验证,从而可以轻松地在一个运行中获得精确的最佳提升迭代次数。
  • 缓存优化(Cache Optimization):它提供了算法的缓存优化,以提高执行速度。
  • 分布式计算(Distributed Computing):对于训练大型模型,XG Boost支持分布式计算。

提升的优点和挑战

提升方法为分类或回归问题带来了许多优点和挑战。提升的优点包括:

  • 易于实现(Ease of Implementation):提升可以与多种超参数调优选项一起使用以改进拟合。无需数据预处理,并且提升算法内置例程来处理缺失数据。在Python中,scikit-learn库中的集成方法使得实现AdaBoost、XGBoost等流行的提升方法变得容易。
  • 偏差降低(Reduction of bias):提升算法以顺序方式组合多个弱学习器,并迭代地改进观测。这种方法有助于降低高偏差,这在浅层决策树和逻辑回归模型中很常见。
  • 计算效率(Computational Efficiency):由于提升算法具有在训练期间提高预测能力的特殊功能,因此可以帮助降低维度并提高计算效率。

提升的挑战包括:

  • 过拟合(Overfitting):研究中存在一些关于提升是否有助于减少过拟合或使其恶化的争论。我们将其列为挑战,因为在发生时,预测无法泛化到新数据集。
  • 计算量大(Intense computation):提升中的顺序训练难以扩展。由于每个估计器都建立在前一个估计器之上,因此提升模型的计算成本可能很高,尽管XGBoost试图解决其他提升方法的扩展性问题。与bagging相比,提升算法的训练速度可能较慢,因为大量参数也会影响模型的行为。
  • 对异常值敏感(Vulnerability to outlier data):提升模型容易受到异常值或与数据集中其余部分不同的数据值的影响。由于每个模型都试图纠正前一个模型的错误,异常值会严重扭曲结果。
  • 实时实现(Real-time implementation):由于提升算法比其他过程更复杂,因此您可能会发现将其用于实时实现具有挑战性。提升方法具有高度的适应性,因此您可以使用各种模型参数,这些参数会立即影响模型的性能。

提升的应用

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

  • 医疗保健:提升用于降低医疗数据预测中的错误,例如预测心血管疾病风险因素和癌症患者的生存率。例如,研究表明,集成方法在识别可以从心血管疾病预防性治疗中受益的患者方面显著提高了准确性,同时避免了对其他患者的不必要治疗。同样,另一项研究发现,将提升应用于多个基因组学平台可以提高对癌症生存时间的预测。
  • IT:梯度提升回归树用于搜索引擎的页面排名,而Viola-Jones提升算法用于图像检索。正如康奈尔大学所指出的,提升分类器可以在预测方向明确时更早地停止计算。搜索引擎可以停止评估排名较低的页面,而图像扫描仪只会考虑包含所需对象的图像。
  • 金融:提升与深度学习模型结合,自动化关键任务,包括欺诈检测、定价分析等。例如,信用卡欺诈检测和金融产品定价分析中的提升方法提高了分析海量数据集以最大程度地减少财务损失的准确性。