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