模型的基本原理不在贅述,僅結(jié)合scikit-learn中g(shù)bdt的實(shí)現(xiàn)璃弄,理清思路。
1 流程圖
1.1 總體迭代過程
2 損失函數(shù)
2.1 GradientBoostingRegressor的損失函數(shù)
sklearn中實(shí)現(xiàn)了四種目標(biāo)函數(shù):LeastSquaresError袍嬉,LeastAbsoluteError淫奔,HuberLossFunction,QuantileLossFunction振定。本人只使用過LeastSquaresError必怜,LeastAbsoluteError這兩種,因此僅對這兩種目標(biāo)函數(shù)展開理解后频。
-
LeastSquaresError
最小均方誤差函數(shù)梳庆,形式為:
其對應(yīng)的負(fù)梯度為:
代碼中的體現(xiàn)為:
-
LeastAbsoluteError
最小絕對值誤差函數(shù):形式為:
2.2 GradientBoostingClassifier的損失函數(shù)
sklearn中實(shí)現(xiàn)了兩種目標(biāo)函數(shù):Deviance(二分類問題BinomialDeviance和多分類問題MultinomialDeviance),ExponentialLoss卑惜。
- BinomialDeviance損失函數(shù)為:
負(fù)梯度
代碼中的體現(xiàn)
- ExponentialLoss 損失函數(shù)為:
負(fù)梯度
代碼中的體現(xiàn)
實(shí)際上以上兩種損失函數(shù)都是偏差最小化損失函數(shù)膏执,其一般化公式為:
值得注意的是,在Friedman的論文Greedy Function Approximation A Gradient Boosting Machine 中露久,描述的目標(biāo)函數(shù)為
該目標(biāo)函數(shù)對應(yīng)的標(biāo)簽為y = {-1,1} 更米,而sklearn中對應(yīng)的標(biāo)簽為y = {0,1}, 兩者是等價的:
2.3 單棵回歸樹
在總體迭代過程一節(jié)我們已經(jīng)看到,每次迭代都會建立一個回歸樹去擬合負(fù)梯度向量毫痕,與建樹相關(guān)的點(diǎn)有:
- 損失函數(shù)
均方差損失函數(shù) -
節(jié)點(diǎn)分裂原則:
通常使用的是friedman_mse原則壳快,公式為Greedy Function Approximation: A Gradient Boosting Machine論文中的(35)式:
- 葉子節(jié)點(diǎn)的值
葉子節(jié)點(diǎn)的值為分到該葉子節(jié)點(diǎn)的所有樣本對應(yīng)的輸出yi的平均值。
Refs
- Generalized Boosted Models: A guide to the gbm package
- Greedy Function Approximation: A Gradient Boosting Machine
- Additive Logistic Regression a Statistical View of Boosting.pdf