梯度提升樹GBDT原理
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

1.模型

提升方法實際採用加法模型(即基函式的線性組合)與前向分佈演算法。以決策樹為基函式的提升方法稱為提升樹(boosting tree)。對分類問題決策樹是二叉分類樹,對迴歸問題決策樹是二叉決策樹。提升樹模型可以表示為決策樹的加法模型:
其中,表示決策樹;為決策樹的引數;M為樹的個數

2.學習過程

迴歸問題提升樹使用以下前向分佈演算法

在前向分佈演算法的第m步,給定當前模型,需求解

得到,即第m棵樹的引數

當採用平方誤差損失函式時

其損失變為

其中,是當前模型擬合資料的殘差(residual)對於平方損失函式,擬合的就是殘差;對於一般損失函式(梯度下降),擬合的就是殘差的近似值

3.演算法

輸入:訓練資料集

輸出:提升樹

演算法流程
(1)初始化
(2)對m = 1,2,…,M

  1. 計算殘差
  2. 擬合殘差學習一個迴歸樹,得到
  3. 更新

(3)得到迴歸問題提升樹

附sklearn中GBDT文件 地址

4.GBDT並行

這部分整理自網路資源,思路很好,可以借鑑

  • 非遞迴建樹

    • 節點的存放
    • 終止條件

      • 樹的節點數
      • 樹的深度
      • 沒有適合分割的節點
  • 特徵值排序

    • 在對每個節點進行分割的時候,首先需要遍歷所有的特徵,然後對每個樣本的特徵的值進行列舉計算。(CART)
    • 在對單個特徵量進行列舉取值之前,我們可以先將該特徵量的所有取值進行排序,然後再進行排序。
    • 優點

      • 避免計算重複的value值
      • 方便更佳分割值的確定
      • 減少資訊的重複計算
  • 多執行緒/MPI並行化的實現

    • 通過MPI實現對GBDT的並行化,最主要的步驟是在建樹的過程中,由於每個特徵值計算最佳分割值是相互獨立的,故可以對特徵進行平分,再同時進行計算。
  • MPI並行化的實現

    • 主執行緒
    • 其他執行緒

參考
(1)統計學習方法

相關文章

程式語言 最新文章