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