樹模型比較(二)
阿新 • • 發佈:2018-12-08
主要是看看隨機森林,GBDT,XGBoost這些基於樹的整合方法之間的異同。
隨機森林(RF)
- Bagging思想
- 利用Boostrap取樣,從樣本中選取不同的集合構造決策樹,整個過程可以並行;
- Boostrap取樣方式帶來了一個優勢,能留下32%的資料從未被用過,可以用來進行包外估計
- 兩種擾動方式,樣本擾動和屬性擾動,增加了模型的多樣性以及最終的泛化能力
- 最終結果的得出:分類問題用投票,迴歸問題用平均
- 隨機森林由於行取樣增加擾動,所以每次都是完全建樹,分到不能分為止,而且最後不用剪枝
- 偏差方差分解角度,Bagging降低方差
GBDT
- Boosting方法,與Bagging相區別,序列化建樹過程,基學習器之間具有強依賴性
- AdaBoost也是Boosting方法,區別在於AdaBoost每次是通過改變樣本的權重進行學習,而GBDT中是樣本是沒有權重的
- GBDT可以認為是函式空間的梯度下降,每次尋找使損失函式下降最快的方向,這也是梯度的由來。但是其本質是擬合前面得到的模型的殘差
- GBDT的並行不可以從樹的層面做,但是在特徵選擇層面是可以的
- GBDT中每一棵樹都是迴歸樹(CART)
- 降低偏差。在訓練的時候,設定樹的深度很小的時候,也可以達到很好的效果。
- shrikage,小步逼近,防止過擬合
XGBoost
- 基於GBDT的框架,Boosting思想
- 基學習器可以選擇樹(gbtree),也可以使用線形分類器(gblinear)
- 自帶正則的目標函式,L1+L2,L1是對葉結點數量的限制,L2是對葉結點輸出值的限制,防止過擬合
- 通過利用泰勒的二階展開,對目標函式進行近似,從而提出了一種應用更為廣泛的分裂評價指標,凡是目標函式可以進行二階泰勒展開的都可以用,level-wise
- 支援shrinkage,列取樣,行取樣,都可以防止過擬合,通常列取樣效果好於行取樣
- 可以處理缺失值,通過學習尋找最優的劃分方向
- 並行加速是通過對特徵值進行排序/直方圖,事先計算好存為block,以後用的時候直接查表即可