- LightGBM 教程
- LightGBM - 首頁
- LightGBM - 概述
- LightGBM - 架構
- LightGBM - 安裝
- LightGBM - 核心引數
- LightGBM - Boosting 演算法
- LightGBM - 樹的生長策略
- LightGBM - 資料集結構
- LightGBM - 二分類
- LightGBM - 迴歸
- LightGBM - 排序
- LightGBM - Python 實現
- LightGBM - 引數調優
- LightGBM - 繪圖功能
- LightGBM - 早停訓練
- LightGBM - 特徵互動約束
- LightGBM 與其他 Boosting 演算法對比
- LightGBM 有用資源
- LightGBM - 有用資源
- LightGBM - 討論
LightGBM - 架構
LightGBM 按葉子節點(leaf-wise)方式分裂樹,而其他 Boosting 演算法則按層級(level-wise)方式構建樹。它會選擇它認為會導致損失函式最大下降的葉子節點進行分裂。Leaf-wise 方式根據葉子節點對全域性損失的貢獻進行分裂,而不是特定分支上的損失,因此它有時比 level-wise 方式“更快”地學習到錯誤更低的樹。
下圖顯示了一個假設的二叉 leaf-wise 樹與一個假設的二叉 level-wise 樹的分裂順序。有趣的是,leaf-wise 樹可以有多種排序,而 level-wise 樹始終具有相同的順序。
Leaf-wise 樹的生長
Leaf-wise 樹透過向能夠消除大部分錯誤的葉子節點(分支末端)新增分支來生長。可以將其理解為以關注模型犯錯最多區域的方式來發展樹,僅在需要時新增分支。
這種方法使樹在最重要的部分變得更深、更具體,這通常會產生更準確的模型,但它也可能導致更復雜的樹。
Level-wise 樹的生長
Level-wise 樹透過在所有層級上均勻地擴充套件新的分支(葉子)來生長。可以將其理解為一棵樹一次生長一層分支。它首先在第 1 層新增分支,然後推進到第 2 層,依此類推。
這保持並減少了樹的複雜度,但它可能並不總是最佳選擇,因為它沒有關注需要更多細節的區域。
LightGBM 架構的關鍵元件
LightGBM 的架構旨在最佳化效能、記憶體效率和模型一致性。以下是快速概述 -
Leaf-Wise 樹的生長:LightGBM 透過首先擴充套件最重要的部分來生長樹,從而產生更深、更準確的樹,並具有更少的整體樹。
基於直方圖的學習:它透過將資料分類到箱(桶)中來加速訓練,從而減少查詢最佳分裂所需的時間和記憶體。
基於梯度的單邊取樣 (GOSS):GOSS 只選擇最重要的資料點來加速訓練,同時保持準確性。
獨佔特徵捆綁 (EFB):EFB 將很少出現的特徵組合在一起以節省記憶體並加速計算,這使得它對於具有大量特徵的資料非常有用。
並行和 GPU 處理:LightGBM 可以透過使用多個 CPU 核心或 GPU 來更快地訓練模型,主要針對大型資料集。
LightGBM 的設計使用 leaf-wise 樹的生長、基於直方圖的學習、GOSS 和 EFB 方法來最大化效能和記憶體使用,同時保持高準確性。它的並行和 GPU 處理能力使其非常適合高效地完成大規模機器學習任務。