? 因?yàn)橛脴淠P吞?xí)以為常了,以至于看到這個(gè)標(biāo)題很容易覺得這很顯然。但越簡(jiǎn)單的東西越容易出現(xiàn)知識(shí)盲區(qū),仔細(xì)想一下好像確實(shí)有點(diǎn)疑問:GBDT 用的是回歸樹,是如何做的分類呢? - 作者:1直在路上1 -https://www.cnblogs.com/always-fight/p/9400346.html 編輯:阿澤的學(xué)習(xí)筆記 ?
一 簡(jiǎn)介
GBDT 在傳統(tǒng)機(jī)器學(xué)習(xí)算法里面是對(duì)真實(shí)分布擬合的最好的幾種算法之一,在前幾年深度學(xué)習(xí)還沒有大行其道之前,GBDT 在各種競(jìng)賽是大放異彩。原因大概有幾個(gè)
效果確實(shí)挺不錯(cuò);
既可以用于分類也可以用于回歸;
可以篩選特征。
這三點(diǎn)實(shí)在是太吸引人了,導(dǎo)致在面試的時(shí)候大家也非常喜歡問這個(gè)算法。
GBDT 是通過采用加法模型(即基函數(shù)的線性組合),以及不斷減小訓(xùn)練過程產(chǎn)生的殘差來(lái)達(dá)到將數(shù)據(jù)分類或者回歸的算法。
GBDT 通過多輪迭代,每輪迭代產(chǎn)生一個(gè)弱分類器,每個(gè)分類器在上一輪分類器的殘差基礎(chǔ)上進(jìn)行訓(xùn)練。對(duì)弱分類器的要求一般是足夠簡(jiǎn)單,并且是低方差和高偏差的。因?yàn)橛?xùn)練的過程是通過降低偏差來(lái)不斷提高最終分類器的精度。
二 GBDT如何用于分類的
第一步:「訓(xùn)練的時(shí)候,是針對(duì)樣本 X 每個(gè)可能的類都訓(xùn)練一個(gè)分類回歸樹」。如目前的訓(xùn)練集共有三類,即 K = 3,樣本 x 屬于第二類,那么針對(duì)樣本x的分類結(jié)果,我們可以用一個(gè)三維向量 [0,1,0] 來(lái)表示,0 表示不屬于該類,1 表示屬于該類,由于樣本已經(jīng)屬于第二類了,所以第二類對(duì)應(yīng)的向量維度為 1,其他位置為 0。
針對(duì)樣本有三類的情況,我們實(shí)質(zhì)上是在每輪的訓(xùn)練的時(shí)候是同時(shí)訓(xùn)練三顆樹。第一顆樹針對(duì)樣本 x 的第一類,輸入是 ,第二顆樹針對(duì)樣本x的第二類,輸入是 ,第三顆樹針對(duì)樣本x的第三類,輸入是 。
在對(duì)樣本 x 訓(xùn)練后產(chǎn)生三顆樹,對(duì) x 類別的預(yù)測(cè)值分別是 ,那么在此類訓(xùn)練中,樣本 x 屬于第一類,第二類,第三類的概率分別是:
然后可以求出針對(duì)第一類,第二類,第三類的殘差分別是:
然后開始第二輪訓(xùn)練,針對(duì)第一類輸入為 ,針對(duì)第二類輸入為 ,針對(duì)第三類輸入為 ,繼續(xù)訓(xùn)練出三顆樹。一直迭代M輪,每輪構(gòu)建三棵樹當(dāng)訓(xùn)練完畢以后,新來(lái)一個(gè)樣本 ,我們需要預(yù)測(cè)該樣本的類別的時(shí)候,便產(chǎn)生三個(gè)值 ,則樣本屬于某個(gè)類別 c 的概率為:
三 GBDT多分類舉例說明
下面以 Iris 數(shù)據(jù)集的六個(gè)數(shù)據(jù)為例來(lái)展示 GBDT 多分類的過程
具體應(yīng)用到 gbdt 多分類算法。我們用一個(gè)三維向量來(lái)標(biāo)志樣本的 label,[1,0,0] 表示樣本屬于山鳶尾,[0,1,0] 表示樣本屬于雜色鳶尾,[0,0,1] 表示屬于維吉尼亞鳶尾。
gbdt 的多分類是針對(duì)每個(gè)類都獨(dú)立訓(xùn)練一個(gè) CART Tree。所以這里,我們將針對(duì)山鳶尾類別訓(xùn)練一個(gè) CART Tree 1。雜色鳶尾訓(xùn)練一個(gè) CART Tree 2 。維吉尼亞鳶尾訓(xùn)練一個(gè)CART Tree 3,這三個(gè)樹相互獨(dú)立。
我們以樣本 1 為例:
針對(duì) CART Tree1 的訓(xùn)練樣本是 [5.1,3.5,1.4,0.2],label 是 1,模型輸入為 [5.1, 3.5, 1.4, 0.2, 1]
針對(duì) CART Tree2 的訓(xùn)練樣本是 [5.1,3.5,1.4,0.2],label 是 0,模型輸入為 [5.1, 3.5, 1.4, 0.2, 0]
針對(duì) CART Tree3 的訓(xùn)練樣本是 [5.1,3.5,1.4,0.2],label 是 0,模型輸入為[5.1, 3.5, 1.4, 0.2, 0]
下面我們來(lái)看 CART Tree1 是如何生成的,其他樹 CART Tree2 , CART Tree 3 的生成方式是一樣的。CART Tree 的生成過程是從這四個(gè)特征中找一個(gè)特征做為 CART Tree1 的節(jié)點(diǎn)。
比如花萼長(zhǎng)度做為節(jié)點(diǎn)。6 個(gè)樣本當(dāng)中花萼長(zhǎng)度大于等于 5.1 cm 的就是 A 類,小于 5.1 cm 的是 B 類。生成的過程其實(shí)非常簡(jiǎn)單,問題
是哪個(gè)特征最合適?
是這個(gè)特征的什么特征值作為切分點(diǎn)?
即使我們已經(jīng)確定了花萼長(zhǎng)度做為節(jié)點(diǎn)?;ㄝ嚅L(zhǎng)度本身也有很多值。在這里我們的方式是遍歷所有的可能性,找到一個(gè)最好的特征和它對(duì)應(yīng)的最優(yōu)特征值可以讓當(dāng)前式子的值最?。?/p>
我們以第一個(gè)特征的第一個(gè)特征值為例。R1 為所有樣本中花萼長(zhǎng)度小于 5.1cm 的樣本集合,R2 為所有樣本中花萼長(zhǎng)度大于等于 5.1cm 的樣本集合,所以 。
為 R1 所有樣本label的均值:, 為 R2 所有樣本 label 的均值:
下面計(jì)算損失函數(shù)的值,采用平方誤差,分別計(jì)算 R1 和 R2 的誤差平方和,樣本 2 屬于 R1 的誤差:,樣本 1,3,4,5,6 屬于 R2 的誤差和:
接著我們計(jì)算第一個(gè)特征的第二個(gè)特征值,即 R1 為所有樣本中花萼長(zhǎng)度小于 4.9 cm 的樣本集合,R2 為所有樣本當(dāng)中花萼長(zhǎng)度大于等于 4.9 cm 的樣本集合,, 為 R1 所有樣本 label 的均值:0, 為 R2 所有樣本 label 的均值:
計(jì)算所有樣本的損失值,樣本 1 和 2 屬于 R2,損失值為:,樣本 3,4,5,6 也屬于 R2,損失值為:,兩組損失值和為 2.222,大于特征一的第一個(gè)特征值的損失值,所以我們不取這個(gè)特征的特征值。
「繼續(xù),這里有四個(gè)特征,每個(gè)特征有六個(gè)特征值,所有需要 6*4=24 個(gè)損失值的計(jì)算,我們選取值最小的分量的分界點(diǎn)作為最佳劃分點(diǎn),這里我們就不一一計(jì)算了,直接給出最小的特征花萼長(zhǎng)度,特征值為 5.1 cm。這個(gè)時(shí)候損失函數(shù)最小為 0.8。于是我們的預(yù)測(cè)函數(shù)此時(shí)也可以得到:」
「此例子中,訓(xùn)練完以后的最終式子為:」
由這個(gè)式子,我們得到對(duì)樣本屬于類別 1 的預(yù)測(cè)值:,同理我們可以得到對(duì)樣本屬于類別 2,3 的預(yù)測(cè)值 ,樣本屬于類別 1 的概率
責(zé)任編輯:xj
原文標(biāo)題:GBDT 如何用于分類問題
文章出處:【微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
算法
+關(guān)注
關(guān)注
23文章
4588瀏覽量
92505 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8353瀏覽量
132315 -
GBDT
+關(guān)注
關(guān)注
0文章
13瀏覽量
3877
原文標(biāo)題:GBDT 如何用于分類問題
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論