目录
[四、 Bagging(引导聚合)](#四、 Bagging(引导聚合))
[4.1 使用引导程序生成训练数据集的步骤:](#4.1 使用引导程序生成训练数据集的步骤:)
[4.2 引导示例:](#4.2 引导示例:)
[4.3 Bagging 的工作原理:](#4.3 Bagging 的工作原理:)
[4.4 在 Bagging 的背景下,偏差意味着什么?](#4.4 在 Bagging 的背景下,偏差意味着什么?)
[4.5 弱学习者的偏见](#4.5 弱学习者的偏见)
[五、boost 提升](#五、boost 提升)
[5.1 Boosting 的工作原理:](#5.1 Boosting 的工作原理:)
[5.2 提升示例:](#5.2 提升示例:)
一、说明
在机器学习中,集成技术 是一种强大的方法,它可以结合多种模型的预测来提高准确性、减少方差并增强对未知数据的泛化能力。集成方法不依赖于单一模型,而是利用多种模型的综合能力来做出更稳健的预测。两种最流行的集成技术是bagging 和boosting,这两种技术都被广泛用于提高模型(尤其是决策树)的性能。
在这篇博客中,我们将深入探讨集成技术,探索bagging 和boosting的概念,并使用示例来说明它们的工作原理。
二、什么是集成技术?
集成技术旨在通过组合多个基础模型(称为弱学习器) 的输出来提高机器学习模型的预测性能。弱学习器是一种表现略优于随机猜测的模型,当将许多弱学习器组合在一起时,结果就是一个强学习器,可显著提高准确性。
集成技术主要有两种类型:
- Bagging(引导聚合)
- 提升
三、为什么要使用集成技术?
- 减少过度拟合:通过对多个模型进行平均,集成技术可以消除可能导致单个模型过度拟合的不规则现象。
- 提高准确性:结合多个弱模型可以得到更准确的预测。
- 提高稳定性:集成对于训练数据的变化更加稳健,对噪声不太敏感。
四、 Bagging(引导聚合)
Bagging是一种集成技术,旨在通过独立训练多个模型然后平均它们的预测来减少方差并防止过度拟合。Bagging 的工作原理是通过引导生成不同的训练数据集,并在每个数据集上训练一个单独的模型。
4.1 使用引导程序生成训练数据集的步骤:
- 原始数据集:从大小为 N 的原始训练数据集开始,包含 N 个数据点或样本。
- 有放回抽样 :对于每个引导数据集,从原始数据集中随机选择 NNN 个样本。由于这是有放回抽样,因此在选择样本后,会将其返回到数据集,以便将来可以再次选择。
- 有些样本会被多次选中。
- 在特定的引导数据集中,其他样本可能根本不会被选中。
3. 创建多个引导数据集:重复上述过程多次,生成 MMM 个不同的引导数据集,其中 MMM 是您计划在 bagging 集成中训练的模型(或弱学习器)的数量。这些数据集中的每一个都将具有相同数量的样本(NNN),但由于随机采样,每个数据集中的数据点分布将有所不同。
4. 训练模型:在每个引导数据集上训练单独的模型(例如决策树)。
5. 聚合预测:所有模型训练完成后,结合它们的预测(例如,在分类任务中通过多数投票或在回归任务中取平均)做出最终预测。
4.2 引导示例:
假设您有一个包含 5 个数据点的小数据集:
原始数据集 = {A,B,C,D,E}
使用引导程序生成大小为 5 的新数据集,您可以进行采样:
- 示例 1:{B,C,A,A,E}(注意 A 出现两次,并且 D 缺失)
- 示例 2:{A,D,C,C,B}(其中 C 出现两次,且 E 缺失)
- 示例 3:{B,B,D,E,C}
每个样本都将用于训练单独的模型。
4.3 Bagging 的工作原理:
- 自举抽样 :从训练集中随机抽取数据**,并进行替换**以创建多个子集(自举样本)。某些数据点可能会重复,而其他数据点可能会在每个样本中被省略。
- 训练模型:在每个引导样本上训练一个单独的模型(通常是像决策树这样的弱学习器)。
- 聚合预测 :对于分类任务,所有模型的预测都使用多数投票相结合。对于回归任务,模型的预测取平均值。
Bagging 技术的一般工作流程
套袋的优点:
- 减少方差:通过对多个模型的预测取平均值,bagging 可以减少模型的方差,从而降低过度拟合的可能性。
- 可并行化:由于每个模型都是独立训练的,因此 bagging 可以轻松并行化。
套袋的缺点:
- 对偏差的效果较差:Bagging 主要减少方差,但如果各个模型较弱,则不能显著减少偏差。
4.4 在 Bagging 的背景下,偏差意味着什么?
当我们说bagging 减少了方差但不能显著减少偏差时,我们强调了模型可能存在的两种类型错误之间的区别:
- 偏差(系统误差):
- 这是由于模型中的假设过于简单而导致的错误。如果单个模型(例如决策树)很弱且过于简单,它们将无法捕捉数据的全部复杂性。因此,即使在 bagging 之后,集成模型仍可能存在较高的偏差,这意味着它会系统地做出错误的预测。
- 例如,如果基础模型是被过度修剪的决策树(浅树),它可能无法捕获特征之间的重要交互,从而导致对训练数据的预测不准确。
2.方差(对数据的敏感性):
- 方差是指模型对训练数据波动的敏感度。方差较大的模型(如深度决策树)可能会过度拟合训练数据,捕获噪声并导致对未知数据的泛化能力较差。Bagging 通过组合在不同数据子集上训练的多个模型,有助于消除这种过度拟合,从而降低方差。
- 好的模型 应该具有较低的方差(对异常值不太敏感),因为高方差可能导致过度拟合,这意味着该模型在训练数据上表现良好,但在看不见的数据上表现不佳(即无法概括)。
4.5 弱学习者的偏见
在 bagging 中,弱学习器是指偏差较大但方差较小的模型。例如,浅层决策树可能表现不佳,因为它没有以足够详细的方式对数据进行建模(偏差较大)。当 bagging 结合许多此类弱学习器时,由于模型被聚合在一起,因此集合的方差会降低,但由于所有单个模型都存在系统性偏差,因此 bagging 不会纠正这种偏差。
五、boost 提升
Boosting 是另一种集成技术,其重点是通过按顺序训练模型来减少偏差和方差,其中每个后续模型都会尝试纠正先前模型的错误。与 bagging 不同,bagging 是独立训练模型,而 boosting 是迭代构建模型。
在回归的情况下,测试数据将进入每个模型,并将给出每个模型返回的所有值的平均值。对于分类,将进行投票(技术术语 - 最大投票分类器),并将具有多数结果的类别宣布为最终结果
5.1 Boosting 的工作原理:
- 顺序训练弱学习者:模型一个接一个地进行训练,每个模型都更加关注先前模型错误分类的数据点。
- 调整权重:在每次迭代中,增加预测错误的样本的权重,因此后续模型会更加关注那些难以预测的样本。
- 总体预测:最终预测是通过对各个模型预测取加权平均值或总和来做出的。
5.2 提升示例:
假设一个增强模型被训练来预测房价。第一个弱学习器可能在大房子上表现不佳,但第二个弱学习器专注于提高对这些大房子的预测。这个过程继续进行,每个新模型都会关注以前的模型出错的领域。
提升的优点:
- 减少偏差和方差:提升可减少模型的偏差和方差,从而获得高度准确的预测。
- 对弱学习者很有效:即使是像浅决策树这样的弱模型,也可以通过增强来组合以创建强大的预测器。
Boosting 的缺点:
- 对异常值敏感:由于增强侧重于纠正错误,因此它可能会过分强调嘈杂的数据点或异常值。
- 计算成本高昂:Boosting 是一个顺序过程,因此比 bagging 等可并行方法慢。