Boosting

梯度提升樹 (GBM) 和 Adaboost 之間差異的直觀解釋

  • August 1, 2015

我試圖了解 GBM 和 Adaboost 之間的區別。

這些是我到目前為止所理解的:

  • 兩種提升算法都可以從先前模型的錯誤中學習,最後對模型進行加權求和。
  • GBM 和 Adaboost 非常相似,除了它們的損失函數。

但是我仍然很難理解它們之間的差異。有人可以給我直觀的解釋嗎?

我發現這個介紹提供了一些直觀的解釋:

  • 在 Gradient Boosting 中,(現有弱學習器的)“缺點”由梯度確定。
  • 在 AdaBoost 中,“缺點”由高權重數據點識別。

通過指數損失函數,AdaBoost 為之前步驟中擬合較差的樣本賦予更多權重。今天,AdaBoost 在損失函數方面被認為是 Gradient Boosting 的一個特例。從歷史上看,它先於梯度提升,後來被推廣到,如簡介中提供的歷史所示:

  1. 發明 AdaBoost,第一個成功的提升算法 [Freund et al., 1996, Freund and Schapire, 1997]
  2. 將 AdaBoost 公式化為具有特殊損失函數的梯度下降 [Breiman et al., 1998, Breiman, 1999]
  3. 將 AdaBoost 推廣到梯度提升以處理各種損失函數 [Friedman et al., 2000, Friedman, 2001]

引用自:https://stats.stackexchange.com/questions/164233

comments powered by Disqus