1、集成學習及Boosting算法
集成學習屬于機器學習,它是一種“訓練思路”,并不是某種具體的方法或者算法。集成學習的核心思想是把已有的算法進行結合,從而得到更好的效果。集成學習會選擇一些簡單的基礎模型進行組裝,組裝這些基礎模型的思路主要有兩種方法:Bagging和Boosting。本文討論的Adaboost算法就是Boosting算法的其中一種。Boosting和Bagging最本質的差別在于對基礎模型不是一致對待的,而是經過不停的考驗和篩選挑選出的“精英”,然后給精英更多的投票權,表現不好的基礎模型則給較少的投票權,然后綜合所有人的投票得到最終結果。大部分情況下,經過Boosting得到的結果偏差更小。
Boosting算法圖解
2、什么是Adaboost算法?
Boosting是一種集合技術,試圖從許多弱分類器中創建一個強分類器。這是通過從訓練數據構建模型,然后創建第二個模型來嘗試從第一個模型中糾正錯誤來完成的。添加模型直到完美預測訓練集或添加最大數量的模型。
Adaboost是第一個為二進制分類開發的真正成功的增強算法,這是理解助力的最佳起點,現代助推方法建立在Adaboost基礎之上,最著名的是隨機梯度增強機。
Adaboost用于短決策樹。在創建第一個樹之后,每個訓練實例上的樹的性能用于加權創建的下一個樹應該關注每個訓練實例的注意力。難以預測的訓練數據被賦予更多權值,而易于預測的實例被賦予更少的權重。模型一個接一個地順序創建,每個模型更新訓練實例上的權重,這些權重影響序列中下一個樹所執行的學習。構建完所有樹之后,將對新數據進行預測,并根據訓練數據的準確性對每棵樹的性能進行加權。
Adaboost算法圖解
3、Adaboost的基本原理
Adaboost算法基本原理就是將多個弱分類器(弱分類器一般選用單層決策樹)進行合理的結合,使其成為一個強分類器。Adaboost采用迭代的思想,每次迭代只訓練一個弱分類器,訓練好的弱分類器將參與下一次迭代的使用。也就是說,在第N次迭代中,一共就有N個弱分類器,其中N-1個是以前訓練好的,其各種參數都不再改變,本次訓練第N個分類器。其中弱分類器的關系是第N個弱分類器更可能分對前N-1個弱分類器沒分對的數據,最終分類輸出要看這N個分類器的綜合效果。
Adaboost算法基本原理
4、Adaboost的優缺點
優點:
- 很好地利用了弱分類器進行級聯;
- 可以將不同的分類算法作為弱分類器;
- Adaboost具有很高的精度;
- Adaboost充分考慮了每個分類器的權重。
缺點:
- Adaboost弱分類器數目不太好設定;
- 數據不平衡導致分類精度下降;
- 訓練比較耗時。
(本文部分內容來自https://easyai.tech/ai-definition/adaboost/)