GBDT的基本原理

這裏以二元分類爲例子,給出最基本原理的解釋

   

GBDT 是多棵樹的輸出預測值的累加html

GBDT的樹都是 迴歸樹 而不是分類樹算法

   

  1. 分類樹

   

分裂的時候選取使得偏差降低最多的分裂框架

計算的技巧機器學習

最終分裂收益按照下面的方式計算,注意圓圈內的部分是固定值函數

  1. GBDT 二分類

GBDT在實現中能夠徹底複用上面的計算方法框架,只是咱們的優化的目標函數不一樣。post

這裏使用的是 指數偏差函數,無論是預測正確仍是錯誤 偏差值都存在,可是正確的預測 會使得偏差值小於錯誤的預測 參考學習

AdaBoost and the Super Bowl of Classifiers優化

A Tutorial Introduction to Adaptive Boostingspa

關於經常使用偏差函數 參考 http://www.cnblogs.com/rocketfan/p/4083821.html設計

   

參考 Greedy Functon Approximation:A Gradient Boosting Machine

4.4節關於二分類狀況偏差函數的設計

這裏其實和上面給出的同樣,只是增長了 log(1 +, 另外多了一個2,2yF), 參考前面的LossFunction http://www.cnblogs.com/rocketfan/p/4083821.html

的推導,其實這個應該算做LogLoss或者說是logistic regression, cross entropy error,也就是從probablity出發的logloss推導到output F(x)的表示就是上面的

式子,而它看上去恰好就是一個指數偏差函數。

嚴格意義上說是LogLoss不是指數偏差 不過LogLoss和指數偏差看上去比較類似。

   

這個F值其實就是邏輯迴歸的思路,相似 語音語言處理一書27頁解釋,線性加權的值(output)用來預測 p(true)和p(false)的比例的log值(迴歸值是實數範圍取值不適合預測0-1,作了一個轉換),越是接近true,那麼F(x)越接近+無窮(對應最大可能性判斷true), p(false)越大 那麼越接近-無窮(對應最大可能性判斷false)

   

F(X) 對應 feature X 當前的迴歸預測值也就是多棵樹通過決策到達葉子節點的輸出值output(x)的累加值。N個樣本則F(x)N個維度,當開始沒有分裂的時候全部樣本在一個節點則全部F(x)對應一個相同的值,分裂一次後兩個葉子節點則F(X)對應可能到不一樣的葉子節點從而可能有兩個不一樣的值。

對偏差函數計算關於F的梯度,偏差函數是

變量是F(x)

   

考慮learning_rate以後是 (@TODO)

F(X) 對應 葉子節點中一個樣本對應它的feature X 當前的預測值

參考 機器學習機率角度 一書的16章

   

   

咱們的分裂目標從上面迴歸樹基本算法中的但願逼近y 變成了 逼近梯度值 r_im,

也就是說當前樹是預測負梯度值的。

F_m(x) = F_m-1(x) + learning_rate*(當前樹的預測值(也就是預測負梯度..)) //@TODO check

   

再對比下ng課件最簡單的梯度降低 針對regression的例子

   

咱們採用的每顆樹更新策略是針對F(x)的,而F(x)沿着梯度的方向的累加,目標是使得咱們的

偏差函數達到最小。

相關文章
相關標籤/搜索