adaboost算法是boosting系列算法的一種,boosting系列算法是串行生成多個弱學習器,并根據結合政策得到強學習器。Adaboost算法能用于分類和回歸,本文隻介紹分類算法。
上篇文章講到了boosting系列的算法思想,adaboost算法是它的具體實作。
boosting系列算法都需要解決下面幾個問題:
1)如何計算學習誤差率e
2)如何得到弱學習器的系數α
3)每次疊代過程中,如何更新樣本權重D
4)采用何種結合政策
本文介紹的adaboosting算法回答了上述的4個問題。
1. Adaboosting算法步驟
假設訓練集樣本為:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iZiRDO2YGMiRzN1M2N4cjZ4MzMxIzYyQGMxQmYhJDZ38CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
第k輪疊代的資料集樣本權重為:
初始化樣本權重為:
下面基于boosting系列算法的4個基本問題來介紹Adaboost算法
1) 學習率誤差的計算
其中
為第k輪弱學習器的輸出。
2)如何得到弱學習器的系數α
表示第k輪疊代的弱學習器的系數。
3)如何更新樣本權重D
表示第k輪疊代過程中,第i個樣本的權重。
4)采用何種結合政策
Adaboost算法采用權重平均的方法,并通過sign函數得到最終的分類結果:
2. Adaboost算法的幾個知識要點
Adaboost算法一系列弱學習器的權重平均,暫不考慮sign函數(因為不影響算法的思想),有:
由上式可知,Adaboost算法是一種加法模型。
令
表示為第k輪疊代後的強學習器,由加法模型可得:
Adaboost算法的損失函數為指數函數,即:
根據本節介紹的這幾個知識點,可反推出樣本權重的更新公式和弱學習器的權重系數,具體請參考https://www.cnblogs.com/pinard/p/6133937.html。
Adaboost的優點在于簡單,且模型不易過拟合。缺點是若資料集包含了異常樣本,則異常樣本在疊代過程中會獲得較高的權重,導緻模型分類性能較差。
歡迎掃碼關注: