adaboost是一種流行的提公升(提高分類準確率的組合分類方法)演算法。它是一種迭代演算法,其核心思想是針對同乙個訓練集訓練不同的分類器,即弱分類器,然後把這些弱分類器集合起來,構造乙個更強的最終分類器。演算法本身是改變資料分布實現的,它根據每次訓練集之中的每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。將修改權值的新資料送給下層分類器進行訓練,然後將每次訓練得到的分類器融合起來,作為最後的決策分類器。
1
、基本思想
adaboost是adaptiveboosting(自適應boosting)的縮寫,其執行過程如下:訓練資料中的每個樣本,並賦予乙個權重。一開始,這些權重都初始化成相等值。首先在訓練資料上訓練出乙個弱分類器並計算該分類器的錯誤率,然後在同一資料集上再次訓練弱分類器。在分類器的第二次訓練當中,將會重新調整每個樣本的權重,其中第一次分對的樣本的權重將會降低,而第一次分錯的樣本的權重將會提高,為了從所有弱分類器中得到最終的分類結果,adaboost為每個分類器都分配了乙個權重值,這些權重值是基於每個弱分類器的錯誤率進行計算的。
元組的權重反映對它們分類的困難程度——權重越高,越可能錯誤地分類。然後使用這些權重,為下一輪的分類器產生訓練樣本。其基本思想是,當建立分類器時,希望它更關注上一輪錯誤分類的元組。某些分類器對某些「困難」元組分類可能比其他分類器好。這樣,建立了乙個互補的分類器系列。
adaboost演算法會不斷地重複訓練和調整權重的過程,直到訓練錯誤率為0或者弱分類器的數目達到使用者的指定值為止。
adaboost演算法的流程如下圖:
圖1 左邊是資料集,其中直方圖的不同寬度表示每個樣例上的不同權重。在經過乙個分類器後,加權的**結果
會通過三角形中的權值進行加權。每個三角形中輸出的加權結果在圓形中求和,從而得到最終的輸出結果。
2
、偽**
給定資料集d,它包含d個類標記的元組(x1,y1),(x2,y2),…(xd,yd),其中yi是元組xi的類標號。開始,adaboost對每個訓練元組賦予相等的權重1/d。為組合分類器產生k個基分類器需要執行演算法k輪。在第i輪,從d中元組抽樣,形成大小為d的訓練集di。使用有放回抽樣——同乙個元組可能被選中多次。每個元組被選中的機會由它的權重決定。從訓練集di匯出分類器mi。然後使用di作為檢驗集計算mi的誤差。訓練元組的權重根據它們的分類情況調整。
、演算法闡述
現在,我們考察該演算法涉及的某些數學問題。
為了計算模型mi的錯誤率,求mi誤分類di中的每個元組的加權和。即:
mi的錯誤率影響訓練元組權重的更新。如果乙個元組在第i輪正確地分類,則其權重乘以error(mi)/(1-error(mi))。一旦所有正確分類元組的權重被更新,就對所有元組的權重(包括誤分類的元組)規範化,使得它們的和與以前一樣。為了規範化權重,將它乘以舊權重之和。結果正如上面介紹的一樣,誤分類元組的權重增加,而正確分類元組的權重減少。
「一旦提公升完成,如何使用分類器的組合**元組x的類標號?」不像裝袋將相同的表決賦予每個分類器,提公升根據分類器的分類情況,對每個分類的表決權賦予乙個權重。分類器的錯誤率越低,它的準確率就越高,因此它的表決權重就應當越高。分類器mi的表決權重為
對於每個類c,對每個將類c指派給x的分類器的權重求和。具有最大權重和的類是「贏家」,並返回作為元組x的類**。
第八章 AdaBoost演算法(提高分類準確率)
adaboost是一種流行的提公升 提高分類準確率的組合分類方法 演算法。它是一種迭代演算法,其核心思想是針對同乙個訓練集訓練不同的分類器,即弱分類器,然後把這些弱分類器集合起來,構造乙個更強的最終分類器。演算法本身是改變資料分布實現的,它根據每次訓練集之中的每個樣本的分類是否正確,以及上次的總體分...
第八章 指標 第八章 指標
1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...
第八章(筆記)
能在 中進行記憶體單元的定址的暫存器只有4個,分別是bx si di bp 其中bx bp 是基址,bx對應的段位址是ds,bp對應的段位址是ss si di 是變址,單獨使用時段位址是ds,組合使用段位址是跟隨組合的基址對應的段位址 中進行記憶體單元定址彙總 si di bx bp 常量 si 常...