1. 程式人生 > >Boosting決策樹:GBDT

Boosting決策樹:GBDT

GBDT (Gradient Boosting Decision Tree)屬於整合學習中的Boosting流派,迭代地訓練基學習器 (base learner),當前基學習器依賴於上一輪基學習器的學習結果。 不同於AdaBoost自適應地調整樣本的權值分佈,GBDT是通過不斷地擬合殘差 (residual)來“糾錯”基學習器的。

1. Gradient Boosting

Gradient Boosting Machine (GBM) 是由大牛Friedman [1,2] 提出來,基本思想非常簡單:基學習器存在著分類/迴歸錯誤的情況,在下一輪基學習器學習時努力地糾正這個錯誤。在迴歸問題中,這個錯誤被稱為殘差。比如,在學習樣本\((x, y)\)

得到一個模型\(f\),預測值為\(\hat{y} = f(x)\);那麼殘差則為:

\[ y - \hat{y} = y- f(x) \]

如果定義損失函式為平方損失\(\frac{1}{2}(y-f(x))^2\),那麼其梯度為

\[ \frac{\partial \frac{1}{2}(y-f(x))^2}{\partial f(x)} = f(x) - y \]

可以發現:殘差為負梯度方向。對於平方損失,每一步優化是很簡單的;但是,對於其他損失函式呢?Friedman利用負梯度近似殘差,將Gradient Boosting推廣到一般損失函式\(L(y, x)\)。步驟如下:

(1) 計算偽殘差 (pseudo-residual

),

\[ r_{im} = - \left[ \frac{\partial L(y_i, f(x_i))}{\partial f(x_i)} \right]_{f = f_{m-1}} \]

(2) 基學習器\(h_m(x)\)擬合樣本\(\{ (x_i, r_{im}) \}\)

(3) 計算最優乘子 (multiplier) \(\gamma_m\),使得

\[ \gamma_m = \mathop{\arg \min} \limits_{\gamma} \sum_{i} L(y_i, f_{m-1}(x) + \gamma h_m(x_i)) \]

(4) 更新模型

\begin{equation}
f_m(x) = f_{m-1}(x) + \gamma_m h_m(x)
\label{eq:update}
\end{equation}

如此迭代,直至結束或模型收斂;最後一步得到的模型\(f_M(x)\)即為GBM的最終模型。

2. GBDT

如果基學習器為決策樹時,GBM則被稱為GBDT。決策樹本質上是對特徵空間的劃分\(\{ R_{jm} \}\),因此基學習器\(h_m(x)\)可改寫為
\[ h_m(x) = \sum_j b_{jm} I(x \in R_{jm}) \]

其中,\(b_{jm}\)為預測值,\(I(.)\)為指示函式。那麼,式子\eqref{eq:update}可以改寫為

\[ f_m(x) = f_{m-1}(x) + \sum_j \gamma_{jm} I(x \in R_{jm}) \]

GBDT的演算法步驟如下圖所示(圖片來自於 ESL [3]):

為了減小過擬合,通過Shrinkage的方式:

\[ f_m(x) = f_{m-1}(x) + \upsilon \cdot \gamma_m h_m(x) \]

其中,\(\upsilon\)稱之為學習率 (learning rate)。經驗表明:當學習率\(\upsilon < 0.1\)時,泛化能力遠遠超過沒有Shrinkage的模型(即\(\upsilon =1\))。但是,低學習率同時也帶來了更多的迭代次數。

sklearn包GradientBoostingRegressor實現了迴歸GBDT(分類用GradientBoostingClassifier),引數如下

loss: 損失函式,預設為平方損失ls
learning_rate: 學習率
n_estimators: 基學習器數目
max_depth: 決策樹的最大深度
max_features: 最多特徵數

3. 參考資料

[1] Friedman, Jerome H. "Greedy function approximation: a gradient boosting machine." Annals of statistics (2001): 1189-1232.
[2] Friedman, Jerome H. "Stochastic gradient boosting." Computational Statistics & Data Analysis 38.4 (2002): 367-378.
[3] Trevor Hastie, Robert Tibshirani, Jerome H. Friedman. The elements of statistical learning. Springer, Berlin: Springer series in statistics, 2009.
[4] Cheng Li, A Gentle Introduction to Gradient Boosting.

相關推薦

Boosting決策GBDT

GBDT (Gradient Boosting Decision Tree)屬於整合學習中的Boosting流派,迭代地訓練基學習器 (base learner),當前基學習器依賴於上一輪基學習器的學習結果。 不同於AdaBoost自適應地調整樣本的權值分佈,GBDT是通過不斷地擬合殘差 (residual)

[譯] 設計師的決策當遇到豬隊友時,你需要一個系統來控制每個人

原文地址:A Decision Tree for Designers 原文作者:Cap Watkins 譯文出自:掘金翻譯計劃 本文永久連結:github.com/xitu/gold-m… 譯者:zhmhhu 校對者:calpa, Wangalan30

模型的一些理解(從決策GBDT

1.決策樹 基本流程: 整體是一個遞迴的過程,返回條件有三種: 當前結點中所有樣本的類別都為c,返回值為c; 當前結點中樣本集合為空,此時返回父結點中類別數最多的類。把父節點的樣本分佈作為先驗 當前結點中樣本的屬性集合為空,或者所有樣本屬性取值相同,將當前結點

決策特徵分佈空間劃分方法

前言:懶惰的原因是因為時間太少,不能夠去仔細的探索學習,拿來主義喪失了很多快樂! K近鄰演算法的實現:KD樹 2.0、背景      之前blog內曾經介紹過SIFT特徵匹配演算法,特徵點匹配和資料庫查、影象檢索本質上是同一個問題,都可以歸結為一個通過距離函式在高維向量之

機器學習決策提煉出分類器演算法

,用到決策樹一般都會出現過擬合問題,因此需要對決策樹進行剪枝,闡述了常用的幾種剪枝的方法(這些方法都出現在了sklearn的決策樹建構函式的引數中),後面總結了sklearn調包分析用決策樹做分類和迴歸的幾個例子,下面通過一個簡單的例子,提煉出構建一棵分類決策樹的演算法思想,進一步體會下決策樹的分類原

決策GBDT梯度提升決策和XGBoost

從決策樹到GBDT(Gradient Boosting Decision Tree)梯度提升決策樹和XGBoost的一些學習筆記 決策樹 決策樹可以轉換成if-then規則的集合,也可以看作是定義在特徵空間劃分類的條件概率分佈。決策樹學習演算法包括三部分

SAS決策信貸風險建模試驗

一、 概論 決策樹通過應用一系列簡單的規則建立起對觀測資料的分類。決策樹對於觀測值的分類建立在變數的輸入值基礎上。每條規則都是在前一條規則形成的層次的基礎上對觀測資料的進一步劃分,而最終建立的劃分層次稱為決策樹,每個劃分段稱為決策樹的一個結點。最初的未進行劃分的片段包括所有

梯度提升決策GBDT

綜述 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一種迭代的決策樹演算法,該演算法由多棵決策樹組成,所有樹的結論累加起來做最終答案。它在被提出之初就和SV

【ML筆記】梯度提升決策GBDT)和隨機森林(RF)的異同

GBDT和RF簡介 GBDT(Gradient Boosting Decision Tree) DT + Boosting = GBDT GBDT是一種boosting演算法。boosting工作機制:先從初始訓練集訓練處一個基學習器,然後在根據基學習器的表現對訓練樣本分佈

【10月31日】機器學習實戰(二)決策隱形眼鏡資料集

決策樹的優點:計算的複雜度不高,輸出的結果易於理解,對中間值的確實不敏感,可以處理不相關的特徵資料 決策樹的缺點:可能會產生過度匹配的問題。 其本質的思想是通過尋找區分度最好的特徵(屬性),用於支援分類規則的制定。 那麼哪些特徵是區分度好的,哪些特徵是區分度壞的呢?換句話說

ml課程決策、隨機森林、GBDT、XGBoost相關(含程式碼實現)

以下是我的學習筆記,以及總結,如有錯誤之處請不吝賜教。 基礎概念: 熵Entropy:是衡量純度的一個標準,表示式可以寫為: 資訊增益Information Gain:熵變化的一個量,表示式可以寫為: 資訊增益率Gain Ratio:資訊增益的變化率,表示式可以寫為:

GBDT(Gradient boosting Decision Tree)梯度提升決策

參考資料 部落格1 GBDT演算法原理深入解析 這位大佬後面講了推導,讓我明白了這段話: Gradient Boosting是一種Boosting的方法,其與傳統的Boosting的區別是,每一次的計算是為了 **減少上一次的殘差(residual) **,而為了消除殘差,可以在殘差

梯度提升決策-GBDT(Gradient Boosting Decision Tree)

研究GBDT的背景是業務中使用到了該模型,用於做推薦場景,當然這裡就引出了GBDT的一個應用場景-迴歸,他的另外一個應用場景便是分類,接下來我會從以下幾個方面去學習和研究GBDT的相關知識,當然我也是學習者,只是把我理解到的整理出來。本文參考了網上

決策、Bagging、隨機森林、Boosting、AdaBoost、GBDT、XGBoost

1、決策樹  一、決策樹的優點和缺點     優點: 決策樹演算法中學習簡單的決策規則建立決策樹模型的過程非常容易理解, 決策樹模型可以視覺化,非常直觀 應用範圍廣,可用於分類和迴歸,而且非常容易做多類別的分類 能夠處理數值型和連續的樣本特徵     缺點:

GBDT梯度提升決策

From http://blog.csdn.net/suranxu007/   AND     http://www.jianshu.com/p/005a4e6ac775 綜述   GBDT(Gradient Boosting Decision Tree) 又叫

決策模型組合之隨機森林與GBDT(轉)

get 9.png 生成 代碼 margin ast decision 損失函數 固定 版權聲明: 本文由LeftNotEasy發布於http://leftnoteasy.cnblogs.com, 本文可以被全部的轉載或者部分使用,但請註明出處,如果有問題,請

分類算法決策(C4.5)(轉)

clas 依賴 1.5 -s clip win pan 定義 衡量 C4.5是機器學習算法中的另一個分類決策樹算法,它是基於ID3算法進行改進後的一種重要算法,相比於ID3算法,改進有如下幾個要點: 1)用信息增益率來選擇屬性。ID3選擇屬性用的是子樹的信息增益,這裏可

Spark機器學習(6)決策算法

projects 信息 txt .cn import n) .com util seq 1. 決策樹基本知識 決策樹就是通過一系列規則對數據進行分類的一種算法,可以分為分類樹和回歸樹兩類,分類樹處理離散變量的,回歸樹是處理連續變量。 樣本一般都有很多個特征,有的特征對分

我的機器學習之旅(六)決策

family 分配 根據 drop chrom labels arch ntp -o 決策樹概念: 分類決策樹模型是一種描述對實例進行分類的樹形結構。決策樹由結點和有向邊組成。結點有兩種類型:內部節點和葉節點,內部節點表示一個特征或屬性,葉節點表示一個類。 分類的時候,從根

機器學習決策(基尼系數)

try matplot 代碼實現 sci bubuko div tro 兩種 () 一、基礎理解  1)公式 k:數據集中樣本類型數量; Pi:第 i 類樣本的數量占總樣本數量的比例  2)實例計算基尼系數 3 種情況計算基尼系數: 基尼系數的性質與信息熵