XGBoost - 过拟合控制



XGBoost 能够处理大型数据集并构建高度准确的模型,这使其非常强大。与任何其他机器学习模型一样,XGBoost 也容易出现过拟合。

由于过拟合模型从训练集中收集了过多的信息,其中可能包含噪声和不重要的模式,因此它在新的、未见过的数据上可能表现不佳。在本章中,我们将了解 XGBoost 中过拟合的管理。

什么是过拟合?

在我们讨论 XGBoost 和其他梯度提升模型中过拟合是如何发生之前,让我们首先解释什么是过拟合。过拟合是指机器学习模型过分关注训练数据特有的细节。模型只关注训练数据中的特殊模式,而不是学习适用于其他数据的通用模式。这使得它在尝试对新数据进行预测时效用降低。

为什么过拟合是一个问题?

过拟合是一个问题,因为它限制了模型在新数据上良好运行的能力。如果模型过于关注训练集特有的模式,它将无法找到适用于其他数据的模式。这意味着当模型用于新数据或不同数据时,将无法给出良好的结果。

这是一个问题,因为大多数机器学习模型都是专门设计用于识别可应用于广泛人群的广泛模式。当应用于未观察到的数据时,过度拟合训练数据集的模型将无法生成准确的预测。

如何使用 XGBoost 检测过拟合

好消息是,机器学习模型的过拟合很容易识别。您只需确定您的机器学习模型是否过拟合,即可对在训练期间未遇到的数据集进行预测。

如果您的模型在对未知数据集进行预测方面表现良好,那么它可能没有过度拟合训练集。如果它对未知数据进行的预测远差于对训练数据进行的预测,那么您的模型很可能过度拟合了训练数据。

XGBoost 是否存在过拟合问题?

在大多数情况下,XGBoost 模型会过度拟合训练数据集。这在开发具有多个深层树的复杂模型时尤其常见,或者在有限的训练数据集上训练 XGBoost 模型时尤其常见。

与随机森林模型等其他基于树的模型相比,XGBoost 模型更容易过度拟合训练数据集。一般来说,随机森林模型对训练期间使用的超参数的选择不太敏感,而 XGBoost 和梯度提升树模型则不然。这意味着为了评估具有各种超参数设置的模型的性能,执行超参数优化并使用交叉验证或验证数据集非常重要。

如何避免 XGBoost 过拟合

在创建 XGBoost 或梯度提升树模型以防止过拟合时,您可以遵循以下一些准则。

1. 使用更少的树

处理 XGBoost 模型过拟合的一种技术是减少模型中的树的数量。大型的多参数模型通常比简单的小型模型更容易过拟合。通过减少模型中的树的数量,您可以简化模型并降低过拟合的可能性。

2. 使用浅层树

简化 XGBoost 模型并防止其过拟合的另一种方法是限制模型仅使用浅层树。因此,每棵树都经历较少的拆分,从而降低了模型的复杂性。

3. 使用较低的学习率

降低学习率也会使您的 XGBoost 模型不太容易过拟合。这将作为一种正则化技术,以防止您的模型过分关注毫无意义的细节。

4. 减少特征数量

简化机器学习模型的另一种极佳技术是限制它可以使用的特征。这是另一种防止 XGboost 模型过拟合的有用方法。

5. 使用大型训练数据集

训练数据集的大小是可能影响模型过拟合可能性的一个重要因素。使用更大的数据集将降低模型过拟合的可能性。如果您发现您的 XGBoost 模型过拟合并且您可以访问更多训练数据,请尝试增加用于训练模型的数据量。

控制 XGBoost 中过拟合的技术

为了防止 XGBoost 过拟合,我们可以使用几种方法。让我们在这里看看每一个 -

  • 正则化:正则化是一种防止模型变得过于复杂的方法。由于复杂性受到惩罚,因此模型更难以记住数据。

  • 提前停止:如果在预定义的循环次数后,模型在验证集上的性能没有提高,则可以使用称为“提前停止”的技术停止训练过程。这可以防止模型训练过长时间并过度拟合训练集。

  • 限制树的深度:如前所述,非常深的树会捕获过多的细节,这可能导致过拟合。可以限制树的深度以防止模型变得过于复杂。

  • 学习率 (Eta):模型的学习率决定了它学习的速度。较高的学习率会导致更快的学习,但模型突然改变其非普遍分布的学习模式的能力可能导致过拟合。

广告

© . All rights reserved.