GBDT 算法

GBDT (Gradient Boosting Decision Tree) 梯度提升迭代決策樹。GBDT 也是 Boosting 算法的一種,但是和 AdaBoost 算法不同(AdaBoost 算法上一篇文章已經(jīng)介紹);區(qū)別如下:AdaBoost 算法是利用前一輪的弱學(xué)習(xí)器的誤差來更新樣本權(quán)重值,然后一輪一輪的迭代;GBDT 也是迭代,但是 GBDT 要求弱學(xué)習(xí)器必須是 CART 模型,而且 GBDT 在模型訓(xùn)練的時(shí)候,是要求模型預(yù)測(cè)的樣本損失盡可能的小。

GBDT 直觀理解:每一輪預(yù)測(cè)和實(shí)際值有殘差,下一輪根據(jù)殘差再進(jìn)行預(yù)測(cè),最后將所有預(yù)測(cè)相加,就是結(jié)果。

GBDT 模型可以表示為決策樹的加法模型:


其中,T(x;θm)表示決策樹;θm 為決策樹的參數(shù); M為樹的個(gè)數(shù)。

采用前向分布算法, 首先確定初始提升樹 fo(x) = 0, 第 m 步的模型是:

通過經(jīng)驗(yàn)風(fēng)險(xiǎn)極小化確定下一棵樹的參數(shù):(其實(shí)就是讓殘差盡可能的小找到最優(yōu)劃分點(diǎn))

這里的 L() 是損失函數(shù),回歸算法選擇的損失函數(shù)一般是均方差(最小二乘)或者絕對(duì)值誤差;而在分類算法中一般的損失函數(shù)選擇對(duì)數(shù)函數(shù)來表示


GBDT 既可以做回歸也可以做分類,下面先描述一下做回歸的算法流程:

已知一個(gè)訓(xùn)練數(shù)據(jù)集 T = {(x1,y1),(x2,y2),...,(xn,yn)}, 如果將訓(xùn)練集分為不同的區(qū)域 R1,R2,...,Rn,然后可以確定每個(gè)區(qū)域輸出的常識(shí) c,c 的計(jì)算是將每個(gè)區(qū)域的 y 值相加再除以 y 的個(gè)數(shù),其實(shí)就是求一個(gè)平均值。樹可以表示為:

然后通過下圖方式來確定具體分割點(diǎn):

我將李航的統(tǒng)計(jì)學(xué)方法里面的例子粘出來,就知道提升樹是如何計(jì)算的了:

以上就是 GBDT 選擇分割點(diǎn)的過程, 如果特征有多個(gè)的話也是一樣的道理,選擇特征和特征值使得誤差最小的點(diǎn),作為分割點(diǎn)。所以其實(shí) GBDT 也可以用作特征選擇,通過GBDT 可以將重要的特征選擇出來,當(dāng)特征非常多的時(shí)候可以用來做降維。然后再融合類似邏輯回歸這樣的模型再進(jìn)行訓(xùn)練。

歡迎大家關(guān)注,vx公眾號(hào)同名

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容