XGBoost是端到端的迭代決策樹算法框架,被普遍用於各種機器學習應用中,具備很好的可擴展性git
每棵樹都是迴歸樹(CART樹)github
Xgboost相比傳統GBDT,作了以下優化:算法
1. 損失函數增長了正則項,正則項裏包含了樹的葉子節點個數、每一個葉子節點上輸出的score的L2模的平方和, 提升了樹的泛化能力緩存
2. 對於大數據,提供了塊緩存結構框架
3. 對代價函數進行了二階泰勒展開,使用二階導優化目標損失函數機器學習
4. 對於稀疏或者缺失特徵數據, 有默認分支,這樣避免計算分割點函數
爲了防止過擬合,採用兩種方法:學習
1. 加入Shrinkage思想,至關於給每棵樹加入權重大數據
2. 列採樣,即特徵採樣,相似於隨機森林優化
源碼: https://github.com/dmlc/xgboost
參考文獻:
XGBoost: A Scalable Tree Boosting System