1. 程式人生 > >提升方法:Adaboost演算法與證明

提升方法:Adaboost演算法與證明

這基本就是關於《統計學習方法》的筆記,當然自己會記的讓人容易讀懂,為了加深記憶,證明都證了兩遍,便於加深理解還是打算寫在部落格裡好了。接下來會先介紹什麼是提示方法,再介紹Adaboost演算法,接著會給個書上的例子,最後再給出一些推導(由於之前是寫過的但是沒儲存好,所以這次有的部分就貼上了)。

1、提升方法

定義:在分類問題中,該方法會改變訓練樣本的權重,學習到多個弱分類器,最後將這些分類器進行線性組合形成一個強分類器,從而提高分類的能力。

關於弱分類器可以簡單理解為該模型可以分類但是分類能力不強,而強分類器則能很好的進行分類。
如此一來,對於提升方法我們需要考慮兩個問題

  1. 每次迭代的時候如何改變樣本的權重
  2. 如何將這些弱分類器組合成一個強分類器。

ps:如何獲得弱分類器(或者說基本分類器)是根據需要的來決定的,與提升方法沒有必然聯絡,比如可以是決策樹模型,然後學習到一個強的決策樹模型。

2、Adaboost

Adaboost就是一個典型的提升方法,那麼它如何解決上面的兩個問題呢?

  1. 每次迭代過程中,會提高上一輪誤分類樣本點(使用上一輪分類器不能進行正確分類的樣本)的權重,使它在本輪中獲得更多的關注;相反,上一輪正確分類的樣本的權重則會降低;
  2. 提升方法中已經說了會對弱分類器進行線性組合形成強分類器,Adaboost的做法是採用加權多數表決的方法,具體的,增大分類誤差率低的弱分類器的係數,降低分類誤差率高的弱分類器的係數。

下面關於二分類問題給出該演算法流程(昨天寫了沒儲存好,所以不想寫了就直接貼上了)

Adaboost
輸入:二分類樣本集 T = { ( x 1 ,

y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} ,其中 y = { + 1 , 1 } y=\{+1,-1\} ;弱學習演算法(來獲得弱分類器);
輸出:最終強分類器 G ( x ) G(x)

在這裡插入圖片描述

在這裡插入圖片描述

這裡做一些必要的說明

  1. 演算法最開始的時候,沒有別的要求的話,設定每個樣本的權重是一樣的即 1 N \frac{1}{N}
  2. 針對每個m我們是從 ( a ) (a) 計算到 ( 3 ) (3) ,如果發現此時的最終分類器還是不能進行正確分類,那麼設定 m = m + 1 m=m+1 進行下一輪
  3. ( b ) (b) 步的分類誤差率 e m = i = 1 N w m i I ( G ( x i ) y i ) e_m=\sum\limits_{i=1}^{N}w_{mi}I(G(x_i)\neq y_i) ,其中 I I 是指示函式 I ( t r u e ) = 1 , I ( f a l s e ) = 0 I(true)=1,I(false)=0 ,所以實際上分類誤差率就是被錯誤分類的樣本的權重之和。和一般所認識的分類誤差率 e m = 1 N i = 1 N I ( G ( x i ) y i ) e_m=\frac{1}{N}\sum\limits_{i=1}^{N}I(G(x_i)\neq y_i) 很類似。顯然值越小那麼該分類器 G m ( x ) G_m(x) 的分類能力更好
  4. 對於 ( c ) (c) 步的分類器係數 α m = 1 2 l o g ( 1 e m 1 ) \alpha_m=\frac{1}{2}log(\frac{1}{e_m}-1) ,當 e m < 1 / 2 e_m<1/2 的時候, e m e_m 越小(分類器 G m ( x ) G_m(x) 的分類能力更好)則係數越大,中一點在 2 2 中已經提到過。
  5. 對於 ( d ) (d) 步,該步驟是更新樣本權重的,如何更新?被錯誤分類的樣本會增大權重從而會在下一輪引起重視,被正確分類的則減少權重。如果看的不清楚,因為是二分類問題所以 G m ( x i ) = 1 G_m(x_i)=1 或者 1 -1 ,所以下一輪的權重 w m + 1 , i w_{m+1,i} 可以寫成下面的形式(寫在了最後面)。這也是上面1所說的
  6. 在第 ( 3 ) (3) 步,則是對弱分了器進行線性組合,比如第一輪得到的是 G 1 ( x ) G_1(x) ,那麼這輪 f ( x ) = α 1 G 1 ( x ) f(x)=\alpha_1G_1(x) ,第二輪得到的是 G 2 ( x ) G_2(x) ,那麼這輪會進行疊加,即 f ( x ) = α a G 1 ( x ) + α 2 G 2 ( x ) f(x)=\alpha_aG_1(x)+\alpha_2G_2(x) 。其中 f ( x ) f(x) 的正負號表示分類結果,比如有樣本 ( x 4 , 1 ) (x_4,1) ,將 x 4 x_4 作為輸出,如果有