機器學習 整合學習GBDT

2021-08-16 20:16:42 字數 2401 閱讀 4705

gbdt也是整合學習boosting的其中一種,boosting是由多個弱學習器組成,與bagging不同,boosting學習器之間有關聯的關係。adaboost是通過前面的學習器模型來決定當前的學習器模型的每個樣本的權重,然後計算出當前學習器組合權重,最後將學習器線性組合起來。而gbdt則是通過不斷的最小化樣本的殘差來達到整合學習的目的,每個弱學習器,都是用於擬合之前學習器中的殘差值,所以gbdt是乙個序列的模型,並行運算能力比較差。因為是要擬合殘差,所以gbdt弱學習器模型是要滿足高偏差,低方差的條件,一般都是選擇cart(也就是分類回歸決策樹)作為弱學習器模型。

1、構建第一棵樹

用樣本特徵去構建乙個cart決策樹,葉子節點的取值用貪心的思想,選擇使偏差最小的常數。 f0

(x)=

argm

inc∑

i=1n

l(yi

,c)

其中yi 是樣本的label,l(

∗,∗)

表示損失函式,如果是回歸問題,可能使用mae或者mse,分類問題可能使用對數變換後的0/1損失函式,也就是找到乙個合適的常數c,使得這個分類的損失值最小。

2、用負梯度下降的方法計算殘差並構建後面的樹αi

m=−∂

l(yi

,fm−

1(xi

))∂f

m−1(

xi)

用(xi

,αim

) 組成新的資料,用新的學習器去擬合這組新的陣列,再去之前的學習器組合起來,達到減少殘差的目的。fm

(x)=

argm

incm

∑i=1

nl(α

im,c

m)3、把所有的學習器疊加起來fm

(x)=

fm−1

(x)+

fm(x

) 重複過程直到損失少於一定的值或者迭代次數到一定值。

為了讓gbdt能解決分類問題主要有兩種方法:

這裡討論第二種,用對數思然函式。

二分類問題

對於二分類的問題,損失函式是: l(

y,f(

x))=

log(

1+ex

p(−y

f(x)

)) y

為1或者-1,此時,負梯度誤差是: αm

i=−∂

l(yi

,fm−

1(xi

))∂f

m−1(

xi)=

yi1+

exp(

yif(

xi))

各個葉子節點的最佳殘差擬合值為: cm

j=ar

gmin

c∑lo

g(1+

exp(

−yi(

fm−1

(xi)

+c))

) 多分類問題

對於二分類的問題,損失函式是: l(

y,f(

x))=

−∑k=

1kyk

logp

k(x)

如果類別是k,則yk

為1,其餘情況為0。第k類的概率表示式是,這是乙個類似於softmax的函式: pk

(x)=

exp(

fk(x

))∑k

l=1e

xp(f

l(x)

) 結合上面兩式,求αm

i 的負梯度值: αm

i=yi

l−pl

,m−1

(xi)

正則化的手段有三種:控制迭代器步長、加入子取樣比例、剪枝

控制迭代器步長

對於每個弱學習器,是為了擬合前面的殘差,為了不然擬合程度太大,加入乙個擬合步長

v 對擬合程度進行縮放,一般取[0,1]之間。即原來: fm

(x)=

fm−1

(x)+

hm(x

)變為: fm

(x)=

fm−1

(x)+

vhm(

x)加入子取樣比例

第二種正則化的方式是通過子取樣比例(subsample)。取值為(0,1]。注意這裡的子取樣和隨機森林不一樣,隨機森林使用的是放回抽樣,而這裡是不放回抽樣。如果取值為1,則全部樣本都使用,等於沒有使用子取樣。如果取值小於1,則只有一部分樣本會去做gbdt的決策樹擬合。選擇小於1的比例可以減少方差,即防止過擬合,但是會增加樣本擬合的偏差,因此取值不能太低。推薦在[0.5, 0.8]之間。使用了子取樣的gbdt有時也稱作隨機梯度提公升樹(stochastic gradient boosting tree, sgbt)。由於使用了子取樣,程式可以通過取樣分發到不同的任務去做boosting的迭代過程,最後形成新樹,從而減少弱學習器難以並行學習的弱點。

剪枝第三種是對於弱學習器即cart回歸樹進行正則化剪枝。

機器學習 整合學習(GBDT)

形式 第一輪,確定n 90 gbdt gradientboostingclassifier model gbdt1 gridsearchcv gbdt,param grid cv 5 model gbdt1.fit x train,y train print model gbdt1.best par...

機器學習 整合演算法 GBDT

gbdt gradient boosting decison tree 梯度提公升決策樹 gbdt 的弱學習器通常使用 cart 回歸樹 gbdt 的核心在於,每棵樹學的是之前所有樹的結論和的殘差,比如 a 的年齡 18 歲,第一棵樹依據特徵值 12 歲,差 6 歲,即殘差為 6 歲,那麼第二棵樹把...

機器學習 GBDT

在gbdt的迭代中,假設前一輪迭代得到的強學習器 ft 1 x f x ft 1 x 損失函式 l y ft 1 x l y,f x l y,ft 1 x 本輪迭代的目標是找到乙個cart回歸樹模型的弱學習器ht x h t x ht x 讓本輪的損失函式l y ft x l y,f t 1 x h...