從決策樹到GBDT Xgboost(二)

2021-08-17 09:34:51 字數 3431 閱讀 9095

cart

分類與回歸樹(classification and regression tree)既可以用在分類,也可用在回歸,是在給定輸入隨機變數

x x

條件下輸出隨機變數

y' role="presentation" style="position: relative;">y

y的條件概率分布的學習方法。同樣的,cart需要生成和剪枝(pruning)。

1.cart是二叉樹,每個非葉子節點都有兩個孩子。等於遞迴地構建二叉決策樹。可用作回歸或分類。很想說雖然使用這些模型或者之後的整合方法,在實操中我們只要調庫喂資料就能夠完成,底層的工作機理完全不會展示出來,但是我認為了解這些原理是非常有必要的。

生成cart

1. regression tree

對於資料集,其中

y y

是連續變數,我們考慮如何實現回歸樹。乙個regression tree對應著特徵空間的乙個劃分以及在劃分單元上的輸出值,假設我們將輸入空間劃分為m個

' role="presentation" style="position: relative;">m個m

個單元r1

,r2,

...r

m r1,

r2,.

..rm

,並且在每個單元上都有乙個固定的輸出值cm

c

m,這樣回歸樹模型就可表示為f(

x)=∑

mm=1

cmi(

x∈rm

) f(x

)=∑m

=1mc

mi(x

∈rm)

即對於輸入模型的輸出。

當輸入空間的劃分確定時,可以用平方誤差來表示訓練誤差,即∑x

i∈rm

(yi−

f(xi

))2 ∑xi

∈rm(

yi−f

(xi)

)2

用平方誤差最小化的準則來求解每個單元上的最優輸出值,對∑x

i∈rm

(yi−

f(xi

))2 ∑xi

∈rm(

yi−f

(xi)

)2

上式求梯度可知最優的時候c^

m c^m為r

m rm

上所有輸入例項的輸出yi

y

i均值。

至於這些region怎麼劃分,用的是啟發式的方法。以下便是最小二乘回歸樹的生成方法:

1. 選擇最優切分變數

j j

和切分點

s' role="presentation" style="position: relative;">s

s,求解mi

nj,s

[min

c1∑x

i∈r1

(j,s

)(yi

−c1)

2+mi

nc2∑

xi∈r

2(j,

s)(y

i−c2

)2] min

j,s[

minc

1∑xi

∈r1(

j,s)

(yi−

c1)2

+min

c2∑x

i∈r2

(j,s

)(yi

−c2)

2]

遍歷變數

j j

,對固定的切分變數

j' role="presentation" style="position: relative;">j

j掃瞄切分點

s s

,使上式達到最小值。

2. 用選定的(j

,s)' role="presentation" style="position: relative;">(j,

s)(j

,s)劃分區域,並決定相應的輸出值:r1

(j,s

)=,r

2(j,

s)=,

c^m=

1nm∑

xi∈r

m(j,

s)yi

r 1(

j,s)

=,r2

(j,s

)=,c

^m=1

nm∑x

i∈rm

(j,s

)y

i3. 並繼續對兩個子區域遞迴呼叫1和2,直到滿足停止條件。

4. 劃分為

m m

個決策區域,生成回歸樹f(

x)=∑

m=1m

c^mi

(x∈r

m)' role="presentation" style="position: relative;">f(x

)=∑m

m=1c

^mi(

x∈rm

)f(x

)=∑m

=1mc

^mi(

x∈rm

) j j

是劃分變數,即是演算法開始要選擇劃分

r' role="presentation" style="position: relative;">r

r的資料的特徵。

s s

就是想在這個區域中所劃分的boundary,即切分點。

具體的切分思路我看了李航的統計學習方法後感覺未免有點囉嗦了,尤其是上面那麼多mi

n' role="presentation" style="position: relative;">min

min的式子是在是看得人頭疼;但是看示例吧,又覺得不得要領。

特徵的切分可以用這個簡單的例子來看,大家可以把訓練集看做一張excel**,橫排是例項,縱列是特徵或屬性:

1 2 3

2 3 8

6 4 10

那麼如果我想從特徵0(第一列)以切分點為3,那麼我就可以分為

1 2 3

2 3 8

和 6 4 10

這兩個區域。因為上面兩個例項,其特徵0對應的值小於3,下面的例項大於3嘛。這就是一種劃分。可見特徵和切分點的組合也可以是很多很多的,cart要找到最優的劃分特徵和劃分點,劃分之後再遞迴地….最優的話,遍歷所有輸入變數來找最優切分特徵和最優切分點…也就是上面步驟1的那個超長的式子.其中c1

,c2 c1,

c2

都是該區域內對應的資料集的yi

y

i的平均值。

找到最優劃分之後,集合就如同上面那個只有三個特徵和三個例項額資料集那樣,劃分成了兩個部分。我們只需遞迴的進行劃分即可,直到滿足條件為止。到最後,每個劃分區域的值都是對應的平均值。最後我們就得到了開頭的回歸樹模型。

2. classification tree

先介紹下基尼指數吧,它和資訊增益、資訊增益率同為分類時決定如何**的一種指標。todo

從決策樹到GBDT

首先,決策樹分為分類樹和回歸樹。gbdt中的樹是回歸樹 不是分類樹 gbdt用來做回歸 調整後也可以用於分類。以下羅列了比較好的學習資源,看完就可以掌握gbdt了 決策樹參考 分類樹回歸樹區別參考 分類樹 以c4.5分類樹為例,c4.5分類樹在每次分枝時,是窮舉每乙個feature的每乙個閾值,找到...

從決策樹到GBDT(一)

鑑於最近面試總是被問到這類問題,所以這次就是想寫乙個從決策樹到gbdt這一系列的博文。一方面加深記憶,另一方面也供以後方便回頭看。再者若是能夠為也正在機器學習這條路上摸爬滾打的朋友有一點助益就更圓滿了。本部落格是第一部分,主要介紹一下決策樹的基礎 特徵選擇。決策樹演算法主要有三部分 特徵選擇 決策樹...

從決策樹到隨機森林 小結

決策樹演算法接觸了三種,id3,c4.5,cart。1.id3採用資訊增益來選擇特徵,演算法比較基礎也簡單,缺點是容易過擬合,不能適應連續性輸入。2.c4.5採用資訊增益率來選擇特徵,能應對連續性輸入了。3.cart用基尼指數來選擇特徵。值得一提的是,sklearn有關決策樹的庫中,預設是用cart...