XGBoost - 正则化



强大的机器学习算法 XGBoost 提供了一系列正则化技术,可以减少过拟合并提高模型泛化能力。

以下是 XGBoost 的主要正则化方法:

  • L1 (Lasso) 正则化:由 alpha 超参数控制

  • L2 (Ridge) 正则化:lambda 超参数影响它

  • 提前停止:由 early_stopping_rounds 选项控制。

  • 最小叶子权重:要求每个叶子节点具有最小的实例权重总和。

  • Gamma:表示拆分叶子节点所需的最小损失减少。

正则化通过对损失函数应用惩罚来帮助管理模型复杂度,从而阻止模型过度拟合训练数据中的噪声。

了解并使用这些正则化方法对于优化 XGBoost 模型并在未知数据上提高性能非常重要。

L1 和 L2 正则化

XGBoost 主要支持两种正则化:第一种是 L1 (Lasso),第二种是 L2 (Ridge)。

L1 (Lasso) 正则化

L1 正则化将特征权重的绝对值添加到损失函数中,通过将一些特征权重推至完全为零来鼓励较弱的模型。

XGBoost 中的 alpha 超参数控制 L1 正则化的强度。在较高的 alpha 水平下,更多特征权重被设置为零,从而产生更简单、更容易理解的模型。

数学表达式

Penalty = α × ∑ |weights|

L2 (Ridge) 正则化

L2 正则化用于将特征权重的平方值添加到损失函数中。

与 L1 相比,L2 正则化不会将特征权重推至零;但是,它支持较低、更均匀分布的特征权重。

XGBoost 中 L2 正则化的程度由 lambda 超参数控制。对于更正则化、特征加权和简化的模型,获得更高的 lambda 值。

数学表达式

Penalty = λ × ∑ (weights)2

XGBoost 中的正则化参数

以下是 XGBoost 中使用的参数列表:

  • alpha (权重上的 L1 正则化项):通过调节 L1 正则化,这促进了稀疏数据。更大的 alpha 值通过增加权重上的惩罚来驱动更多权重变为零。

  • lambda (权重上的 L2 正则化项):通过控制 L2 正则化来减少模型的权重和复杂度。在更高的 lambda 值下,模型对单个特征变得不那么敏感。

提前停止

除了 L1 和 L2 正则化之外,XGBoost 还提供提前停止作为一种正则化策略。通过在训练期间跟踪验证指标,并在指标停止改进时停止训练过程,提前停止可以减少过拟合。

early_stopping_rounds 选项设置了如果未观察到改进,则在退出 XGBoost 之前等待的轮数。

提前停止有助于确定模型学习到重要模式而不会过度敏感于噪声的理想时刻。

树特定的正则化

XGBoost 提供了树特定的正则化技术。min_child_weight 选项设置树中每个叶子节点的最小实例权重总和。较高的值提供了较低的过拟合风险,更简单、更通用的树。这控制了树的深度和复杂度。

另一个树特定的正则化选项是 gamma 参数,它确定在叶子节点上执行后续拆分所需的最小损失减少。较高的 gamma 值会导致更简单的树结构和更保守的拆分。

正则化的重要性

在 XGBoost 中,通过微调 alpha 和 lambda,您可以控制模型复杂度和性能之间的权衡。因此,以下给出了一些重要要点,说明了为什么正则化很重要:

  • 防止过拟合:通过惩罚复杂的模型,正则化可以防止它们过于拟合训练集。

  • 提高泛化能力:正则化确保模型在使用新的、未经测试的数据时也能表现良好。

  • 更好的特征选择:L1 正则化可用于将不重要的特征权重推至零,从而将其从模型中移除,并使其更易于理解。

广告

© . All rights reserved.