1. 程式人生 > >機器學習方法篇(9)------梯度提升決策樹GBDT

機器學習方法篇(9)------梯度提升決策樹GBDT

● 每週一言

生命在於運動,無論腦力還是體力。

導語

前面第3、4兩節介紹了決策樹,由於決策樹簡單有效,可解釋性強,因此被包裝成了一些更為高效的機器學習演算法,其中最為知名的就是梯度提升決策樹GBDT(Gradient Boosting Decision Tree)和隨機森林(Random Forest)這兩種模型。本節講解GBDT,講講這個在各大競賽中熾手可熱的模型。

GBDT

G-B-D-T梯度提升決策樹,顧名思義,是一個與梯度有關、對決策樹進行了提升的機器學習模型。我們不妨從後往前依次聊聊GBD這幾個定語,從而理解這個模型的精髓。

fig1

DT(Decision Tree)
決策樹。 T自不必多說,作為一種常見的資料結構出現在各種演算法當中。DT決策樹,有分類樹與迴歸樹兩種,之前文章中講到了分類樹,可參見 機器學習方法篇(3)——決策樹入門機器學習方法篇(4)——決策樹剪枝。迴歸樹原理機制與分類樹相似,區別在於分類樹只有在葉子結點返回唯一分類,而回歸樹的每個節點都能返回預測值,通常為當前節點下所有樣本的均值。

B(Boosting) 提升。即在原來模型的基礎之上做進一步提升,提升決策樹BDT的基本思想是採用多棵決策樹序列建模。具體過程為,對於第一棵樹之後的每一棵決策樹,都基於前一棵決策樹的輸出進行二次建模,整個序列建模過程相當於對預測結果朝目標值進行修正。

G(Gradient) 梯度。梯度的大小反映了當前預測值與目標值之間的距離。因此,上面B所述的序列決策樹模型,除開第一棵決策樹使用原始預測指標建樹,之後的每一棵決策樹都用前一棵決策樹的預測值與目標值計算出來的負梯度(可以理解為殘差或者增量)來建樹。這相當於給分錯的樣本加權多次分類,使樣本最終的殘差趨近於0。除開第一棵樹的其他樹,由於都是對目標的殘差或增量進行建模預測,因此GBDT模型只需把過程中每一棵決策樹的輸出結果累加,便可得到最終的預測輸出。

fig2

這裡借用網上流傳較廣的一個預測年齡的例子來描述GBDT的過程。一共4個樣本:
A(消費較高、經常被學弟問問題)27歲
B(消費較高、經常問學長問題) 23歲
C(消費較低、經常被學弟問問題)17歲
D(消費較低、經常問學長問題)13歲

序列決策樹構建如下圖所示。可知模型擬合情況,A的年齡為25 + 2 = 27歲,B的年齡為25 - 2 = 23歲,C為15 +2 = 17歲,D為15 - 2 = 13歲。

fig3

綜上,一句話概括GBDT的核心思想就是:序列訓練n(n > 2)棵決策樹,其中第i(1 < i ≤ n)棵樹學習第i - 1棵樹的負梯度(可理解為殘差或增量),n棵樹的輸出結果累加作為最終輸出結果。敬請期待下節內容。

結語

感謝各位的耐心閱讀,後續文章於每週日奉上,敬請期待。歡迎大家關注小鬥公眾號 對半獨白

face