利用AdaBoost(adaptive boosting自適應(yīng)提升)元算法提高分類性能
本節(jié)內(nèi)容:組合相似的分類器來提高分類性能、應(yīng)用AdaBoost算法、處理非均衡分類問題
元算法是對其他算法進(jìn)行組合的一種方式。莫些人認(rèn)為AdaBoost是最好的監(jiān)督學(xué)習(xí)的方法,所以該方法是機(jī)器學(xué)習(xí)工具箱中最強(qiáng)力的工具之一。
將不同的分類器組合起來,這種組合結(jié)果則被稱為集成方法(ensemble method)或者元算法(meta-algorithm)。
優(yōu)點(diǎn):泛化錯(cuò)誤率低,易編碼,可以應(yīng)用在大部分分類器上,無參數(shù)調(diào)整。
缺點(diǎn):對離群點(diǎn)敏感
適用數(shù)據(jù)類型:數(shù)值型和標(biāo)稱型數(shù)據(jù)
bagging:基于數(shù)據(jù)隨機(jī)重抽樣的分類器構(gòu)建方法
自舉匯聚法(bootstrap aggregating),也成bagging方法,是在原始數(shù)據(jù)集選擇S次后得到S個(gè)新數(shù)據(jù)集的一種技術(shù)。新數(shù)據(jù)集和原始數(shù)據(jù)集的大小相等。每個(gè)數(shù)據(jù)集都是通過在原始數(shù)據(jù)集中隨機(jī)選擇一個(gè)樣本進(jìn)行替換而得到的。
在S個(gè)數(shù)據(jù)集建好之后,將莫個(gè)學(xué)習(xí)算法分別作用于每個(gè)數(shù)據(jù)集就得到了S個(gè)分類器。當(dāng)我們對新數(shù)據(jù)進(jìn)行分類時(shí),就可以應(yīng)用這個(gè)S個(gè)分類器進(jìn)行分類。與此同時(shí),選擇分類器投票結(jié)果中最多的類別作為最后的分類結(jié)果。
boosting
是一種與bagging很類似的技術(shù)。但是在前者當(dāng)中,不同的分類器是通過串行訓(xùn)練而獲得的,每個(gè)新分類器都根據(jù)已訓(xùn)練出的分類器的性能來進(jìn)行訓(xùn)練。boosting是通過集中關(guān)注被已有分類器錯(cuò)分的那些數(shù)據(jù)來獲得新的分類器。
由于boosting分類的結(jié)果是基于所有分類器的加權(quán)求和結(jié)果的,因此boosting與bagging不太一樣。
bagging中的分類器權(quán)重是相等的,而boosting中的分類器權(quán)重并不相等,每個(gè)權(quán)重代表的是其對應(yīng)分類器在上一輪迭代中的成功度。
boosting方法有多個(gè)版本,本次只關(guān)注最流行的AdaBoost
AdaBoost其運(yùn)行過程如下:訓(xùn)練數(shù)據(jù)中的每個(gè)樣本,并賦予其一個(gè)權(quán)重,這些權(quán)重構(gòu)成了向量D。一開始,這些權(quán)重都初始化成相等值。首先在訓(xùn)練數(shù)據(jù)上訓(xùn)練出一個(gè)弱分類器并計(jì)算該分類器的錯(cuò)誤率,然后在同一數(shù)據(jù)集上再次訓(xùn)練弱分類器。在分類器的第二次訓(xùn)練當(dāng)中,將會重新調(diào)整每個(gè)樣本的權(quán)重,其中第一次分對的樣本的權(quán)重將會降低,而第一次分錯(cuò)的樣本的權(quán)重將會提高。為了從所有弱分類器中得到最終的分類結(jié)果,AdaBoost為每個(gè)分類器都分配了一個(gè)權(quán)重值alpha,這些alpha值是基于每個(gè)弱分類器的錯(cuò)誤率進(jìn)行計(jì)算的。
左邊是數(shù)據(jù)集,其中直方圖的不同寬度表示每個(gè)樣例上的不同權(quán)重。在經(jīng)過一個(gè)分類器之后,加權(quán)的預(yù)測結(jié)果會通過三角形中的alpha值進(jìn)行加權(quán)。每個(gè)三角形中輸出的加權(quán)結(jié)果在圓形中求和,從而得到最終的輸出結(jié)果
在計(jì)算出D之后,AdaBoost又開始進(jìn)入下一輪迭代。AdaBoost算法會不斷地重復(fù)訓(xùn)練和調(diào)整權(quán)重的過程,直到訓(xùn)練錯(cuò)誤率為0或者弱分類的數(shù)目達(dá)到用戶的指定值為止。
單層決策樹(decision stump,也稱決策樹樁)是一種簡單的決策樹。僅基于單個(gè)特征來做決策。這棵樹只有一次分裂過程,因此它實(shí)際上就是一個(gè)樹樁。