比較全面的Adaboost演算法總結(一)
目錄:
1. Boosting演算法基本原理
2. Boosting演算法的權重理解
3. AdaBoost的演算法流程
4. AdaBoost演算法的訓練誤差分析
5. AdaBoost演算法的解釋
6. AdaBoost演算法的正則化
7. AdaBoost演算法的過擬合問題討論
8. 總結
Boosting的演算法流程
Boosting演算法是一種由原始資料集生成不同弱學習器的迭代演算法,然後把這些弱學習器結合起來,根據結合策略生成強學習器。
如上圖,Boosting演算法的思路:
(1)樣本權重表示樣本分佈,對特定的樣本分佈生成一個弱學習器。
(2)根據該弱學習器模型的誤差率e更新學習器權重α。
(3)根據上一輪的學習器權重α來更新下一輪的樣本權重。
(4)重複步驟(1)(2)(3),結合所有弱學習器模型,根據結合策略生成強學習器。
Boosting演算法的權重理解
Boosting演算法意為可提升演算法,可提升方法具體表現在(一)改變訓練資料的概率分佈(訓練資料的權值分佈),(二)弱分類器權重的生成。理解這兩個原理是理解AdaBoost演算法的基礎。
1. 訓練資料的權重理解
我們對癌症病人和健康人作一個定性的分析,目的是理解Boosingt演算法訓練資料權重更新的思想。
如下圖為分類器G(1)的分類情況,假設樣本資料的權重相等。
癌症誤分類成健康人的結果很可能是喪失生命,因此這種誤分類情況肯定不能出現的,若我們對該誤分類點的權重增加一個極大值,以突出該樣本的重要性,分類結果如下圖:
因此,增加誤分類樣本的權重,使分類器往該誤分類樣本的正確決策邊界方向移動,當權重增加到一定值時,誤分類樣本實現了正確分類,因為訓練樣本的權重和是不變的,增加誤分類樣本權重的同時,也降低了正確分類樣本的權重。這是Boosting演算法的樣本權重更新思想。
2. 弱學習器的權重理解
Boosting演算法通過迭代生成了一系列的學習器,我們給予誤差率低的學習器一個高的權重,給予誤差率高的學習器一個低的權重,結合弱學習器和對應的權重,生成強學習器。弱學習器的權重更新是符合常識的,弱學習器效能越好,我們越重視它,權重表示我們對弱學習器的重視程度,即權重越大,這是Boosting演算法弱學習器權重的更新思想。
AdaBoost演算法流程
(1)如何計算弱學習器的學習誤差;
(2)如何得到弱學習器的權重係數;
(3)如何更新樣本權重;
(4)使用何種結合策略;
AdaBoost的訓練誤差是以指數速率下降的,即AdaBoost演算法隨著迭代次數的增加,訓練誤差不斷減小,即模型偏差顯著降低 。