1. 程式人生 > >梯度提升樹(GBDT)理解

梯度提升樹(GBDT)理解

GBDT是整合學習方法Boosting中的一種,所以其中每個弱分類器都有先後順序,同時每個弱分類器都有其的權重。

GBDT的思想
在GBDT的迭代過程中,假如前一輪迭代得到的強分類器是 F m 1

( x ) ,而其的損失函式為 L ( y , F
m 1 ( x ) )
,這是本輪的的迭代就是找一個CART迴歸樹模型(弱分類器) T ( x ; θ m ) ,讓本輪的損失 L y , F m 1 + ρ m T ( x ; θ m ) 最小。簡單說,就是本輪要找個決策樹,使得已有的強分類器的損失變小。

“GBDT的核心”
Freidman提出用損失函式的負梯度來表示本輪損失的近似值,進而確定CART樹。

假如迭代到第M輪,這時損失函式的負梯度就可以表示為如下:

g m i = [ L ( y i , F m ( x i ) ) F ( x i ) ] F ( x ) = F m 1   ( x )
其中i=1,2···N表示樣本數。

這個負梯度就是本輪迭代的損失值,也就是我們優化CART樹的標籤。即有:

θ m = a r g m i n α , β i = 1 N [ g m i β T m ( x i ; θ ) ] 2
這裡用 T m ( x ; θ ) 去擬合上面提到的“標籤”,而且使用了最小二乘法的擬合方法。

同時每個弱分類器都有其的權重,這裡我們可以理解成“步長”:

ρ m = a r g m i n ρ i = 1 N L ( y i , F m 1 ( x i ) + ρ T ( x i , θ m ) )

最後迭代完這輪後,得到的強分類器 F m ( x ) = F m 1 ( x ) + ρ m T ( x ; θ m )