AdaBoost 從原理到實現

2021-07-02 16:53:02 字數 1438 閱讀 6269

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

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

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

a).訓練弱分類器ym(),使其最小化權重

誤差函式(weighted error function):

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

c)更新權重:

其中zm:

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

可以看到整個過程就是和最上面那張圖一樣,

前乙個分類器改變權重w,同時組成最後的分類器

如果乙個訓練樣例 在前乙個分類其中被誤分,那麼它的權重會被加重,相應地,被正確分類的樣例的權重會降低

使得下乙個分類器 會更在意被誤分的樣例,那麼其中那些α和w的更新是怎麼來的呢?

下面我們從前項分步演算法模型的角度來看看adaboost:

直接將前項分步加法模型具體到adaboost上:

其中 fm是前m個分類器的結合

此時我們要最小化e,同時要考慮α和yl,

但現在我們假設前m-1個α和y都已經fixed了:那麼

其中接下來:

其中tm表示正分類的集合,mm表示誤分類的集合,這一步其實就是把上面那個式子拆開,沒什麼複雜的東西

然後就是找ym了,就是最小化下式的過程,其實就是我們訓練弱分類器

有了ym,α也就可以找了,然後繼續就可以找到更新w的公式了(注意這裡得到的w公式是沒有加規範化因子z的公式,為了計算方便我們加了個z進去)

AdaBoost 從原理到實現

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

KNN從原理到實現

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

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

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