从GB到GBDT到XGBoost
Boosting
boosting一句話理解:三個(gè)臭皮匠,頂個(gè)諸葛亮。
在計(jì)算機(jī)學(xué)習(xí)理論里,強(qiáng)可學(xué)習(xí)和弱可學(xué)習(xí)是等價(jià)的。
弱可學(xué)習(xí)模型轉(zhuǎn)化為強(qiáng)可學(xué)習(xí)模型方法:前向分布加法模型。
最簡(jiǎn)單前向分布加法模型
yk+1 = yk + ( y-yk )
( y-yk )即為殘差,每一個(gè)新的弱分類器學(xué)習(xí)的目標(biāo)都是殘差
這么一個(gè)簡(jiǎn)單的模型,能否得到我們想要的結(jié)果?
理論上( y-yk )只有方向是準(zhǔn)確的,具體是多少是模糊的。
進(jìn)階用梯度代替殘差,即GB
理論上( y-yk )只有方向是準(zhǔn)確的,具體是多少是模糊的。
用梯度代替( y-yk ):
yk+1 = yk + ( ak *梯度), ak為步長(zhǎng)
這里的梯度就是我們常聽說的偽殘差,擬合偽殘差得到方向,掃描搜索得到最好的步長(zhǎng)。
使用指數(shù)函數(shù)為損失函數(shù),即為Adaboost
使用決策樹為分類器,即為GBDT
通過上述算法,我們(x,偽殘差)得到方向g,(x,g)得到步長(zhǎng)(單變量一元回歸)
泰勒展開與GB
GBDT使用上述公式一階泰勒展開
XGBoosting上述公式二階泰勒展開
我們知道泰勒二階展開就是牛頓法,直接求出了方向和步長(zhǎng),不需要線性搜索合適的步長(zhǎng)。
XGBoosting
XGBoosting上述公式二階泰勒展開
我們知道泰勒二階展開就是牛頓法,直接求出了方向和步長(zhǎng),不需要線性搜索合適的步長(zhǎng)。
實(shí)際上處理不會(huì)一步到位,避免過擬合
詳細(xì)推導(dǎo)見:https://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf link.
從這里可以看出XGBoost基本還是集成前人的東西,考慮大數(shù)據(jù)處理,優(yōu)化并行計(jì)算,形成工業(yè)級(jí)應(yīng)用才是XGBoost最大作用。
參考學(xué)習(xí)資料:
https://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf link.
https://arxiv.org/abs/1603.02754
總結(jié)
以上是生活随笔為你收集整理的从GB到GBDT到XGBoost的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas读取大文件csv容易出现的错
- 下一篇: 哈夫曼编码的非树节点形式实现