使一個新的分類器去修正之前分類結果的方法就是對之前分類結果不對的訓練實例多加關注。這導致新的預測因子越來越多地聚焦於這種情況。這是 Adaboost 使用的技術。
讓我們詳細看一下 Adaboost 算法。每一個實例的權重 wi 初始都被設爲1/m第一個分類器被訓練,然後他的權重誤差率r1在訓練集上算出,詳見公式 7-1。
公式7-1:第j個分類器的權重誤差率
其中 是第j個分類器對於第i實例的預測。
分類器的權重 隨後用公式 7-2 計算出來。其中 η 是超參數學習率(默認爲 1)。分類器準確率越高,它的權重就越高。如果它只是瞎猜,那麼它的權重會趨近於 0。然而,如果它總是出錯(比瞎猜的機率都低),它的權重會使負數。
公式 7-2:分類器權重
接下來實例的權重會按照公式 7-3 更新:誤分類的實例權重會被提升。
公式7-3 權重更新規則
對於i=1, 2, …, m
隨後所有實例的權重都被歸一化(例如被 整除)
PS: 提高分類器的權重的意思是,提高某個特徵相應的θ值,這個相應的θ參數值越高,就代表這個特徵的值越要越小(因爲我們要最小化代價函數),意味着這個特徵越不被重視。
PS: 這裏做歸一化使得權重更新後的新權重跟沒被更新到的舊權重保持同一種衡量標準。
最後,一個新的分類器通過更新過的權重訓練,整個過程被重複(新的分類器權重被計算,實例的權重被更新,隨後另一個分類器被訓練,以此類推)。當規定的分類器數量達到或者最好的分類器被找到後算法就會停止。
爲了進行預測,Adaboost 通過分類器權重 簡單的計算了所有的分類器和權重。預測類別會是權重投票中主要的類別。(詳見公式 7-4)
公式7-4: Adaboost 分類器
其中N是分類器的數量。