ML《整合學習(四)Boosting之迴歸樹、提升樹和GBDT》

星海千尋發表於2021-01-04

GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一種迭代的決策樹演算法,該演算法由多棵決策樹組成,所有樹的結論累加起來做最終答案。它在被提出之初就和SVM一起被認為是泛化能力較強的演算法。
  GBDT中的樹是迴歸樹(不是分類樹),GBDT用來做迴歸預測,調整後也可以用於分類。
  GBDT的思想使其具有天然優勢可以發現多種有區分性的特徵以及特徵組合。

一:迴歸樹
我們先來回顧下那個迴歸樹,這個其實我們在CART的學習中學過了的,
迴歸樹演算法如下圖(截圖來自《統計學習方法》5.5.1 CART生成):
在這裡插入圖片描述

最優切分變數x_j,就是切分選擇的那個屬性A,這裡只是幫回顧下曾經學的,j和s是按照最小化和方差來作為評判標準,最後一共有M個區域,也就是M個葉子節點,每一個區域都選擇該區域樣本預測值的平均值來作為該區域的代表值。
在這裡插入圖片描述
其實就是取對應葉子節點的區域的平均值作為輸出。

二:提升樹
提升樹是迭代多棵迴歸樹來共同決策。當採用平方誤差損失函式時,每一棵迴歸樹學習的是之前所有樹的結論和殘差,擬合得到一個當前的殘差迴歸樹,殘差的意義如公式:殘差 = 真實值y - 預測值f(x) 。提升樹即是整個迭代過程生成的迴歸樹的累加。
  舉個例子,下面這例子較直觀地展現出多棵決策樹線性求和過程以及殘差的意義。
  訓練一個提升樹模型來預測年齡:
  訓練集是4個人,A,B,C,D年齡分別是14,16,24,26。樣本中有購物金額、上網時長、經常到百度知道提問等特徵。提升樹的過程如下:
在這裡插入圖片描述
該例子很直觀的能看到,預測值等於所有樹值得累加,如A的預測值 = 樹1左節點 值 15 + 樹2左節點 -1 = 14。
  因此,給定當前模型 fm-1(x),只需要簡單的擬合當前模型的殘差。現將回歸問題的提升樹演算法敘述如下:
在這裡插入圖片描述
這裡的f函式是多個弱迴歸樹T加起來的。且最後一次迭代的那個f_M函式是最強的,也是包含了所有的迴歸樹T。

三:GBDT
在這裡插入圖片描述

1:演算法
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述

2:GBDT的損失函式以及相應的負梯度
一共有四個,表示式和負梯度分別是:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
3:和提升樹的區別
提升樹模型每一次的提升都是靠上次的預測結果與訓練資料的label值差值作為新的訓練資料進行重新訓練,
GDBT則是將殘差計算替換成了損失函式的梯度方向,將上一次的預測結果帶入梯度中求出本輪的訓練資料,也就是說這兩種模型在生成新的訓練資料時採用了不同的方法。在使用平方誤差損失函式和指數損失函式時,提升樹的殘差求解比較簡單,但是在使用一般的損失誤差函式時,殘差求解起來不是那麼容易,所以就使用損失函式的負梯度在當前模型的值作為迴歸問題中殘差的近似值。

相關文章