GBDT與XGBOOST串講
點擊上方“小白學視覺”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達
XGBOOST怎么生成一棵樹?
GBDT算法是什么?
GBDT與BT(提升樹)是一回事嗎?
本篇文章結(jié)構(gòu):
Boosting Tree(提升樹)

其中2.a步是計算殘差,2.b步通過把2.a的殘差當作標簽,可以使用線性回歸的方法進行擬合殘差。通過M次循環(huán)一共得到M+1顆樹,每個輸入數(shù)據(jù)X的結(jié)果,是M+1棵樹預測的結(jié)果之和。?
GB算法
當提升樹的損失函數(shù)是平方損失和指數(shù)損失時,每一步優(yōu)化很簡單;但是對于一般函數(shù),優(yōu)化不是非常簡單,因此采用梯度下降法進行優(yōu)化。至于為什么是“梯度提升”,我的理解是首先基于當前模型損失函數(shù)的負梯度信息進行擬合形成新的弱分類器,然后根據(jù)殘差進行尋找該新分類器的權(quán)重!由此,即為梯度提升!
具體算法如下:

第4步,使用梯度作為標簽進行擬合新的一棵樹;第5步是基于殘差進行得到新的一顆樹的權(quán)重,其中殘差來自于第i個數(shù)據(jù)的標簽y與前m-1棵樹的差得到的。其中F(x)表示前幾棵樹的總的函數(shù)。
GBDT算法 ?
有了上面的GB算法介紹,那么使用決策樹作為弱分類器的GB算法被稱為GBDT(Gradient Boosting Decision Tree)。一般采用CART得到?jīng)Q策樹,CART是采用基尼指數(shù)作為決策樹的損失增益函數(shù)?;嶂笖?shù)反應(yīng)了數(shù)據(jù)集D中任意兩個樣本不一致的概率。其基尼指數(shù)越高則數(shù)據(jù)集D的純度越高;純度越高正是決策樹每個葉子節(jié)點的類別越一致。信息熵和基尼指數(shù)都是《信息論》中的內(nèi)容。
XGBOOST ?
XGBOOST是GBDT算法的工程實現(xiàn),XGBOOST的公式推導采用二階泰勒公式的展開形式進行推導,使得每棵樹之間得變化更小,而且還使用了正則化項,控制了每棵樹的復雜度,進而防止過擬合。
公式推導也可以參見論文XGBoost: A Scalable Tree Boosting System
XGBOOST在生成一顆樹的時候,使用如下公式進行左右分支。

訓練得到第M棵樹的損失函數(shù):???

其實XGBOOST每一次分支采用的是貪心算法,對于決策說來說每次分支也是采用貪心算法,只不過每次進行分支使用的損失函數(shù)不一樣。對于決策樹有基尼指數(shù)、信息熵等loss函數(shù)。
小白團隊出品:零基礎(chǔ)精通語義分割↓↓↓
下載1:OpenCV-Contrib擴展模塊中文版教程 在「小白學視覺」公眾號后臺回復:擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺實戰(zhàn)項目52講 在「小白學視覺」公眾號后臺回復:Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。 下載3:OpenCV實戰(zhàn)項目20講 在「小白學視覺」公眾號后臺回復:OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。 交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


