朱 亮,徐 華,崔 鑫
(江南大學(xué)人工智能與計算機(jī)學(xué)院,江蘇無錫 214122)
集成學(xué)習(xí)是機(jī)器學(xué)習(xí)研究領(lǐng)域的重要分支,它并非力求得到單一最優(yōu)分類器,而是按照一定策略集成一組個體分類器。就像小組會中的投票表決一樣,需要考慮每個人的意見,以提高決斷的正確性。而Boosting[1]就是集成學(xué)習(xí)中的代表算法,它可將簡單的、粗糙的、略比隨機(jī)猜測好點(diǎn)的分類器,通過一定規(guī)則構(gòu)造出一個復(fù)雜且精度高的強(qiáng)分類器[2],隨著Freund等[3-4]對Boosting的研究改進(jìn),它成為最流行的分類算法之一[5-6],但是很難運(yùn)用于實(shí)際中。自從1999年Schapire等[7]提出AdaBoost后,才真正將集成學(xué)習(xí)運(yùn)用于實(shí)際問題。很多學(xué)者從統(tǒng)計學(xué)和間隔理論的方向,對AdaBoost的成功進(jìn)行了解釋[8-9]。由于AdaBoost的優(yōu)秀表現(xiàn),它被廣泛應(yīng)用于機(jī)體運(yùn)動估計[10]、軸承的故障診斷[11]、交通風(fēng)險預(yù)測[12]、醫(yī)學(xué)診斷[13]、電力系統(tǒng)[14]、聲吶圖像[15]等現(xiàn)實(shí)問題中。
集成學(xué)習(xí)面臨的問題主要在于兩個方面:一是基分類器的選??;二是基分類器的組合。集成的泛化誤差[16]由基分類器的平均泛化誤差和平均多樣性決定,文獻(xiàn)[17]提供了更一般的整體泛化誤差的表現(xiàn)形式,以及方差、協(xié)方差、偏差、噪聲方差對泛化誤差的影響?,F(xiàn)在存在一個被廣泛接受的觀點(diǎn)是選出的基分類器既要精確也要多樣,但關(guān)于多樣性度量對于集成學(xué)習(xí)的影響沒有學(xué)者給出嚴(yán)格的證明[18],也就是說,多樣性有助于集成算法的設(shè)計。如文獻(xiàn)[19]利用多樣性提出了基于聯(lián)結(jié)樹的多元信息多樣性近似估計方法,解決了高階信息及高階分布難以估計的問題。文獻(xiàn)[20]研究了集成學(xué)習(xí)中的泛化誤差和受試者工作特征曲線下的面積(Area Under Curve,AUC)分解定理,在此基礎(chǔ)上得出多樣性與間隔關(guān)聯(lián)的結(jié)論,進(jìn)一步研究了基分類器的權(quán)重更新策略,并提出更有效的算法。2018年,王玲娣等[21]研究發(fā)現(xiàn)雙誤度量(Double Fault,DF)與傳統(tǒng)AdaBoost相關(guān)性最高,并基于雙誤度量提出了WLDF_Ada算法,改進(jìn)后的算法取得了更好的效果。文獻(xiàn)[22]于2018年提出具有健壯的閾值機(jī)制和針對回歸問題的結(jié)構(gòu)優(yōu)化,基學(xué)習(xí)器在問題數(shù)據(jù)集上的錯誤統(tǒng)計信息可用于自動選擇最佳臨界閾值,保證了基學(xué)習(xí)器的多樣性,并結(jié)合單層神經(jīng)網(wǎng)絡(luò)進(jìn)一步調(diào)整模型結(jié)構(gòu)和增強(qiáng)適應(yīng)能力。文獻(xiàn)[23]通過將參數(shù)引入到傳統(tǒng)AdaBoost的權(quán)重調(diào)整中,抑制間隔從正到負(fù)的移動,防止已分對的樣本再次被錯分,提高了算法的收斂速度和分類精度。文獻(xiàn)[24]表明,傳統(tǒng)AdaBoost算法在訓(xùn)練中樣本權(quán)重容易發(fā)生退化,于是調(diào)整正負(fù)誤差之間的偏重關(guān)系控制訓(xùn)練樣本權(quán)重變化,表明樣本權(quán)重分布影響算法性能。高敬陽等[25]在2014年提出基于樣本抽樣和權(quán)重調(diào)整的改進(jìn)SWA-Adaboost算法,通過對樣本的均勻抽樣和減緩錯分樣本的權(quán)值增長速度,能有效提高算法的分類效果。2018年,吳戀等[26]提出基于AdaBoost的Linux病毒檢測算法(簡記為AD_Ada(Adaptive to Detection AdaBoost)),采用了更為有效的基分類器參數(shù)求解方法,基分類器的加權(quán)參數(shù)與錯誤率和對正樣本的識別率均有關(guān),有效地降低了在相同正樣本錯誤率的條件下負(fù)樣本的錯誤率,提高了算法的識別精度[27]。在文獻(xiàn)[28]中研究了基分類器對樣本有效鄰域分類的動態(tài)加權(quán)AdaBoost算法,根據(jù)基分類器針對有效領(lǐng)域的分類結(jié)果以及考慮數(shù)據(jù)分布狀態(tài),從而能更好地篩選分類器。文獻(xiàn)[29]在2017年提出了參數(shù)化的AdaBoost算法(簡記為Pa_Ada),改進(jìn)樣本權(quán)值的調(diào)整策略,進(jìn)而優(yōu)化了損失函數(shù),從而加快收斂。邱仁博等[30]于2016年提出一種改進(jìn)的帶參數(shù)AdaBoost(IPAB)算法,考慮更小顆粒的樣本權(quán)值更新,同樣起到優(yōu)化損失函數(shù)的作用。
以上研究表明基分類器在系數(shù)和多樣性上的改進(jìn),對于提升傳統(tǒng)AdaBoost算法性能具有積極作用。因此,本文對基分類器系數(shù)的計算公式進(jìn)行了優(yōu)化,引入雙誤度量改變基分類器的選取策略,將這兩方面的優(yōu)點(diǎn)結(jié)合后,本文提出一種改進(jìn)的AdaBoost算法,即WD AdaBoost(AdaBoost based on Weight and Double-fault measure)算法,與傳統(tǒng)AdaBoost算法相比,它能更高效地集成基分類器,并且分類器間有更高的多樣性。
現(xiàn)在普遍的觀點(diǎn)是基分類器之間的多樣性越強(qiáng),集成后模型的泛化能力越強(qiáng)。多樣性度量與集成學(xué)習(xí)之間的研究主要集中在以下三個方面:1)多樣性度量方法與集成學(xué)習(xí)的結(jié)合;2)多樣性對集成學(xué)習(xí)的影響及相關(guān)性;3)如何利用多樣性度量來改善集成系統(tǒng),提升集成算法的分類性能。成對多樣度量是定義在兩個分類器上的,假設(shè)分類器的集合R={r1,r2,…,rn},ri和rj(i≠j)為兩個不同的分類器,它們對同一組樣本的關(guān)系矩陣如表1所示,其中樣本總數(shù)為m,在表1中,n11代表被ri和rj共同分對的樣本數(shù)目,n00代表被ri和rj共同分錯的樣本數(shù)目,n10代表被ri正確分類、rj錯誤分類的樣本數(shù)目,n01代表被ri錯誤分類、rj正確分類的樣本數(shù)目,并且它們滿足式(1):
表1 分類器預(yù)測結(jié)果關(guān)系矩陣Tab.1 Relation matrix of classifier prediction results
當(dāng)前對于兩個不同學(xué)習(xí)器間預(yù)測結(jié)果的多樣性度量主要有四種,分別為Q統(tǒng)計、相關(guān)系數(shù)ρ、不一致度量(Disagreement Measure,DM)和雙誤度量(Double Fault,DF)。接下來分別介紹這四種多樣性度量。
1)Q統(tǒng)計。
Q統(tǒng)計來源于統(tǒng)計學(xué)領(lǐng)域,計算方式如下:
由式(2)可知,Q統(tǒng)計的取值范圍是[-1,+1]。Qi,j=1表示兩個學(xué)習(xí)器差異性最小,Qi,j=-1表示兩個學(xué)習(xí)器差異性最大。
2)相關(guān)系數(shù)ρ。
ρ與Q統(tǒng)計具有相同的符號,代表的意義也相似,即值越小則學(xué)習(xí)器之間的差異性越大。
3)不一致度量(DM)。
不一致度量更關(guān)注兩個分類器之間的差異,不同分類器所占比例越大,則DM的值越大,代表分類器多樣性越大。
4)雙誤度量(DF)。
DF關(guān)注的是兩個分類器在相同樣本上出錯的情況,取值范圍[0,1],最差的情況是兩個分類器的錯誤率都是100%,此時DF的值為1,分類器的正確性與多樣性同時降到最低。計算公式如下:
評價一組分類器R={r1,r2,…,rn}的多樣性,需要計算每對分類器之間多樣性的平均值,見式(6)。其中——Div表示一組分類器的整體多樣性,Div表示兩個分類器之間的多樣性。
在AdaBoost算法的研究中,如何最佳組合基分類器,一直是研究的熱點(diǎn),典型的組合系數(shù)有簡單多數(shù)投票法、簡單加權(quán)投票法、傳統(tǒng)AdaBoost經(jīng)典組合方法等,以上組合方法有一個共同的不足之處,即基分類器系數(shù)僅由錯誤率給出,然而體現(xiàn)基分類器的性能優(yōu)劣的方面很多,僅用錯誤率的計算作為組合系數(shù)不夠全面,基分類器系數(shù)的設(shè)計應(yīng)考慮到多種因素。
其次,傳統(tǒng)AdaBoost算法選取基分類器是以基分類器的最小錯誤率為標(biāo)準(zhǔn),若樣本中存在大量的噪聲或錯誤樣本,算法很容易過適應(yīng),由于歸一化的作用,已經(jīng)正確分類的樣本在過適應(yīng)的情況下,權(quán)重變得較小,下一次可能被錯分,并且它沒有考慮到兩個分類器的差別很小或是無差別時的情形,這會導(dǎo)致算法退化,這在一定程度上解釋了直接最小化誤差上界來改進(jìn)傳統(tǒng)AdaBoost算法效果不大。
在傳統(tǒng)AdaBoost算法中,基分類器系數(shù)如式(7)所示:
本文對樣本權(quán)重分布狀態(tài)的定義如式(8)所示:
而對基分類器系數(shù)重新定義為式(9),k為大于零的常數(shù)。
其中:t∈[1,T](T表示基分類器的個數(shù));αt為第t次迭代基分類器的系數(shù);εt為第t次迭代基分類器的分類錯誤率;ct表示第t次迭代時正確分類樣本權(quán)重的累加和,它能夠反映樣本權(quán)重分布狀態(tài)。
基分類器系數(shù)可以在分類器集成時,決定其作用的大小。樣本的權(quán)重分布狀態(tài),體現(xiàn)了基分類器的分類效果,在基分類器系數(shù)計算時,應(yīng)加入對樣本權(quán)重分布狀態(tài)的考慮。由于算法對分類錯誤的樣本賦予更大權(quán)重,隨著迭代的不斷進(jìn)行,分類錯誤的樣本越來越少,但它的權(quán)重在不斷變大,在歸一化的作用下,所有樣本的權(quán)重之和為1,可能導(dǎo)致一部分正確分類的樣本權(quán)重過小。因此,ct的大小,反映了樣本分布狀態(tài)的好壞程度。若ct較大,說明樣本被分正確分類的數(shù)量較多,可能僅剩下少量難分或噪聲樣本,換言之,基分類器的性能較好,需要提高它在集成時的權(quán)重;若ct較小,表示錯誤分類的樣本數(shù)量較多或難分樣本的權(quán)重過大,即基分類器的性能較差,在集成時應(yīng)減小它的權(quán)重。
文獻(xiàn)[20]的研究表明:雙誤度量與測試誤差的皮爾遜相關(guān)系數(shù)值最大,表明雙誤度量與測試誤差之間的相關(guān)性最高。接下來將分析雙誤度量運(yùn)用在本文算法中的可行性,并且介紹基于雙誤度量的基分類器選擇策略。
傳統(tǒng)AdaBoost算法使用單層決策樹訓(xùn)練基分類器,在訓(xùn)練的過程中不斷減小誤差的上界,進(jìn)而獲得精度非常好的強(qiáng)分類器。由于基分類器的選擇以最小錯誤率為標(biāo)準(zhǔn),會使算法容易過適應(yīng),不能保證有良好的泛化性能,文獻(xiàn)[3]中推導(dǎo)出的誤差上界公式如下:
式(10)表明,理論上通過多次迭代能把錯誤率降到接近于0,但在實(shí)際操作中算法很容易過適應(yīng),因為僅以錯誤率選擇基分類器,會使分類器同質(zhì)化,將同質(zhì)化的基分類器進(jìn)行組合不會提高算法的精度。
為了增強(qiáng)算法的泛化能力,基分類器既需要差異化,也需要保證其分類性能。在式(5)中,當(dāng)DF變小時,表示n00減少,等價于n01+n10+n11增加,若n01+n10增加,說明基分類器之間的多樣性增大。若n11增加,說明強(qiáng)分類器的精度提升。雙誤度量既能增加分類器的多樣性,又能保證分類器的性能,根據(jù)上述分析選擇雙誤度量可行,基于DF的基分類器選擇策略如下:
其中:DFt-1,t表示候選基分類器與上一輪迭代中已被選中基分類器之間的DF值;w1為已經(jīng)加入集成的前t個基分類器之間的平均DF值;w2表示選擇基分類器時,錯誤率在選擇策略中的所占比重,且w1+w2=1。根據(jù)式(6)可得:
根據(jù)式(12)和式(13)可知,若是迭代中的整體平均DF值有增大的趨勢,就會增加DFt-1,t在選擇標(biāo)準(zhǔn)中的比重,控制對共同錯分樣本的關(guān)注,增加基分類器的多樣性,提高泛化性能。
基分類器一般選用簡單分類器,大量的實(shí)驗研究表明,集成算法使用單層決策樹作為基分類器,可使算法性能表現(xiàn)較好。所以,本文算法使用單層決策樹訓(xùn)練基分類器。WD AdaBoost算法流程如下。
步驟1 給定訓(xùn)練集:
S={(x1,y1),(x2,y2),…,(xi,yi),…,(xm,ym)}其中,xi是實(shí)例樣本,有xi∈X;yi是類別標(biāo)志,且yi∈Y={-1,+1},m表示訓(xùn)練樣本個數(shù)。
步驟2 初始化:
Dt(i)=1/m,EDFmin=+∞,ht(xi)=null
步驟3 循環(huán)t=1,2,…,T:
1)根據(jù)式(12)和式(13)計算出w1和w2
2)循環(huán)樣本的每一特征
計算EDF=w1DFt-1,t+w2εt(h)
如果EDF EDFmin=EDF 3)針對選定的ht(xi),計算加權(quán)錯誤率 4)計算正確分類的樣本權(quán)值和 5)求解基分類器ht(xi)的加權(quán)參數(shù) 6)樣本權(quán)值更新為 其中,Zt是歸一化因子,即: 步驟4 得到強(qiáng)分類器: 顯然,這兩個部分的優(yōu)化沒有改變傳統(tǒng)AdaBoost算法的結(jié)構(gòu),WD AdaBoost算法仍然按照貪心策略迭代,保證了算法的可收斂性。 WD AdaBoost算法使用的基分類器系數(shù),可更好地用于基分類器的集成,將雙誤度量引入到基分類器的選擇策略中,能大幅削減噪聲樣本的影響。下文將分析樣本權(quán)重的更新,以及k的求解。 本小節(jié)將分析基分類器的系數(shù)與多樣性結(jié)合后,在樣本權(quán)重更新策略上的優(yōu)化作用。從式(17)中可以看出分子有αt,分母Zt中也含有αt,無法對樣本權(quán)重的更新進(jìn)行定量分析,需要將樣本權(quán)重與錯誤率之間建立等式。首先,對式(18)進(jìn)行展開,得到Zt與εt之間的關(guān)系式。式(18)等價于式(19): 由式(14)可得正確分類樣本權(quán)重和與錯誤率之間的計算,如式(21)所示: 將式(14)和式(21)代入式(20)中,消去樣本的權(quán)重和,得到Zt只與εt有關(guān)的等式(22),如下所示: 1)當(dāng)ht(xi)=yi時: 2)當(dāng)ht(xi)≠yi時: 接著,還要與傳統(tǒng)AdaBoost算法的樣本權(quán)重的更新過程作對比,以下簡單推導(dǎo)傳統(tǒng)AdaBoost算法樣本權(quán)重的更新關(guān)系式。 同WD AdaBoost的推導(dǎo)過程一樣,可得傳統(tǒng)AdaBoost算法樣本權(quán)重的更新公式如下: 1)當(dāng)ht(xi)=yi時: 2)當(dāng)ht(xi)≠yi時: 接下來對式(23)與式(25)、式(24)與式(26)進(jìn)行討論: 相比于傳統(tǒng)AdaBoost算法,通過1)可以看出WD AdaBoost算法可使正確分類的樣本權(quán)重更小,由2)可知WD AdaBoost使錯誤分類樣本更新后的權(quán)重值更大,從3)可得樣本權(quán)值更新后,正確分類的權(quán)值小于錯誤分類的權(quán)值。綜合以上三條結(jié)論可知:改進(jìn)的αt會使基分類器更加關(guān)注難分的樣本,所以,算法分類精度也更高,同時對噪聲更為敏感;但基分類器的選擇策略加入了雙誤度量,分散了對難分樣本的關(guān)注程度,增加了基分類器之間的多樣性,兩者相互作用降低了噪聲的干擾,增加了分類器的泛化能力,提高了算法的精度。為了使二者產(chǎn)生最好的融合效果,需要對k進(jìn)行討論。 WD AdaBoost并沒有改變傳統(tǒng)AdaBoost算法的結(jié)構(gòu),但k的選取決定了改進(jìn)后的算法能否滿足傳統(tǒng)AdaBoost算法的誤差收斂上界,所以,k在選取時仍要保證每一次迭代都要滿足Zt<1。k取值范圍的推導(dǎo)過程如下: 即: k要滿足在所有基分類器上面不等式成立,由上式可解出當(dāng)k<1/120時,對應(yīng)的錯誤率εt<0.494,則每一輪基分類器的誤差上界都可以滿足Zt<1。εt<0.494可以保證WD AdaBoost算法的可收斂性,但由公式解不出k的最佳取值。因此,k的取值合理即可,但k太小,由式(9)可知算法會退化到傳統(tǒng)AdaBoost基分類器系數(shù)計算公式上。所以,k的取值是在一個區(qū)間上。 綜上所述,基分類器系數(shù)整合了錯誤率和樣本權(quán)重分布狀態(tài),二者共同作用于基分類器,比單一地依靠錯誤率評價分類器更加準(zhǔn)確,基分類器系數(shù)結(jié)合雙誤度量優(yōu)化了樣本權(quán)重的更新過程,使之在關(guān)注難分樣本同時又增加了分類器的多樣性。WD AdaBoost算法也可以看作通過避免算法過擬合,優(yōu)化基分類器的集成,使得每次迭代產(chǎn)生的基分類器能保持最小錯誤率上界下降,從而達(dá)到優(yōu)化傳統(tǒng)AdaBoost的目的,提升算法的分類效果。 本文實(shí)驗分為5個部分:實(shí)驗一驗證本文所提基分類器求解方法的有效性;實(shí)驗二驗證加入雙誤度量能有效防止算法過適應(yīng);實(shí)驗三選取最合理的k值,保證WD AdaBoost算法有最大準(zhǔn)確率;實(shí)驗四研究WD AdaBoost與其他算法相比,其收斂速度的快慢,為本文算法以后應(yīng)用于實(shí)際問題提供參考;在實(shí)驗五中,為驗證本文算法的有效性,將WD AdaBoost與其他幾種改進(jìn)的AdaBoost算法做對比實(shí)驗。實(shí)驗數(shù)據(jù)集來自不同的實(shí)際應(yīng)用領(lǐng)域,具體信息見表2。 表2 實(shí)驗數(shù)據(jù)集Tab.2 Experimental datasets 本次實(shí)驗中,sk_AdaBoost算法來自python機(jī)器學(xué)習(xí)工具箱scikit-learn,將使用式(9)作為基分類器系數(shù)的AdaBoost算法記為CeffAda,使用表2中的數(shù)據(jù)集,采用十折交叉驗證,表3將給出在每個數(shù)據(jù)集上10次訓(xùn)練誤差和測試誤差的平均值,基分類器數(shù)目為50個。 表3 不同基分類器系數(shù)下的誤差比較Tab.3 Error comparison under different base classifier coefficients 分析表3可得,在5個數(shù)據(jù)集上,CeffAda比sk_AdaBoost的測試誤差平均降低1.2個百分點(diǎn)。在sonarM數(shù)據(jù)集上,CeffAda算法比sk_AdaBoost算法的誤差低3.43個百分點(diǎn)。在german3、pimax、chessM數(shù)據(jù)集上,CeffAda算法比sk_AdaBoost算法平均降低了1.08個百分點(diǎn)。在breastM數(shù)據(jù)集上,sk_AdaBoost算法僅比CeffAda算法低0.14個百分點(diǎn),綜上所述,CeffAda算法的精度在4個數(shù)據(jù)集上領(lǐng)先,而sk_AdaBoost算法的精度僅在1個數(shù)據(jù)集上領(lǐng)先,說明本文所提的基分類器系數(shù)求解方法有效。 在本次實(shí)驗中,WD AdaBoost為本文算法,使用表2中的數(shù)據(jù)集,采用十折交叉驗證,表4將給出在每個數(shù)據(jù)集上10次訓(xùn)練誤差和測試誤差的平均值,基分類器數(shù)目為50個。 表4 兩種算法的誤差比較Tab.4 Error comparison of twoalgorithms 分析表4可知,在sonarM數(shù)據(jù)集上,CeffAda算法的訓(xùn)練誤差收斂到0,但測試誤差卻是15.43%,CeffAda算法明顯過適應(yīng),而WD AdaBoost算法訓(xùn)練誤差為0.22%,測試誤差為15.14%,WD AdaBoost算法沒有表現(xiàn)出過適應(yīng)現(xiàn)象。在german3、pimax、sonarM數(shù)據(jù)集上,CeffAda算法的訓(xùn)練誤差均小于WD AdaBoost算法,但測試誤差卻比WD AdaBoost算法高,說明WD AdaBoost的泛化能力更好。在chessM和breastM數(shù)據(jù)集上,二者均表現(xiàn)正常,以上分析表明DF能有效防止算法過適應(yīng)。 在k<1/120的條件下,能保證算法的可斂性,為防止k值太小導(dǎo)致算法退化。因此,k在0.008 3、0.008、0.007 7、0.007 4、0.007 1、0.006 8中進(jìn)行實(shí)驗,從0.006 8到0.008 3可以看作是一個不連續(xù)的區(qū)間,實(shí)驗要在這個區(qū)間里找出最合理的值。本次實(shí)驗采用10折交叉驗證,取10次測試誤差的平均值。通過圖1可以看出:當(dāng)k=0.008 3時,本文算法在pimax、sonarM、chessM三個數(shù)據(jù)集上表現(xiàn)最好;當(dāng)k=0.008時,本文算法在german3、pimax、chessM數(shù)據(jù)集上表現(xiàn)最好;當(dāng)k=0.007 7時,本文算法在chessM和breastM數(shù)據(jù)集上表現(xiàn)最好;當(dāng)k=0.007 4時,本文算法在breastM數(shù)據(jù)集上表現(xiàn)最好;當(dāng)k=0.007 1時,本文算法在chessM和breastM數(shù)據(jù)集上表現(xiàn)最好;當(dāng)k=0.006 8時,本文算法在chessM數(shù)據(jù)集上表現(xiàn)最好。將k在不同值下的最優(yōu)取值次數(shù)繪制成一個簡單的表格,如表5所示。 圖1 不同k值下本文算法的分類效果Fig.1 Classification effect of the proposed algorithm under different k values 由表5可以看出k在0.0083與0.0080時,本文算法效果最好,但k=0.008 3時的最大誤差為0.242,最小誤差為0.04;而k=0.008 0時的最大誤差為0.241,最小誤差為0.037。k=0.008 0時的最大誤差和最小誤差均小于k=0.0083時的最大和最小誤差。所以,k=0.0080最合理。 表5 最優(yōu)取值次數(shù)統(tǒng)計Tab.5 Statistics of times of optimal value 為了更好地驗證WD AdaBoost算法的穩(wěn)定性,實(shí)驗四采用10折交叉驗證,在不同迭代次數(shù)下,比較WD AdaBoost與sk_AdaBoost、WLDF_Ada、AD_Ada、SWA_Adaboost、Pa_Ada、IPAB六種算法10次訓(xùn)練誤差的平均值,實(shí)驗結(jié)果如圖2所示。在german3上,WD AdaBoost、sk_AdaBoost、WLDF_Ada、AD_Ada、SWA_Adaboost迭代20次后收斂,Pa_Ada迭代5次后收斂,IPAB迭代45次后收斂。在pimax上,WD AdaBoost、sk_AdaBoost、WLDF_Ada、AD_Ada迭代15次后收斂,Pa_Ada迭代5次后收斂,SWA_Adaboost在迭代25次后收斂,IPAB在迭代35次后收斂。在sonarM上,WD AdaBoost、sk_AdaBoost、AD_Ada、WLDF_Ada同時在迭代49次后收斂到0,SWA_Adaboost、Pa_Ada、IPAB在迭代30次后收斂,只有IPAB在迭代35次后完成收斂。在chessM上,WD AdaBoost、WLDF_Ada、AD_Ada在迭代5次后完成收斂,sk_AdaBoost在迭代10次后完成收斂,IPAB、SWA_Adaboost、Pa_Ada在迭代45次后收斂。在breastM上,WD AdaBoost、sk_AdaBoost、WLDF_Ada、AD_Ada迭代45次后完成收斂,SWA_Adaboost、Pa_Ada、IPAB在迭代40次后開始收斂,之后仍然有輕微波動。綜上可得,WD AdaBoost收斂速度與sk_AdaBoost、WLDF_Ada、AD_Ada相比,收斂速度幾乎無差別,與Pa_Ada相比有一定的優(yōu)勢,與SWA_Adaboost、IPAB相比有較大優(yōu)勢,說明WDAdaBoost算法在訓(xùn)練時間上達(dá)到了較好效果,在強(qiáng)調(diào)訓(xùn)練速度的應(yīng)用場景,WD AdaBoost不失為一個好的選擇。 圖2 七種算法的收斂速度對比Fig.2 Convergence speed comparison of seven algorithms 本次實(shí)驗,對比7種不同算法的測試誤差,使用表2中的數(shù)據(jù)集,采用十折交叉驗證,表6將給出每個數(shù)據(jù)集10次測試誤差的平均值,基分類器數(shù)目為50個。 表6 不同算法的測試誤差比較Tab.6 Comparison of test error of different algorithms 分析表6可知,在german3、pimax、sonarM、breastM數(shù)據(jù)集上,WD AdaBoost都優(yōu)于其他6種算法:在german3數(shù)據(jù)集上對比其他6種算法平均降低7.49個百分點(diǎn);pimax數(shù)據(jù)集上最高降低40.26個百分點(diǎn),平均降低12.43個百分點(diǎn);sonarM數(shù)據(jù)集上最高降低14.93個百分點(diǎn),平均降低4.65個百分點(diǎn);breastM數(shù)據(jù)集上最低降了0.29個百分點(diǎn),平均降低0.84個百分點(diǎn);只有在chessM數(shù)據(jù)集上WD AdaBoost算法的精度不及AD_Ada算法,但二者并沒有很大的差別,AD_Ada算法精度只比本文算法高0.06個百分點(diǎn),這個差值可以忽略。以上實(shí)驗結(jié)果表明WD AdaBoost算法具有更好的分類能力與泛化性能,驗證了本文理論的正確性。 傳統(tǒng)AdaBoost算法只將錯誤率作為基分類器的系數(shù),設(shè)計也沒有體現(xiàn)防止過擬合的思想,導(dǎo)致泛化能力與分類性能較差。基分類器的權(quán)重計算與多樣性結(jié)合是優(yōu)化傳統(tǒng)AdaBoost算法的一個重要思路,WD AdaBoost算法基于這一思路將樣本權(quán)重分布狀態(tài)進(jìn)行量化,并結(jié)合錯誤率對基分類器的系數(shù)進(jìn)行了改進(jìn)。將新的系數(shù)公式與雙誤度量結(jié)合起來,既提高了分類器的組合效率,又優(yōu)化了分類器的選擇策略。但在WD AdaBoost算法的基分類器系數(shù)中,求解不出k的最佳取值,下一步會繼續(xù)研究基分類器系數(shù)的求解方法,并尋找更適合WDAdaBoost算法的多樣性度量方式。3 WD AdaBoost樣本權(quán)重更新分析
3.1 樣本權(quán)重的更新
3.2 對k的分析
4 實(shí)驗
4.1 實(shí)驗一的結(jié)果與分析
4.2 實(shí)驗二的結(jié)果與分析
4.3 實(shí)驗三k值的選取
4.4 實(shí)驗四不同算法收斂速度的對比與分析
4.5 實(shí)驗五的結(jié)果及分析
5 結(jié)語