【機器學習】--GBDT演算法從初始到應用

LHBlog發表於2018-04-09

一、前述

提升是一種機器學習技術,可以用於迴歸和分類的問題,它每一步產生弱預測模型(如決策樹),並加權累加到總模型中;如果每一步的弱預測模型的生成都是依據損失函式的梯度方式的,那麼就稱為梯度提升(Gradient boosting)提升技術的意義:如果一個問題存在弱預測模型,那麼可以通過提升技術的辦法得到一個強預測模型。

二、演算法過程

給定輸入向量X和輸出變數Y組成的若干訓練樣本(X 1 ,Y 1 ),(X 2 ,Y 2 )......(X n ,Y n ),

目標是找到近似函式F(X),使得損失函式L(Y,F(X))的損失值最小。

L損失函式一般採用最小二乘損失函式或者絕對值損失函式

最優解為:

假定F(X)是一族最優基函式f i (X)的加權和:

以貪心演算法的思想擴充套件得到Fm(X),求解最優f

 

以貪心法在每次選擇最優基函式f時仍然困難,使用梯度下降的方法近似計算

給定常數函式F 0 (X)

計算殘差

使用資料 計算擬合殘差的基函式

 

 計算步長

更新模型(梯度的思想)

三、GDBT演算法思想

GBDT由三部分構成:DT(Regression Decistion Tree)、GB(Gradient Boosting)和Shrinkage,由多棵決策樹組成,所有樹的結果累加起來就是最終結果
迭代決策樹和隨機森林的區別:
隨機森林使用抽取不同的樣本構建不同的子樹,也就是說第m棵樹的構建和前m-1棵樹的結果是沒有關係的
迭代決策樹在構建子樹的時候,使用之前子樹構建結果後形成的殘差作為輸入資料構建下一個子樹;然後最終預測的時候按照子樹構建的順序進行預測,並將預測結果相加

相關文章