Adaboost演算法流程記錄

2021-08-24 18:06:08 字數 1291 閱讀 9597

下面關於adaboost的內容部分參考李航老師的《統計學習方法》

輸入:訓練資料集\(t = \\),其中\(x\)為例項空間,\(y \in \\)為標籤集合。

輸出:最終的分類器\(g(x)\)

adaboost演算法流程:

1、初始化訓練資料的權值分布:

$$u_n^ = (u_1^, u_2^, ..., u_n^) = (\frac, \frac, ..., \frac),其中右上角的(1)表示第一次迭代$$

2、迭代直到收斂:

(1)、根據訓練集\(t\)和權值分布\(u_n^\)訓練出弱分類器\(g_t(x)\);

(2)、根據訓練集\(t\)、權值分布\(u_n^\)和弱分類器\(g_t(x)\)求出\(\alpha_t\)和下一次迭代時使用的權值分布\(u_n^\);

3、構建最終的分類器:

$$g(x) = sign(\sum_^n \alpha_t g_t(x))$$

符號說明:演算法中的上標或者下標\((t)\)表示第\(t\)次迭代,如果原字母沒有下標,則\(t\)使用下標形式;如果原字母已經有了下標,則\(t\)使用帶小括號的上標形式。

上面的演算法中第1步和第3步不用說明。先看第2-(1)步,這一步就是訓練弱分類器,具體的訓練方式根據採用的弱分類器決定,比如採用決策樁作為弱分類器,那這一步就和回歸樹的訓練類似。

為了對步驟2-(2)進行敘述,定義正確權重和、錯誤權重和、錯誤權重率三個概念方便後續描述:

正確權重和:所有分類正確的樣本點的權重求和,\(sum_r^ = \sum_^n u_n^ i(y_n = g_t(x_n))\)

錯誤權重和:所有分類錯誤的樣本點的權重求和,\(sum_e^ = \sum_^n u_n^ i(y_n \neq g_t(x_n))\)

權重錯誤率:錯誤權重和與總權重和的比率,\(\epsilon_t = \frac}^n u_n^}\)

再引入乙個中間變數:\(\diamond^ = \sqrt}\)

步驟2-(2)演算法詳情:輸入為資料集\(t\)、第\(t\)次迭代的權值分布\(u_n^\)、弱分類器\(g_t(x)\)。輸出為\(\alpha_t\)、第\(t+1\)次迭代的權值分布\(u_n^\)。

求得\(\alpha_t\)和\(u_n^\)的公式為:

$$\alpha_t = ln(\diamond^) = ln(\sqrt})$$

$$u_n^ = \begin u_n^\diamond^ \qquad if \quad y_n \neq g_t(x_n) \\ u_n^/\diamond^ \qquad if \quad y_n = g_t(x_n) \end$$

Adaboost流程梳理

一般地說,adaboost中每個弱分類器都是單層決策樹。基本思想如下 第一步使得所有樣本點等權重,尋找最優的判定閾值 1 theta 1 1 和分類方法 方向,也即大於該閾值為 1還是小於該閾值為 1 在該單層決策樹下得到誤差 1 epsilon 1 1 使用 1 epsilon 1 1 可以計算出...

機器學習 Adaboost演算法流程及原理推導

adaboost演算法是一種迭代演算法。其用法是將對於訓練同一訓練集的多個弱分類器集合,成為乙個強分類器。adaboost演算法實現步驟如下 輸入 其中xi x,yi 初始化d1 i 1n,i 1,2.n for t 1,2 t adaboost演算法原理 從最後的計算公式,可以理解為adaboos...

AdaBoost演算法原理

每個haar特徵對應看乙個弱分類器,但並不是任伺乙個haar特徵都能較好的描述人臉灰度分布的某一特點,如何從大量的haar特徵中挑選出最優的haar特徵並製作成分類器用於人臉檢測,這是adaboost演算法訓練過程所要解決的關鍵問題。paul viola和michael jones於2001年將ad...