1. 程式人生 > >比較全面的Adaboost演算法總結(一)

比較全面的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演算法隨著迭代次數的增加,訓練誤差不斷減小,即模型偏差顯著降低 。