GBDT 簡述

GBDT 全稱 Gradient Boosting Decision Tree,梯度提高決策樹。算法

梯度加強決策樹的思想來源於兩個地方,首先是加強算法(Boosting),而後是梯度加強(Gradient Boosting)的想法。機器學習

加強算法是一種試圖用弱學習器提高爲強學習器的算法。這種算法中比較成熟、有表明性的是 AdaBoost 算法。加強算法的工做機制比較相似,先從初始訓練集學習出一個基學習器,再根據基學習器的表現對訓練樣本分佈進行調整,使前面作錯的訓練樣本後續獲得更多關注,再從調整後的訓練樣本上訓練下一個基學習器。如此重複進行,直到基學習器的數目達到事先指定的值,最終將全部基學習器進行加權結合。函數

AdaBoost 提出後不久,機器學習和統計學家 Friedman 從統計視角解釋 AdaBoost 其實是基於加性模型以相似牛頓迭代法來優化指數損失函數,受此啓發,傑米姆提出了梯度加強的想法。學習

梯度加強也是但願用一系列的弱學習器來達到一個強學習器的效果,從而逼近目標變量的值。根據加性模型的假設,這種逼近效果是這些弱學習器的加權平均。優化

如何構造這些弱學習器和加權平均的權重呢?排序

梯度加強採用了優化理論的視角,使得構造這些部分變得更加直觀。ci

首先這是個迭代算法,每一輪迭代,把當前全部學習器的加權平均結果做爲這一輪的函數值,而後求得針對某一個損失函數對於當前全部學習器的參數的一個梯度,而後利用某個弱學習器算法來擬合這個梯度,這個弱學習器算法能夠是線性迴歸模型,邏輯斯特迴歸模型等。最後,利用線查找的方式找到權重。說白了,就是利用簡單模型擬合不一樣迭代輪數的梯度。io

梯度加強可跟梯度降低對比,梯度降低的最終預測式也可寫成加和的形式,每一輪梯度的值和學習率共同疊加造成最終結果。這和構造弱學習器的加權平均聯繫起來看,每一個梯度的值能夠認爲是個弱學習器,學習速率就是權重。變量

理解了梯度加強,梯度加強決策樹就容易理解了,就是用決策樹來看成弱學習器,去擬合梯度加強過程當中的梯度。而後融合到整個梯度加強的過程當中。統計

最終,梯度加強決策樹就是每一輪迭代都擬合一個新的決策樹,來表達當前的梯度,而後跟前面全部的決策樹進行疊加。在這個過程當中,決策樹的形狀,如多少層、總共有多少節點等,都是超參數。總共有多少決策樹,也就是有多少輪迭代,是重要的調節參數,也是防止過擬合的重要手段。

 

參考資料

  • 洪亮劼,機器學習排序算法經典模型:GBDT
相關文章
相關標籤/搜索