CatBoost - 決策樹



決策樹是機器學習的主要組成部分,主要用於分類和迴歸應用。它透過根據規則集將特徵空間分解成更小的部分來工作,從而建立一個樹狀結構,其中每個內部節點都有一個基於特徵的決策,每個葉節點給出輸出標籤或值。

另一方面,Boosting 是一種整合學習的過程,它特別地結合多個弱學習器(即決策樹)來建立一個強學習器。它主要關注訓練新模型以改進之前的錯誤,從而修改整體預測效能。以下是 CatBoost 決策樹的視覺化圖:

CatBoost - Decision Tree

讓我們看看 CatBoost 中的樹是如何生長的:

深度優先樹生長

深度優先樹的開發也稱為逐層或廣度優先生長。顧名思義,它涉及水平地生長樹木,直到它們達到分配的最大深度。在每一層,演算法都會檢查樹中的所有節點,並對其進行劃分以建立下一層的新的節點。

深度優先樹的特性

以下是深度優先樹的特性:

  • 平衡樹生長:為了保持樹的平衡,它透過在每一層(深度優先)進行分裂來生長。在繼續到下一層之前,樹的每一層都完全建立。

  • 葉節點分裂:CatBoost 在選擇最佳分裂之前,會檢查每一深度下的所有替代分裂。與其他每次只分裂一個葉節點的方法相比,它嘗試在每次迭代中分裂多個葉節點。

  • 高效處理高維資料:為了保持平衡,樹木將在每一層(深度優先)被分開。在繼續到下一層之前,樹的每一層都完全設定好了。

  • 深度控制:CatBoost 在選擇最佳分裂之前,會比較每一深度下的所有替代分裂。與其他每次只分裂一個葉節點的方法相比,它在每次迭代中分裂多個葉節點。

  • 並行化:CatBoost 的深度優先樹結構允許高效的並行處理,這導致更有效的計算,特別是對於大型資料集。

葉優先樹生長

葉優先樹的生長也稱為最佳優先或貪婪生長。它基本上透過在每一步劃分最優特徵和葉節點來擴充套件樹。它在所有可能的分割中選擇最佳分割,因此結果將是一個與深度優先樹生長相比具有更深分支的樹結構。

葉優先樹的特性

以下是葉優先樹的一些特性:

  • 演算法不是逐層生長樹,而是選擇具有最高誤差的葉節點進行下一個分裂。這種方法使演算法專注於低精度區域並首先改進它們。

  • 與深度優先生長不同,葉優先生長可能導致不平衡樹。由於演算法基於損失最大處劃分葉節點,因此某些分支可能比其他分支更深。

  • 透過分裂對誤差貢獻最大的葉節點,該方法立即降低了整體預測誤差。因此,葉優先樹在將複雜模式擬合到資料方面非常有效。

  • 由於它能夠在某些分支上深入生長,因此樹可能超過訓練集。可以使用正則化技術和超引數(例如 max_depth 或 l2_leaf_reg)來控制樹的最大深度,從而減少過擬合。

  • 樹的生長不像深度優先樹那樣平衡或可預測,但在某些情況下它可以使其更靈活。

決策樹在 CatBoost 中的作用

決策樹是許多機器學習演算法(如 CatBoost)的關鍵組成部分。這些是預測模型,使用類似樹的圖形來對映決策和可能的結果。在 CatBoost 框架中,決策樹充當基礎學習器,為提升過程提供結構。

CatBoost 使用稱為梯度提升的技術,依次構建決策樹來糾正先前樹木所犯的錯誤。“Cat”這個名字暗示著“categorical”(類別),CatBoost 是一個梯度提升版本,在處理類別特徵方面比早期的方法效能更好。

廣告