機器學習——提升方法AdaBoost演算法,推導過程

Lily發表於2019-05-09

0提升的基本方法

  對於分類的問題,給定一個訓練樣本集,求比較粗糙的分類規則(弱分類器)要比求精確的分類的分類規則(強分類器)容易的多。提升的方法就是從弱分類器演算法出發,反覆學習,得到一系列弱分類器(又稱為基本分類器),然後組合這些弱分類器,構成一個強分類器。大多數的提升方法都是改變訓練資料集的概率分佈(訓練資料的權值分佈),針對不同的訓練資料分佈呼叫弱學習演算法學習一系列弱分類器。

  這樣,對於提升方法來說,有兩個問題需要回答:一是在每一輪如何改變訓練資料的權值或概率分佈,二是如何將弱分類器組合成一個強分類器。對於第一個問題,AdaBoost的做法是提高那些被前一輪弱分類器錯誤分類樣本的權值,降低那些被正確分類的樣本的權值。如此,那些被分類錯誤的樣本將更加受到關注。對於第二個問題,AdaBoost採取多數表決的法法,具體的,加大分類誤差率小的弱分類器的權值,使其的作用較大,減小那些分類錯誤率大的分類器的權值,使其在表決中起較小的作用。

1.AdaBoost演算法

AdaBoost演算法從訓練資料中學習一系列弱分類器或者基本分類器,並將這些分類器進行線性組合。

輸入:訓練資料集T={(x1,y1),(x2,y2),(x3,y3)......},y的類別為{-1,1}

輸出:最終的分類器G(x)

  (1)初始化訓練資料的權值分佈

  (2)對m=1,2,.....,M

      (a)使用具有權值分佈的Dm訓練資料集進行學習,得到基本分類器

      (b)計算Gm(x)在訓練資料集上的分類誤差率

        (c)計算Gm(x)的係數

  這裡的對數是自然對數

       (d)更新訓練資料集的權值分佈

  其中,Zm是歸一化因子。

  (3)構建基本的分類器的線性組合

  得到最終的分類器:

2演算法詳解

  對於演算法做如下的解釋:

  對於原始的資料集,假設其為均勻分佈,則能夠在原始資料集上面得到基本分類器。得到的權值通過改變分類誤差率進而改變分類器的係數,對於基本分類器Gm(x)的係數am,am表示Gm(x)在最終分類器的重要性,當em<=0.5時,am>0,am隨著em的減小而增大,所以分類誤差率越小的基本分類器在最終的分類器的作用越大。

  M個分類器的加權表決,係數am表示了基本分類器GM(x)的重要性,am之和並不為1,由f(x)的符號決定例項x的類,f(x)的絕對值表示分類的確信度。

 

相關文章