原創 GBDT(MART)概念簡介

2021-07-07 07:15:39 字數 3233 閱讀 6940

gbdt(gradient boosting decision tree) 

又叫mart

(multiple additive regression tree)

,是一種用於回歸的機器學習演算法,該演算法由多棵決策樹組成,所有樹的結論累加起來做最終答案。當把目標函式做變換後,該演算法亦可用於分類或排序。

本文主要從高層明確幾個gbdt概念,主要講

gbdt

的兩個版本以及

gbdt

是什麼不是什麼。

詳細介紹較長,見另一篇博文

1. gbdt的兩個不同版本(重要)

目前gbdt

有兩個不同的描述版本,兩者各有支持者,讀文獻時要注意區分。

殘差版本

gbdt

說成乙個殘差迭代樹,認為每一棵回歸樹都在學習前

n-1棵樹的殘差,之前我寫的

gbdt

入門教程

主要在描述這一版本,

elf開源軟體

實現中用的也是這一版本。

gradient版本

gbdt

說成乙個梯度迭代樹,使用梯度下降法求解,認為每一棵回歸樹在學習前

n-1棵樹的梯度下降值,之前

leftnoteasy

的部落格中

介紹的為此版本,

umass

的原始碼實現中用的則是這一版本(準確的說是

lambdamart

中的mart

為這一版本,

mart

實現則是前一版本)。

對gbdt

無基礎的朋友可以先分別看一下前面兩篇博文教程。總的來說

兩者相同之處在於,都是迭代

回歸樹,都是

累加每顆樹結果作為最終結果(

multiple additive regression tree)

,每棵樹都在學習前

n-1棵樹尚存的不足,從總體流程和輸入輸出上兩者是沒有區別的;

兩者的不同主要在於每步迭代時,是否使用

gradient

作為求解方法。前者不用

gradient

而是用殘差

----

殘差是全域性最優值,

gradient

是區域性最優方向

*步長,即前者每一步都在試圖讓結果變成最好,後者則每步試圖讓結果更好一點。

兩者優缺點。看起來前者更科學一點

--有絕對最優方向不學,為什麼捨近求遠去估計乙個區域性最優方向呢?原因在於靈活性。前者最大問題是,由於它依賴殘差,

cost function

一般固定為反映殘差的均方差,因此很難處理純回歸問題之外的問題。而後者求解方法為梯度下降,只要可求導的

cost function

都可以使用,所以用於排序的

lambdamart

就是用的後者。

2. gbdt中的tree是回歸樹,不是分類決策樹。

詳見之前我寫的

gbdt

入門教程

3. gbdt中的boost是樣本目標的迭代,不是re-sampling的迭代,也不是adaboost

adaboost

中的boosting

指從樣本中按分類對錯,分配不同的

weight

,計算cost function

時使用這些

weight

,從而讓「錯分的樣本權重越來越大,直到它們被分對」。

bootstrap

也有類似思想,只不過它可以利用不同的

weight

作為sample

概率對訓練樣本集做

re-sample

,讓錯分的樣本被進一步學習,而分類正確的樣本就不用再學了。但

gbdt

中的boost

完全不同,跟上述邏輯沒有任何關係,

gbdt

中每步boost

的樣本集都是不變的,變的是每個樣本的回歸目標值。詳見之前我寫的

gbdt

入門教程。

4. shrinkage不是gradient的步長

shrinkage

只是一種大步變小步的逐步求精方法。這點看起來和

gradient

目標=gradient

單位方向

*步長挺像。

但其實很不同:1)

shrinkage

的處理物件不一定是

gradient

方向,也可以是殘差,可以是任何增量,即目標

=任何東西

*shrinkage

步長。2

)shrinkage

決定的是最終走出的一步大小,而不是希望走出的一步大小。前者是對於已有的學習結果打折,後者是在決定學習目標時對區域性最優方向上走多遠負責。3)

shrinkage

設小了只會讓學習更慢,設大了就等於沒設,它適用於所有增量迭代求解問題;而

gradient

的步長設小了容易陷入區域性最優點,設大了容易不收斂。它僅用於用梯度下降求解。

--這兩者其實沒太大關係。

lambdamart

中其實兩者都用了,而外部可配的引數是

shrinkage

而不是gradient

步長。

5. gbdt中的gradient不一定必須是gradient見第1

部分的兩個版本。

《轉》 GBDT(MART)概念簡介

gbdt gradient boosting decision tree 又叫 mart multiple additive regression tree 是一種用於回歸的機器學習演算法,該演算法由多棵決策樹組成,所有樹的結論累加起來做最終答案。當把目標函式做變換後,該演算法亦可用於分類或排序。本...

原創 oracle sequence簡介

sequence簡介 2013 12 26 一 概述 sequence是序列號的意思,每次取的時候它會自動增加。sequence與表沒有從屬關係,與表一樣屬於使用者。二 主要內容 1 create sequence語法 首先使用者要有create sequence或者create any seque...

UML簡介(原創)

臭雞蛋什麼的等下再扔,uml是個很大的主題,輪不到我來做什麼總結,只是談談我的觀點 軟體工程領域在1995年至1997年取得了前所未有的進展,其成果超過軟體工程領域過去15年來的成就總和。其中最重要的 具有劃時代重大意義的成果之一就是統一建模語言 uml unified modeling langu...