機器學習 - 提升樹(下)- XGBoost 以及與 GBDT 的比較
阿新 • • 發佈:2019-01-01
機器學習 - 提升樹(下)- XGBoost 以及與 GBDT 的比較
本文介紹 Kaggle 等資料競賽的大殺器:XGBoost !
-
XGBoost(eXtreme Gradient Boost)
-
原理
XGBoost 的核心原理與之前所講的提升樹是類似的,都是通過學習殘差近似來訓練模型。不同的是 XGBoost 同時使用了一階導與二階導。而且XGBoost 加入了正則項,從某種程度上可以進行預剪枝,所以約束了模型的複雜度。說了這麼多,“關鍵看療效”,但 XGBoost 真正工程應用上也是非常的棒,陳天奇前輩可謂“華人之光”啊!
對於加法模型與前向分步演算法的過程是一樣的,那麼我們從損失函式來看 XGBoost 的靈性:
我們想構建損失函式,並且想得到具有正則項的結構損失函式,那麼我就可以先抽象化的定義結構損失函式目標:
其中 為經驗損失函式, 為真實值, 為第 m-1 次迭代後模型的預測值, 為正則項。
那麼我們該如何具體地表示殘差以及正則項呢,XGBoost 選擇使用 泰勒公式的二階展開!
泰勒公式的二階展開式為:
根據此,我們將經驗損失函式 進行泰勒公式的二階展開:
我們定義:
所以:
-