提升樹與梯度提升樹 Boosting Tree & Gradient Boosting Decision Tree(GBDT)

提升樹(Boosting Tree)
以決策樹爲基函數的提升方法稱爲提升樹。提升樹對分類問題,提升樹是二叉分類樹,對迴歸問題提升樹是二叉迴歸樹。

提升樹方法實際採用的是加法模型(即基函數的線性組合)與前向分步算法,因此提升樹模型可以表示爲決策樹的加法模型:

y^i=fK(x)=k=1KT(x;θk)=k=1Kfk(x;θk)
其中T(x;θk) 表示某一顆決策樹,θk 是決策樹的參數,K 爲決策樹的個數

提升樹算法過程:
假設有數據集T={(x1,y1),(x2,y2),...,(xN,yN)}
其中xiXRn,yiYR
輸出提升樹:fK(x)

1、初始化f0(x)=0
2、對k=1,2,...,K 依次進行循環迭代:

  1. 計算後一顆樹對前一顆樹的殘差:
    rki=yifk1(xi),i=1,2,...,N
  2. 擬合殘差學習一個迴歸樹,得到T(x,θk)
  3. 更新fk(x)=fk1(x)+T(x,θk)
    3、通過迭代最終得到迴歸提升樹
    fK(x)=k=1KT(x,θk)

GBDT
提升樹利用加法模型與前向分佈算法實現學習的優化過程在損失函數式平方損失和指數損失時,每一步優化是很簡單的。

但對一般損失函數而言,往往每一步優化並不那麼容易。

Freidman提出了梯度提升算法,其關鍵是利用損失函數的負梯度在當前模型的值:

[L(y,f(xi))f(xi)]f(x)=fm1(x)
其中L(y,f(xi)) 是自定義的損失函數,y 是殘差,f(x) 是迭代而成的決策樹。

作爲迴歸問題提升樹算法中殘差的近似值來擬合一顆迴歸樹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章