AdaBoost 從原理到實現

2021-08-07 12:54:49 字數 1010 閱讀 9353

對於adaboost,可以說是久聞大名,據說在deep learning出來之前,svm和adaboost是效果最好的 兩個演算法,而adaboost是提公升樹(boosting tree),所謂「提公升樹」就是把「弱學習演算法」提公升(boost)為「強學習演算法」(語自《統計學習方法》),而其中最具代表性的也就是adaboost了,貌似adaboost的結構還和neural network有幾分神似,我倒沒有深究過,不知道是不是有什麼乾貨

這就是adaboost的結構,最後的分類器ym是由數個弱分類器(weak classifier)組合而成的,相當於最後m個弱分類器來投票決定分類,而且每個弱分類器的「話語權」α不一樣。

這裡闡述下演算法的具體過程:

具體說來,整個adaboost 迭代演算法就3步:

初始化訓練資料的權值分布。如果有n個樣本,則每乙個訓練樣本最開始時都被賦予相同的權重:1/n。

訓練弱分類器。具體訓練過程中,如果某個樣本點已經被準確地分類,那麼在構造下乙個訓練集中,它的權重就被降低;相反,如果某個樣本點沒有被準確地分類,那麼它的權重就得到提高。然後,權重更新過的樣本集被用於訓練下乙個分類器,整個訓練過程如此迭代地進行下去。

將各個訓練得到的弱分類器組合成強分類器。各個弱分類器的訓練過程結束後,加大分類誤差率小的弱分類器的權重,使其在最終的分類函式中起著較大的決定作用,而降低分類誤差率大的弱分類器的權重,使其在最終的分類函式中起著較小的決定作用。換言之,誤差率低的弱分類器在最終分類器中佔的權重較大,否則較小。a).訓練弱分類器ym(),使其最小化權重

誤差函式(weighted error function):

b)接下來計算該弱分類器的話語權α:

c)更新權重:

其中zm:

是規範化因子,使所有w的和為1。(這裡公式稍微有點亂)

AdaBoost 從原理到實現

對於adaboost,可以說是久聞大名,據說在deep learning出來之前,svm和adaboost是效果最好的 兩個演算法,而adaboost是提公升樹 boosting tree 所謂 提公升樹 就是把 弱學習演算法 提公升 boost 為 強學習演算法 語自 統計學習方法 而其中最具代表...

KNN從原理到實現

引文 決策樹和基於規則的分類器都是積極學習方法 eager learner 的例子,因為一旦訓練資料可用,他們就開始學習從輸入屬性到類標號的對映模型。乙個相反的策略是推遲對訓練資料的建模,直到需要分類測試樣例時再進行。採用這種策略的技術被稱為消極學習法 lazy learner 最近鄰分類器就是這樣...

單點登入(SSO),從原理到實現

cookie sso認證中心發現使用者未登入,將使用者引導至登入頁面 使用者輸入使用者名稱密碼提交登入申請 sso認證中心校驗使用者資訊,建立使用者與sso認證中心之間的會話,稱為全域性會話,同時建立授權令牌 sso認證中心帶著令牌跳轉會最初的請求位址 系統1 系統1拿到令牌,去sso認證中心校驗令...