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.