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 级别,更多的特征权重被设置为零,从而产生更简单、更易于理解的模型。
数学表达式:
惩罚 = α × ∑ |weights|
L2(Ridge)正则化
L2 正则化用于将特征权重的平方值添加到损失函数中。
与 L1 相比,L2 正则化不会将特征权重驱动为零;但它支持更低、更均匀分布的特征权重。
XGBoost 中的 L2 正则化程度由 lambda 超参数控制。对于更正则化、特征加权和简化的模型,可获得更高的 lambda 值。
数学表达式:
惩罚 = λ × ∑ (权重)2
XGBoost 中的正则化参数
以下是 XGBoost 中使用的参数列表 −
alpha(权重的 L1 正则化项):通过调节 L1 正则化,可促进数据稀疏。alpha 值越大,权重惩罚越大,导致更多权重趋近于零。
lambda(权重的 L2 正则化项):通过控制 L2 正则化,降低模型的权重和复杂度。lambda 值越高,模型对单个特征的敏感度就越低。
提前停止
除了 L1 和 L2 正则化之外,XGBoost 还提供提前停止作为正则化策略。通过在训练时跟踪验证指标并在指标停止改进时停止训练过程,提前停止可以减少过度拟合。
如果没有看到改进,则在退出 XGBoost 之前等待的轮数由 early_stopping_rounds 选项设置。
提前停止有助于确定模型学习重要模式的理想时刻,而不会对噪声过于敏感。
树特定的正则化
XGBoost 提供树特定的正则化技术。min_child_weight 选项设置树中每个叶节点的最小实例权重总数。值越高,过度拟合的风险就越低,树越简单,越通用。这控制了树的深度和复杂性。
另一个树特定的正则化选项是 gamma 参数,它确定在叶节点上执行后续划分所需的最低损失减少。更高的 gamma 值可使树设计更简单,分割更保守。
正则化的重要性
在 XGBoost 中,通过微调 alpha 和 lambda,您可以控制模型复杂性和性能之间的权衡。因此,下面给出了一些要点,它们说明了正则化为何重要 −
防止过度拟合:通过惩罚复杂模型,正则化可防止它们与训练集过于接近。
提高泛化能力:正则化可确保模型在使用新的未经测试的数据时表现良好。
更好的特征选择:L1 正则化可用于将不太重要的特征权重降至零,从而将它们从模型中删除,使其更易于阅读。