1. 程式人生 > >xgboost和gbdt區別

xgboost和gbdt區別

叠代優化 scala oos 目標 區別 稀疏 增加 函數 貪心法

1. xgboost在目標函數中加入了正則化項,當正則化項為0時與傳統的GDBT的目標函數相同
2. xgboost在叠代優化的時候使用了目標函數的泰勒展開的二階近似,paper中說能加快優化的過程!!xgboost可自定義目標函數,但是目標函數必須二階可導也是因為這個。GDBT中只用了一階導數。
3. xgboost尋找最佳分割點時,考慮到傳統貪心法效率比較低,實現了一種近似貪心法,除此之外還考慮了稀疏數據集、缺失值的處理,這能大大提升算法的效率。paper中提到在一個稀疏數據集中測試,發現速度提升了50倍。 4.對每顆子樹增加一個參數,使得每顆子樹的權重降低,防止過擬合,增加這個參數叫shrinkage方法。對特征進行降采樣,靈感來源於隨機森林,除了能降低計算量外,還能防止過擬合。 https://www.zhihu.com/question/41354392 http://mlnote.com/2016/10/05/a-guide-to-xgboost-A-Scalable-Tree-Boosting-System/

xgboost和gbdt區別