AdaBoost是通過提升錯分數據點的權重來定位模型的不足。
Gradient Boosting是通過算梯度(gradient)來定位模型的不足。
主要思想是,每壹次建立單個學習器時,是在之前建立的模型的損失函數的梯度下降方向,損失函數越大,說明模型越容易出錯,如果我們的模型能夠讓損失函數持續的下降,則說明我們的模型在不停的改進,而最好的方式就是讓損失函數在其梯度方向上下降。
GBDT=GB+DT(decision tree),即基分類器為決策樹時,這裏的決策樹是回歸樹。
Xgboost 是GB算法的高效實現,其中基分類器除了可以使CART也可以是線性分類器。
幾大區別:
傳統GBDT以CART作為基分類器,xgboost還支持線性分類器,這個時候xgboost相當於帶L1和L2正則化項的邏輯斯帝回歸或者線性回歸
傳統GBDT在優化時只用到了壹階導數,而xgboost對代價函數進行了二階泰勒展開,用到了壹階和二階導數
xgboost加入了正則項,防止過擬合
shrinkage,相當於學習率,在每完成壹次叠代後,會乘上這個系數,削減每棵樹的影響
列抽樣,借鑒隨機森林的做法,支持列抽樣,不僅能降低過擬合,還能減少計算。