本發(fā)明涉及模式分類技術(shù)領(lǐng)域,尤其涉及一種對不平衡數(shù)據(jù)集進行識別處理的邊界消解偽逆方法與系統(tǒng)。
背景技術(shù):
模式識別是研究利用計算機來模仿或?qū)崿F(xiàn)人類或其它動物的識別能力,以便對研究對象完成自動識別的任務(wù)。近年來,模式識別技術(shù)已被廣泛應(yīng)用在人工智能、機器學(xué)習(xí)、計算機工程、機器人學(xué)、神經(jīng)生物學(xué)、醫(yī)學(xué)、偵探學(xué)以及考古學(xué)、地質(zhì)勘探、宇航科學(xué)和武器技術(shù)等許多重要領(lǐng)域??墒?,伴隨應(yīng)用領(lǐng)域的拓展,傳統(tǒng)的模式識別技術(shù)面臨新的挑戰(zhàn)。其中一個突出的挑戰(zhàn)來自不平衡數(shù)據(jù)處理問題。不平衡數(shù)據(jù)是這樣一種數(shù)據(jù),在其內(nèi)部的許多類別中,一些類別的樣本數(shù)量遠小于其余類別的樣本數(shù)量。為簡便,稱樣本數(shù)少的類為少數(shù)類,稱樣本數(shù)多的類為多數(shù)類。實際應(yīng)用中,少數(shù)類往往比多數(shù)類錯分的代價大,例如醫(yī)療診斷時,誤判一個潛在病患的代價比誤判一個實際健康的人要大。同樣地,在錯誤檢測、軟測量、融資預(yù)測、醫(yī)療探查等領(lǐng)域存在大量不平衡數(shù)據(jù)。
傳統(tǒng)的模式分類方法在處理不平衡問題時,由于多數(shù)類樣本的影響,往往得到偏差較大的結(jié)果。為了解決不平衡問題,一些特定的方法被設(shè)計出來。目前,專門針對不平衡問題的方法可以分為三類:第一類是基于數(shù)據(jù)集的方法,該類方法通過采樣技術(shù),在模式預(yù)處理環(huán)節(jié)削減多余的多數(shù)類,或生成少數(shù)類,使數(shù)據(jù)集趨于平衡,再代入后續(xù)傳統(tǒng)分類模型。該類代表算法包括單邊下采樣算法(onesideselection)和人造少數(shù)類上采樣算法(syntheticminorityoversamplingtechnique)等;第二類是基于代價敏感的方法,該類方法通過給錯分的樣本賦予不同權(quán)值的代價,從而糾正傳統(tǒng)模型由于不平衡數(shù)據(jù)造成的偏差,一般而言,錯分的少數(shù)類樣本獲得比錯分的多數(shù)類樣本更高的代價。該類代表算法包括代價敏感局保投影算法(cost-sensitivelocalitypreservingprojections)、代價敏感主成分分析算法(cost-sensitiveprincipalcomponentanalysis)及代價敏感判別分析算法(cost-sensitivelineardiscriminantanalysis)等;第三類是基于繼承方法,該類方法通過將不同的弱分類方法合成在一起,對數(shù)據(jù)集進行綜合判斷。該類代表算法包括adacost等。
目前,三類方法都存在各自不足。第一類方法實現(xiàn)較易,但大多需要在訓(xùn)練模塊代入全體或至少大部分樣本,對于流動性強或先驗信息不足的問題無法正常處理。且第一類基于采樣的方法現(xiàn)在主要和其他方法結(jié)合使用,已經(jīng)不能獨立作為一個解決問題的模型。第二類方法和第三類方法則往往結(jié)構(gòu)復(fù)雜,需要調(diào)整大量參數(shù)以獲取最優(yōu)值。第二類方法計算代價往外趕需要遍歷大多數(shù)樣本,導(dǎo)致效率降低。第三類方法需要把同一批數(shù)據(jù)代入不同的子分類模型,同樣降低了效率。若能設(shè)計出結(jié)構(gòu)簡潔,參數(shù)較少,且能很好矯正偏差的方法,將會進一步提高模式分類技術(shù)在不平衡問題上的處理能力。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)結(jié)構(gòu)復(fù)雜、效率低下且精度不高,無法滿足大規(guī)模、實時、或缺少先驗知識的不平衡問題,本發(fā)明提供了一種基于邊界消解的偽逆算法的不平衡數(shù)據(jù)集分類方法,采用基于邊界算法的典型線性分類方法——偽逆算法對小規(guī)模樣本進行第一次訓(xùn)練獲取候選子集,采用啟發(fā)式類邊界條件方法對篩選過的樣本進行第二次訓(xùn)練獲取邊界,最后通過獲得的模糊邊界和相似度度量策略對未知樣本進行測試,從而在保證不平衡數(shù)據(jù)集分類正確率的同時,在模型設(shè)計和模型運算兩方面提高效率。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案(以兩類不平衡問題為例):首先后臺根據(jù)具體的不平衡問題描述,將采集到的樣本轉(zhuǎn)化成可以供后續(xù)算法處理的向量模型。其次,將以向量表示的數(shù)據(jù)集分為訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集兩部分。若數(shù)據(jù)集有限,可以全部用作訓(xùn)練。在訓(xùn)練步驟中,第一次訓(xùn)練使用基于偽逆算法的分類策略對訓(xùn)練樣本點劃分出大致的分類決策面,并進一步生成平行于該分類決策面且過各類樣本質(zhì)心的兩個新決策面。只有位于兩個過質(zhì)心決策面中間空間的樣本被保留作為候選子集,其余樣本被去除。第二次訓(xùn)練時,得到每個候選的多數(shù)類樣本點距離過多數(shù)類質(zhì)心決策面的距離,少數(shù)類作同樣處理,兩類每個樣本的距離生成兩個距離向量。第三,在測試階段,得到當前測試樣本點到兩個過質(zhì)心決策面的距離后,用這兩個距離和訓(xùn)練模塊生成的兩類距離向量分別比較,通過判斷測試樣本點在哪一邊的距離更接近質(zhì)心決策面而作出最終決定。當兩邊距離相等時,算法采用訓(xùn)練模塊里第一次生成的兩類決策面進行判斷,整個方法退化為原始的偽逆算法。最后,輸出決定的類標號。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案還可以進一步完善。所述訓(xùn)練模塊的第一次訓(xùn)練步驟中,偽逆方法尋找決策面可以使用各種改進的方法,只要修正的方法保證復(fù)雜度和訓(xùn)練速度即可。進一步,該模型還可以使用任意適用的線性分類模型取代偽逆算法。但由于偽逆算法在所有線性分類模型里結(jié)構(gòu)最簡單,發(fā)明仍然以偽逆算法進行實踐。另外,所述的訓(xùn)練模塊的第一次訓(xùn)練步驟后,生成兩個過質(zhì)心的決策面時,為了提高效率,可以先判斷問題的兩類數(shù)據(jù)是否重疊,若無重疊,說明該數(shù)據(jù)集線性可分,則不必執(zhí)行后續(xù)步驟。最后,訓(xùn)練第二部及測試的相似度度量步驟,采用的相似度度量方法默認為歐氏距離。但根據(jù)不同情況,可以使用任意度量方式,例如余弦距離、馬氏距離等。
本發(fā)明有益的效果是:利用基于邊界消解偽逆算法結(jié)構(gòu)的簡潔性,實現(xiàn)了對不平衡問題的快速反饋;通過兩步訓(xùn)練,融合了基于邊界的偽逆算法和基于非邊界的啟發(fā)式近鄰算法,提高了分類精確度;由于偽逆方法本身的簡便,使該方法只需預(yù)設(shè)一個參數(shù),大大縮短調(diào)試時間;該方法形成的邊界是模糊的,因此在訓(xùn)練樣本數(shù)極少時仍能保證偏差不會過大。
附圖說明
圖1是本發(fā)明的基于邊界消解偽逆算法的不平衡數(shù)據(jù)分類系統(tǒng)的系統(tǒng)框架。
圖2是本發(fā)明在訓(xùn)練步驟的流程圖。
圖3是本發(fā)明在測試步驟的流程圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步介紹:本發(fā)明的方法共分三個模塊。
第一部分:數(shù)據(jù)采集
數(shù)據(jù)采集過程是將現(xiàn)實中的不平衡問題數(shù)據(jù)化,生成向量表示的數(shù)據(jù)集便于后續(xù)模塊進行處理。一個樣本生成一個向量x,向量的每一元素對應(yīng)樣本的一個屬性,向量的維度d即為樣本的屬性數(shù),如下圖所示:
在兩類問題中,將少數(shù)類樣本和多數(shù)類樣本各合并成一個矩陣,即少數(shù)類的矩陣xpos與多數(shù)類的矩陣xneg,再將兩個矩陣合并成一個大矩陣xall,這個最終的矩陣即是整個問題的數(shù)據(jù)集,如下圖所示:
第二部分:訓(xùn)練分類模型
在這個模塊中,采集到的數(shù)據(jù)集將代入發(fā)明的核心算法中進行訓(xùn)練。主要步驟如下。
1)利用偽逆算法生成分類決策面ld:偽逆算法是典型的線性分類算法,目的是生成一個決策面,落在決策面一邊的測試樣本就被判定為屬于與其同一邊的那一類別。決策面方程表示為:
偽逆算法首先將數(shù)據(jù)集矩陣xall的第一列增加全1向量,使其擴展為增廣矩陣,如下圖:
之后通過偽逆算法的公式求出最優(yōu)的w與w0。公式如下:
其中,d是預(yù)先設(shè)置的理論類標號參數(shù)。
2)過兩類訓(xùn)練樣本質(zhì)心,作平行于ld的兩個分類面lpos與lneg:兩類質(zhì)心的算法如下公式所示,
3)生成候選子集:將位于lpos與lneg之間的訓(xùn)練樣本留下作為候選子集c,其余樣本去除。
4)判斷當前數(shù)據(jù)集是否線性可分:判斷c中的兩類樣本是否存在重疊,若不存在即當前數(shù)據(jù)集是線性可分,則普通線性分類模型就可以完成識別,后續(xù)使用偽逆算法生成的決策面ld進行測試即可;若存在,則進入下一步。判斷重疊方法為c中兩類樣本離lpos與lneg最遠點xpmax'與xnmax'是否滿足不等式:
滿足即為線性不可分。
5)生成兩個距離向量dispos與disneg:令d(x,l)表示一個樣本點x到一個分類面l的歐式距離。則依次計算所有c中的多數(shù)類點到lneg的距離存入disneg中,同理所有c中的少數(shù)類點到lpos的距離存入dispos中。
第三部分:測試未知數(shù)據(jù)
該模塊中,需要檢測其類標號的未知數(shù)據(jù)代入已經(jīng)訓(xùn)練好的模型,并由模型做出決定。設(shè)未知樣本為z。測試環(huán)節(jié)包括以下步驟。
1)計算測試樣本點z到兩個過質(zhì)心分類平面的歐氏距離,即獲取d(z,lpos)與d(z,lneg)。
2)代d(z,lpos)入dispos進行比較,獲取z被分類到少數(shù)類的概率,計算公式如下:
其中,分子是dispos中數(shù)值大于d(z,lpos)的元素個數(shù),即c子集中到lpos距離比測試樣本z到lpos距離遠的少數(shù)類樣本個數(shù)。分母是c子集中少數(shù)類樣本總數(shù)。
3)同理,比較d(z,lneg)與disneg,計算公式如下:
4)比較p(ypos~z)與p(yneg~z),z的類標號最后被決定為概率較大的一邊。
5)若p(ypos~z)與p(yneg~z)相等,z由ld構(gòu)成的決策方程決定。這時,算法退化到原始的偽逆方法。
實驗結(jié)果
1)實驗數(shù)據(jù)集選取:該實驗選擇了開源網(wǎng)站extractionbasedonevolutionarylearning(keel)datasetrepository的六個不平衡數(shù)據(jù)集。選取數(shù)據(jù)集的類數(shù)目、樣本維度、規(guī)模(樣本總數(shù))及不平衡率ir列在下表中。其中ir大于9的為中度以上不平衡數(shù)據(jù)集,
其中,令nneg為多數(shù)類樣本數(shù),npos為少數(shù)類樣本數(shù),不平衡率ir的計算公式為:
所有使用的數(shù)據(jù)集均采用五折交叉方式處理,即將數(shù)據(jù)集分為大致均勻的五份,每一次選擇其中一份作為測試數(shù)據(jù),另外四份為訓(xùn)練數(shù)據(jù)。不重復(fù)選取測試數(shù)據(jù)五次。
2)對比算法:發(fā)明所使用的核心算法,即邊界消解偽逆算法,簡稱為bepild。另外,我們選擇knn、svm(linear)、svm(poly)、svm(rbf)為基準算法。每個算法的參數(shù)描述及值域設(shè)置如下表。
3)性能度量方法:實驗統(tǒng)一使用受試者工作特征曲線線下面積(theareaunderthereceiveroperatingcharacteristiccurve,auc)來記錄不同方法對各數(shù)據(jù)集的分類結(jié)果。結(jié)果均為對應(yīng)算法在該數(shù)據(jù)集上使用最優(yōu)參數(shù)配置時獲得的結(jié)果,即最優(yōu)結(jié)果。auc的計算公式為:
其中tp為真正類率,fp為假正類率,tn為真負類率,fn為假負類率。四個指標的關(guān)系如下表。
首先是bepild與基準算法進行對比,在實驗中,因為近鄰算法(knn)在近鄰數(shù)k取1時平均auc值高于取其它數(shù)值,為了突出顯示,表格中只列出了1nn的結(jié)果。每個數(shù)據(jù)集的最好結(jié)果標記為粗體。結(jié)果如下表。
如表可知,bepild在所有數(shù)據(jù)集上取得最高auc值,即最優(yōu)結(jié)果。
接著,將提出的bepild與經(jīng)典knn算法在六個數(shù)據(jù)集上的平均用時(訓(xùn)練時間與測試時間的和)記錄在下表中,每個數(shù)據(jù)集的最好結(jié)果標記為粗體:
由表中結(jié)果可知,雖然bepild有訓(xùn)練與測試兩個過程,而knn作為懶惰學(xué)習(xí)只有測試過程,但從時間上看,bepild效率更高。