回覆列表
  • 1 # 北航秦曾昌

    Xgboost 是 GB 演算法的高效實現,傳統GBDT以CART作為基分類器,特指梯度提昇決策樹演算法,而xgboost 中的基學習器除了可以是CART(gbtree)外,也可以是線性分類器(gblinear)。

    本文在這裡總結了GBDT和XGBOOST演算法的四個主要區別(分別為最佳化方法、正則項、最佳分割點的衡量標準、shrinkage方法四個方面的區別),現將各部分具體的區別羅列如下:

    1.最佳化方法。

    傳統的GBDT進行最佳化時只涉及一階導數,而xgboost演算法則對代價函式使用二階泰勒公式,即同時使用了一階和二階導數。

    2.正則項。

    xgboost演算法在目標函式中顯示的加上了正則化項以對模型的複雜度進行控制:

    正則項裡包含了樹的葉子節點個數、每個葉子節點上輸出的score的L2模的平方和,正則項對每棵回歸樹的複雜度進行了懲罰,以確保樹的簡單性。從偏差(bias)-方差(variance)均衡原則來說,正則項的使用帶來了方差的降低,防止過擬合,使得xgboost的模型學習結果優於傳統GBDT。

    3.最佳分割點的衡量標準。

    在GBDT中,CART 回歸樹中以將均方差最小化為目的尋找最佳分割點,但xgboost則以最大化為尋找的標準,公式如下圖所示,lamda,gama 與正則化項相關。

    4.shrinkage方法。

    shrinkage方法是一個靈感來自於隨機森林演算法的方法,即在xgboost演算法中,對每顆子樹增加一個引數以增加每一顆的權重。進行完一次迭代後,會將葉子節點的權重乘上該係數最終達到避免過擬合的目的。同時還一定程度減少了計算量。

  • 中秋節和大豐收的關聯?
  • 虎牙手遊直播沒有遊戲聲音怎麼辦?