GBDT 梯度提公升決策樹

2021-09-26 04:24:28 字數 1805 閱讀 1705

gbdt(gradient boosting decision tree) 又叫 mart(multiple additive regression tree),是一種迭代的決策樹演算法,該演算法由多棵決策樹組成,所有樹的結論累加起來做最終答案。它在被提出之初就和svm一起被認為是泛化能力較強的演算法。

gbdt中的樹是回歸樹(不是分類樹),gbdt用來做回歸**,調整後也可以用於分類。

gbdt的思想使其具有天然優勢可以發現多種有區分性的特徵以及特徵組合。業界中,facebook使用其來自動發現有效的特徵、特徵組合,來作為lr模型中的特徵,以提高 ctr預估(click-through rate prediction)的準確性(詳見參考文獻5、6);gbdt在**的搜尋及**業務上也發揮了重要作用(詳見參考文獻7)

回歸樹總體流程類似於分類樹,區別在於,回歸樹的每乙個節點都會得乙個**值,以年齡為例,該**值等於屬於這個節點的所有人年齡的平均值。分枝時窮舉每乙個feature的每個閾值找最好的分割點,但衡量最好的標準不再是最大熵,而是最小化平方誤差。也就是被**出錯的人數越多,錯的越離譜,平方誤差就越大,通過最小化平方誤差能夠找到最可靠的分枝依據。分枝直到每個葉子節點上人的年齡都唯一或者達到預設的終止條件(如葉子個數上限),若最終葉子節點上人的年齡不唯一,則以該節點上所有人的平均年齡做為該葉子節點的**年齡。(引用自一篇部落格,詳見參考文獻3)

提公升樹利用加法模型和前向分步演算法實現學習的優化過程。當損失函式時平方損失和指數損失函式時,每一步的優化很簡單,如平方損失函式學習殘差回歸樹。

但對於一般的損失函式,往往每一步優化沒那麼容易,如上圖中的絕對值損失函式和huber損失函式。針對這一問題,freidman提出了梯度提公升演算法:利用最速下降的近似方法,即利用損失函式的負梯度在當前模型的值,作為回歸問題中提公升樹演算法的殘差的近似值,擬合乙個回歸樹。(注:鄙人私以為,與其說負梯度作為殘差的近似值,不如說殘差是負梯度的一種特例)演算法如下(截圖來自《the elements of statistical learning》):

演算法步驟解釋:

最近引起關注的乙個gradient boosting演算法:xgboost,在計算速度和準確率上,較gbdt有明顯的提公升。xgboost 的全稱是extreme gradient boosting,它是gradient boosting machine的乙個c++實現,作者為正在華盛頓大學研究機器學習的大牛陳天奇 。xgboost最大的特點在於,它能夠自動利用cpu的多執行緒進行並行,同時在演算法上加以改進提高了精度。它的**秀是kaggle的 希格斯子訊號識別競賽,因為出眾的效率與較高的**準確度在比賽論壇中引起了參賽選手的廣泛關注。值得我們在gbdt的基礎上對其進一步探索學習。

參考文獻

1、《the elements of statistical learning》

2、《統計學習方法》

3、

4、

5、

6、《practical lessons from predicting clicks on ads at facebook》

7、

8、

梯度提公升決策樹 GBDT

整合學習經典一類演算法,屬於個體學習器間存在較強依賴關係的一類,需以序列的序列化生成方法構建。原理 所有弱分類器結果相加等於 值,下乙個弱分類器去擬合誤差函式對 值的殘差 值與真實值的誤差 這裡的弱分類器是決策樹。舉例 用gbdt的方法 年齡 step1 在第乙個弱分類器中隨機選擇乙個數字擬合,發現...

梯度提公升決策樹 GBDT)

以決策樹為基函式的提公升方法稱為提公升樹。決策樹可以分為分類樹和回歸樹。提公升樹模型可以表示為決策樹的加法模型。針對不同的問題的提公升術演算法的主要區別就是損失函式的不同,對於回歸問題我們選用平方損失函式,對於分類問題,我們使用指數損失函式。特別的,對於二分類問題,我們提公升樹就是把adaboost...

梯度提公升決策樹(GBDT)演算法

gbdt gradient boosting decision tree,梯度提公升決策樹 由名字可以看出涉及到三點 1 boosting 簡單講,就是每次訓練單個弱學習器時,都將上一次分錯的資料權重提高一點再進行當前單個弱學習器的學習。這樣越往後執行,訓練出的單個弱學習器就會越在意那些容易分錯 權...