Boosting
梯度提升樹 (GBM) 和 Adaboost 之間差異的直觀解釋
我試圖了解 GBM 和 Adaboost 之間的區別。
這些是我到目前為止所理解的:
- 兩種提升算法都可以從先前模型的錯誤中學習,最後對模型進行加權求和。
- GBM 和 Adaboost 非常相似,除了它們的損失函數。
但是我仍然很難理解它們之間的差異。有人可以給我直觀的解釋嗎?
我發現這個介紹提供了一些直觀的解釋:
- 在 Gradient Boosting 中,(現有弱學習器的)“缺點”由梯度確定。
- 在 AdaBoost 中,“缺點”由高權重數據點識別。
通過指數損失函數,AdaBoost 為之前步驟中擬合較差的樣本賦予更多權重。今天,AdaBoost 在損失函數方面被認為是 Gradient Boosting 的一個特例。從歷史上看,它先於梯度提升,後來被推廣到,如簡介中提供的歷史所示:
- 發明 AdaBoost,第一個成功的提升算法 [Freund et al., 1996, Freund and Schapire, 1997]
- 將 AdaBoost 公式化為具有特殊損失函數的梯度下降 [Breiman et al., 1998, Breiman, 1999]
- 將 AdaBoost 推廣到梯度提升以處理各種損失函數 [Friedman et al., 2000, Friedman, 2001]