AdaBoost算法原理
前言
1、AdaBoost(Adaptive Boosting)是boosting類算法最著名的代表。
2、Kearns 和 Valiant首先提出了“強可學習” 和 “弱可學習”的概念。指出:在概率近似正確學習的框架中,一個概念(一個類),如果存在一個多項式的學習算法能夠學習它,並且正確的概率很高,那麼就稱這個概念是強可學習的;一個概念,如果存在一個多項式的學習算法能夠學習它,學習的正確率僅比隨機猜測略好,那麼就稱這個概念是弱可學習的。後來Schapire證明一個概念強可學習的充分必要條件是這個概念是弱可學習的。
3、發現弱學習算法通常要比發現強學習算法容易的多。這樣一來,如果已經發現了“弱可學習算法”,如何將其提升爲“強學習算法”。具體的實施辦法便成爲開發提升方法時所要解決的問題。關於提升方法的研究有很多,有很多算法被提出。最具代表性的是AdaBoost算法。
4、大多數的提升方法都是改變訓練數據的概率分佈(訓練數據的權值分佈),針對不同的訓練數據分佈調用弱學習算法學習一系列弱分類器。這樣對提升方法來說,有兩個問題需要回答:1、每一輪如何改變數據的權值或概率分佈?2、如何將弱分類器組合成一個強分類器?關於第一個問題,Adaboost的做法是,提高那些被前一輪弱分類器錯誤分類樣本的權值,而且降低那些被正確分類樣本的權值,這樣,那些沒有得到正確分類的數據由於其權重加大而受到後一輪的弱分類器的更大關注。關於第二個問題,Adaboost採取加權多數表決的方法。具體地,加大分類誤差率小的弱分類器的權值,使其在表決中起較大的作用;減小分類誤差率大的弱分類器的權值,使其在表決中起較小的作用。
算法的詳細實施過程如下:
第一步:初始化訓練數據的權值分佈。
第二步:對 m = 1,2,…,M。
(a)、使用具有權值分佈的訓練數據集學習,得到基本分類器
(b)、計算在訓練集上的分類誤差率
(c)、計算的係數(這裏的對數是自然對數)
(d)、更新訓練數據集的權值分佈(是規範化因子,它使成爲一個概率分佈)
第三步:構建基分類器的線性組合,得到最終的分類器。
圖解算法:待添加
詳細例子:待添加
參考文章:
李航《統計學習方法》