xgboost是目前效果最優(yōu)的一款集成模型。那么,xgboost是個啥東西,xgboost的boost思路又是怎么產(chǎn)生的呢。
閱讀了paper 《greedy function approximation: A gradient boosting machine》之后,有些模糊的東西有了解答。
question 1. xgboost是啥?
boosting,顧名思義,增長的意思。也就是說,F(xiàn)的計算方法,是每個基分類器的總和,訓(xùn)練的過程,是一步一步建立每個基分類器的過程,這種過程,就可以成為boost。
原文中,Y值的計算方法是這樣的:

從公式可以看出,最終的Y值是由N個基分類器的加權(quán)平均。
question2. boost的思想是怎么來的?

boost是一種貪心求最佳參數(shù)的方法,也就是說,在第m步,前面一步(m-1)生成的分類器不用優(yōu)化參數(shù),第m步優(yōu)化的目標(biāo)就是最大化gm,也就是最小化負(fù)梯度,被定義為最陡下降的目標(biāo),是一種直線搜索的方法。這種思路將目標(biāo)函數(shù)簡化為每個step中求最小化的負(fù)梯度,需要調(diào)整的參數(shù)量變少了很多。
question3. 總之,最后的loss計算和優(yōu)化方法是啥?

在公式中,可以看到,h(x,a)是每個基分類器的打分,乘以一個beta權(quán)值,最終的predict值是各個基分類器的加權(quán)分?jǐn)?shù)。對于boost的優(yōu)化思想,就是公式(9)中,F(xiàn)m-1(x) + h(x,a)* beta, 代表第m個基分類器加入后,predict的值。調(diào)優(yōu)的過程,就是找到最優(yōu)化的beta,和基分類器的a參數(shù)值。
question4. 基分類器的數(shù)是怎么分裂的?

根據(jù)陳天奇的xgboost的論文,loss的表達(dá)式還可以展開式泰勒級數(shù)的形式,分裂的增益可以寫成如上形式,其中,gi是第i個樣本在前m次迭代的損失函數(shù)一階導(dǎo),hi是第i個樣本在前m次迭代的損失函數(shù)二階導(dǎo)。