整合學習——Boosting之Ada-boost

整合學習——Boosting之Ada-boost
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

1.1.1. Boosting

boosting是一個迭代的過程,用於自適應地改變訓練樣本的分佈,使得基分類器聚焦在那些很難分的樣本上。

boosting會給每個訓練樣本賦予一個權值,而且可以再每輪提升過程結束時自動地調整權值。開始時,所有的樣本都賦予相同的權值1/N,從而使得它們被選作訓練的可能性都一樣。根據訓練樣本的抽樣分佈來抽取樣本,得到新的樣本集。然後,由該訓練集歸納一個分類器,並用它對原資料集中的所有樣本進行分類。每輪提升結束時,更新訓練集樣本的權值。增加被錯誤分類的樣本的權值,減小被正確分類的樣本的權值,這使得分類器在隨後的迭代中關注那些很難分類的樣本。

1.1.1.1. 迭代演算法(Ada-boost)

具體來說,演算法會為每個訓練樣本賦予一個權值。每次用訓練完的新分類器標註各個樣本,若某個樣本點已被分類正確,則將其權值降低;若樣本點未被正確分類,則提高其權值。權值越高的樣本在下一次訓練中所佔的比重越大,也就是說越難區分的樣本在訓練過程中會變得越來越重要。 整個迭代過程直到錯誤率足夠小或達到一定次數為止。

演算法思路:

輸入: 分類資料;弱演算法組

輸出: 分類結果 

1. 給訓練資料集中的每一個樣本賦予權重,權重初始化相等值,這些權重形成向量 D,一般初始化所有訓練樣例的權重為 1 / N,其中 N是樣例數。 

2. 在訓練集上訓練出弱分類器並計算該分類器的錯誤率。 

3. 同一資料集上再次訓練分類器,調整樣本的權重,將第一次分對的樣本權重降低,第一次分錯的樣本權重提高。 

4. 最後給每一個分類器分配一個權重值

5. 計算出後,可以對權重向量D進行更新,以使得正確分類的樣本權重降低而錯分樣本的權重升高。D的計算方法如下:

6. 如果某個樣本被正確分類,那麼該樣本的權重更改為:

7. 而如果某個樣本被錯分,那麼該樣本的權重更改為:

8. 計算出 D之後, Ada-boost又開始進入下一輪迭代。 Ada-boost演算法會不斷地重複訓練和調整權重的過程,直到訓練錯誤率為 0或者弱分類器的數目達到使用者指定的值為止。

相關文章

程式語言 最新文章