十大機器學習算法之AdaBoost

一、算法簡介

AdaBoost是一種迭代算法,核心思想是針對同一個訓練集去訓練多個不同的分類器(弱分類器),訓練完畢之後,把所有這些弱分類器進行融合得到最終的分類器(強分類器)。
算法本身是通過改變數據分佈來實現的,首先根據每次訓練結束之後每個樣本是否分類正確然後賦予不同的權重,然後把新的數據集傳遞到下一層訓練下一個分類器,最終把所有的分類器融合起來,作爲最後的分類器進行使用,進行決策。使用AdaBoost分類器可以排除掉一些不必要的訓練數據特徵,(在分類中是把分類錯誤的數據集賦予較小的權重實現)把分類的關鍵放在關鍵的訓練數據上面。

二、算法流程

①首先通過對N個樣本的學習得到第一個分類器。

②將①中分類錯誤的樣本和其他的新數據一起構成一個新的N個訓練樣本,進行學習,得到第二個分類器

③將①和②中分錯的樣本加上其他的新樣本重新構成一個新的數據量爲N的訓練樣本,進行學習,得到第三個分類器

。。。

④最終,把所有的弱分類器進行融合,得到我們最終需要的分類器。

三、算法中存在的問題

①如何調整訓練集,使得在訓練集上訓練弱分類器得以進行?

②如何將訓練得到的各個弱分類器聯合起來形成強分類器?

解決辦法:
①:使用加權後選取的訓練數據集代替隨機選擇的訓練樣本,這樣將訓練的焦點集中在比較難分的訓練數據樣本之上。
②:將弱分類器聯合起來使用加權的投票機制代替平均投票機制,讓分類效果好的弱分類器得到比較大的權重,而差的弱分類器的權重相應減小一些。

這裏寫圖片描述
AdaBoost結構,最後的分類器Ym是由多個弱分類器組合而成的,相當於最後m個弱分類器來投票決定分類,而每個弱分類器的“話語權”——權重α不同。

具體過程:

1、初始化所有訓練樣例的權重爲1/N,其中N爲樣例數。
2、for m=1,…,M
a)訓練弱分類器y1,使其最小化權重誤差函數:這裏寫圖片描述
b)計算弱分類器的權重係數α:這裏寫圖片描述
c)更新權重這裏寫圖片描述 i=1,…,N
Zm是規範化因子,使所有w和爲1;這裏寫圖片描述
3、得到最後的分類器
這裏寫圖片描述
原理:可以看到整個過程和途中是一樣的,前一個分類器改變權重w,同時組成最後的分類器,如果一個訓練樣例在前一個分類器中被誤分,那麼它的權重會增加,相應地,被正確分類的樣例的權重會減小,使下一個分類器會更在意被分類錯誤的樣例。

一個例子

博主好懶,字不想打了,直接附上自己的筆記了~~~(字是真的好醜~~!)
這裏寫圖片描述

這裏寫圖片描述

本算法到此完結~~~沒有下文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章