1. 程式人生 > >白話機器學習演算法(二十二)Adaboost

白話機器學習演算法(二十二)Adaboost

Adaboost是一種弱分類器轉化為強分類器的演算法,其對於每個弱分類器賦予一個權重,最終將這些帶權弱分類器線性組合成一個強分類器。

問題就轉化為如何獲得權值?

基本的步驟如下

Step1:為每個樣本賦予一個權值

Step2:利用訓練資料第一個弱分類器

Step3:得到第一個弱分類器的分類誤差率

Step4:利用分類誤差率得到第一個弱分類器的權重

Step5:對樣本的權重進行更新

Step6:訓練下一個弱分類器,直到都訓練完畢

Step7:將帶權弱分類器進行線性組合得到一個強分類器

這裡有人肯定會困惑,對於樣本賦予一定的權重是什麼意思?對於分類器賦予權重尚且可以理解為一定的投票機制,對樣本為啥要賦予權重?

在這裡對樣本賦予權重實際是改變樣本的分佈情況。如果現在一個樣本在弱分類器1中被分錯了,那麼我提升該樣本的概率,所謂提升概率,其實就是加強該樣本在下一次輸入中出現的次數,那麼該樣本會被下一個弱分類器加強關注,他就有極大的可能被分到正確的一類。換句話說,分類問題被很多弱分類器分而治之。最終將許多帶權弱分類器組合,相當於投票,每個分類器有一定的權重,得到一個正確的結果

Adaboost是資料驅動,錯誤驅動的分類器,某種意義有類似於神經網路的權值更新方法。