利用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):泛化錯誤率低克懊,易編碼忱辅,可以應(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個新數(shù)據(jù)集的一種技術(shù)扮念。新數(shù)據(jù)集和原始數(shù)據(jù)集的大小相等损搬。每個數(shù)據(jù)集都是通過在原始數(shù)據(jù)集中隨機(jī)選擇一個樣本進(jìn)行替換而得到的。
在S個數(shù)據(jù)集建好之后柜与,將莫個學(xué)習(xí)算法分別作用于每個數(shù)據(jù)集就得到了S個分類器巧勤。當(dāng)我們對新數(shù)據(jù)進(jìn)行分類時,就可以應(yīng)用這個S個分類器進(jìn)行分類弄匕。與此同時颅悉,選擇分類器投票結(jié)果中最多的類別作為最后的分類結(jié)果。
boosting
是一種與bagging很類似的技術(shù)迁匠。但是在前者當(dāng)中剩瓶,不同的分類器是通過串行訓(xùn)練而獲得的,每個新分類器都根據(jù)已訓(xùn)練出的分類器的性能來進(jìn)行訓(xùn)練城丧。boosting是通過集中關(guān)注被已有分類器錯分的那些數(shù)據(jù)來獲得新的分類器延曙。
由于boosting分類的結(jié)果是基于所有分類器的加權(quán)求和結(jié)果的,因此boosting與bagging不太一樣亡哄。
bagging中的分類器權(quán)重是相等的枝缔,而boosting中的分類器權(quán)重并不相等,每個權(quán)重代表的是其對應(yīng)分類器在上一輪迭代中的成功度蚊惯。
boosting方法有多個版本魂仍,本次只關(guān)注最流行的AdaBoost
AdaBoost其運(yùn)行過程如下:訓(xùn)練數(shù)據(jù)中的每個樣本,并賦予其一個權(quán)重拣挪,這些權(quán)重構(gòu)成了向量D擦酌。一開始,這些權(quán)重都初始化成相等值菠劝。首先在訓(xùn)練數(shù)據(jù)上訓(xùn)練出一個弱分類器并計算該分類器的錯誤率赊舶,然后在同一數(shù)據(jù)集上再次訓(xùn)練弱分類器。在分類器的第二次訓(xùn)練當(dāng)中,將會重新調(diào)整每個樣本的權(quán)重笼平,其中第一次分對的樣本的權(quán)重將會降低园骆,而第一次分錯的樣本的權(quán)重將會提高。為了從所有弱分類器中得到最終的分類結(jié)果寓调,AdaBoost為每個分類器都分配了一個權(quán)重值alpha锌唾,這些alpha值是基于每個弱分類器的錯誤率進(jìn)行計算的。
左邊是數(shù)據(jù)集,其中直方圖的不同寬度表示每個樣例上的不同權(quán)重捏肢。在經(jīng)過一個分類器之后栈顷,加權(quán)的預(yù)測結(jié)果會通過三角形中的alpha值進(jìn)行加權(quán)。每個三角形中輸出的加權(quán)結(jié)果在圓形中求和余黎,從而得到最終的輸出結(jié)果
在計算出D之后惧财,AdaBoost又開始進(jìn)入下一輪迭代。AdaBoost算法會不斷地重復(fù)訓(xùn)練和調(diào)整權(quán)重的過程扭仁,直到訓(xùn)練錯誤率為0或者弱分類的數(shù)目達(dá)到用戶的指定值為止垮衷。
單層決策樹(decision stump,也稱決策樹樁)是一種簡單的決策樹乖坠。僅基于單個特征來做決策帘靡。這棵樹只有一次分裂過程,因此它實際上就是一個樹樁瓤帚。