boosting算法是常用的集成方法之一,它通過改變訓練樣本的權重,學習多個分類器,并將這些分類器進行線性組合,提高分類的性能。其代表算法為我們本文所要介紹的Adaboost。
1)集成學習思想
2)boosting算法原理
3)Adaboost算法原理
4)損失函數
集成學習思想,訓練若干個弱學習器,然后通過一定的策略將其結合起來成為一個強學習器。詳細可見第二章隨機森林的第一小節(jié)集成學習。集成學習可看作有兩個分支,在隨機森林中,我們介紹了集成學習的一個分支bagging,下面就來介紹另一個分支boosting。
我們先觀察這個boosting的原理圖.
從圖中可以看出,boosting算法的工作機制是首先從訓練集用初始權重訓練出一個弱學習器1,根據弱學習器的學習誤差率表現(xiàn)來更新訓練樣本的權重,使得之前弱學習器1學習誤差率高的訓練樣本點的權重變大,讓它們在弱學習器2中得到重視,然后基于調整權重后的訓練集來訓練弱學習器2,如此重復進行,知道弱學習器數達到事先指定的數目T,最終將這T個學習器通過結合策略變成強學習器。
那Adaboost算法具體又是怎樣的呢?
上一節(jié),我們講到了分類Adaboost的弱學習器權重系數公式和樣本權重更新公式,但沒有解釋這個公式的由來,其實它可以從Adaboost的損失函數推導出來。
Adaboost算法還有另一種解釋,即Adaboost是模型為加法模型,學習算法為前向分步學習算法,損失函數為指數函數的分類問題。
模型為加法模型好理解,我們的最終的強分類器是若干個弱分類器加權平均而得到的。前向分步學習算法也好理解,我們的算法通過一輪輪的弱學習器學習,利用前一個弱學習器的結果來更新后一個弱學習器的訓練權重,也就是說,第k-1輪的強學習器為:
4.1 Adaboost的優(yōu)點:
1)Adaboost作為分類器時,分類精度很高
2)在Adaboost的框架下,可以使用各種回歸分類模型來構建弱學習器,非常靈活。
3)作為簡單的二元分類器時,構造簡單,結果可理解。
4)不容易發(fā)生過擬合
4.2 Adaboost的缺點:
1)對異常樣本敏感,異常樣本在迭代中可能會獲得較高的權重,影響最終的強學習器的預測準確性。
2)Adaboost迭代次數也就是弱分類器數目不太好設定,可以使用交叉驗證來進行確定。
3)訓練比較耗時,每次重新選擇當前分類器最好切分點。
4.3 Adaboost算法應用
1)計算機視覺:目標檢測
2)預測森林火災
3)信用評估
4)人臉檢測
參考文獻
[1] http://blog.idea2du.com/er-sui-ji-sen-lin/
[2] https://www.cnblogs.com/pinard/p/6133937.html
[3] 李航,《統(tǒng)計學習方法》
[4] https://www.cnblogs.com/ScorpioLu/p/8295990.html
[5] https://blog.csdn.net/haidao2009/article/details/7514787
[6] https://blog.csdn.net/dark_scope/article/details/14103983
(部分文字、圖片來自網絡,如涉及侵權,請及時與我們聯(lián)系,我們會在第一時間刪除或處理侵權內容。電話:4006770986 負責人:張明)