XGBoost(極度梯度提升樹,eXtreme Gradient Boosting)是基于GBDT的優化模型,其最大特性在于對GBDT的損失函數展開到二階導數,使得其梯度提升樹模型更接近其真實損失
其XGBoost分類樹擬合和預測方法的基本思路為:
遍歷所有的樹,針對每一棵樹做預測,然后對預測結果進行累加后進行Softmax,最終得到各類別預測的結果
XGBoost與GBDT實現的流程比較:
GBDT:樹結點-》CART決策樹(分類樹/回歸樹)-》GBDT(基本超參數-》擬合方法-》預測方法)-》損失函數(交叉熵損失-》均方損失-》一階導數)-》輔助函數(數據標準化-》數據劃分方法-》數據打亂方法)XGBoost:樹結點-》決策樹(分類樹/回歸樹)-》XGBoost(基本超參數-》增益計算-》葉子最優得分-》擬合方法-》預測方法)-》損失函數(交叉熵損失-》均方損失-》一階導數-》二階導數)-》輔助函數(數據標準化-》數據劃分方法-》數據打亂方法)
其與GBDT相比就多了增益計算、葉子最優得分和二階導數
以上GBDT和XGBoost涉及的超參數為樹的棵樹、學習率、結點分裂最小樣本數、結點最小基尼不純度、樹的最大深度
XGBoost這個模型已經被封裝成庫,故可以直接通過pip install xgboost進行安裝,在pycharm中進行使用,并且可以繪制特征重要性圖,用于展示各個特征在模型中的重要性評分。其適用在廣泛的工業高標準的場景。