
- CatBoost 教程
- CatBoost - 首頁
- CatBoost - 概述
- CatBoost - 架構
- CatBoost - 安裝
- CatBoost - 特性
- CatBoost - 決策樹
- CatBoost - 提升過程
- CatBoost - 核心引數
- CatBoost - 資料預處理
- CatBoost - 處理類別特徵
- CatBoost - 處理缺失值
- CatBoost - 分類器
- CatBoost - 迴歸器
- CatBoost - 排序器
- CatBoost - 模型訓練
- CatBoost - 模型評估指標
- CatBoost - 分類指標
- CatBoost - 過擬合檢測
- CatBoost 與其他提升演算法的比較
- CatBoost 有用資源
- CatBoost - 有用資源
- CatBoost - 討論
CatBoost - 決策樹
決策樹是機器學習的主要組成部分,主要用於分類和迴歸應用。它透過根據規則集將特徵空間分解成更小的部分來工作,從而建立一個樹狀結構,其中每個內部節點都有一個基於特徵的決策,每個葉節點給出輸出標籤或值。
另一方面,Boosting 是一種整合學習的過程,它特別地結合多個弱學習器(即決策樹)來建立一個強學習器。它主要關注訓練新模型以改進之前的錯誤,從而修改整體預測效能。以下是 CatBoost 決策樹的視覺化圖:

讓我們看看 CatBoost 中的樹是如何生長的:
深度優先樹生長
深度優先樹的開發也稱為逐層或廣度優先生長。顧名思義,它涉及水平地生長樹木,直到它們達到分配的最大深度。在每一層,演算法都會檢查樹中的所有節點,並對其進行劃分以建立下一層的新的節點。
深度優先樹的特性
以下是深度優先樹的特性:
平衡樹生長:為了保持樹的平衡,它透過在每一層(深度優先)進行分裂來生長。在繼續到下一層之前,樹的每一層都完全建立。
葉節點分裂:CatBoost 在選擇最佳分裂之前,會檢查每一深度下的所有替代分裂。與其他每次只分裂一個葉節點的方法相比,它嘗試在每次迭代中分裂多個葉節點。
高效處理高維資料:為了保持平衡,樹木將在每一層(深度優先)被分開。在繼續到下一層之前,樹的每一層都完全設定好了。
深度控制:CatBoost 在選擇最佳分裂之前,會比較每一深度下的所有替代分裂。與其他每次只分裂一個葉節點的方法相比,它在每次迭代中分裂多個葉節點。
並行化:CatBoost 的深度優先樹結構允許高效的並行處理,這導致更有效的計算,特別是對於大型資料集。
葉優先樹生長
葉優先樹的生長也稱為最佳優先或貪婪生長。它基本上透過在每一步劃分最優特徵和葉節點來擴充套件樹。它在所有可能的分割中選擇最佳分割,因此結果將是一個與深度優先樹生長相比具有更深分支的樹結構。
葉優先樹的特性
以下是葉優先樹的一些特性:
演算法不是逐層生長樹,而是選擇具有最高誤差的葉節點進行下一個分裂。這種方法使演算法專注於低精度區域並首先改進它們。
與深度優先生長不同,葉優先生長可能導致不平衡樹。由於演算法基於損失最大處劃分葉節點,因此某些分支可能比其他分支更深。
透過分裂對誤差貢獻最大的葉節點,該方法立即降低了整體預測誤差。因此,葉優先樹在將複雜模式擬合到資料方面非常有效。
由於它能夠在某些分支上深入生長,因此樹可能超過訓練集。可以使用正則化技術和超引數(例如 max_depth 或 l2_leaf_reg)來控制樹的最大深度,從而減少過擬合。
樹的生長不像深度優先樹那樣平衡或可預測,但在某些情況下它可以使其更靈活。
決策樹在 CatBoost 中的作用
決策樹是許多機器學習演算法(如 CatBoost)的關鍵組成部分。這些是預測模型,使用類似樹的圖形來對映決策和可能的結果。在 CatBoost 框架中,決策樹充當基礎學習器,為提升過程提供結構。
CatBoost 使用稱為梯度提升的技術,依次構建決策樹來糾正先前樹木所犯的錯誤。“Cat”這個名字暗示著“categorical”(類別),CatBoost 是一個梯度提升版本,在處理類別特徵方面比早期的方法效能更好。