本發(fā)明涉及機(jī)器學(xué)習(xí)領(lǐng)域,特別涉及一種適用于多標(biāo)簽分類的ml-knn改進(jìn)方法和系統(tǒng)。
背景技術(shù):
:在傳統(tǒng)的單標(biāo)簽分類中,是從一系列只具有一個(gè)標(biāo)簽l的樣本中進(jìn)行學(xué)習(xí),其中l(wèi)來自標(biāo)簽集合l,|l|>1。如果|l|=2,學(xué)習(xí)問題便稱為二分類問題;如果|l|>2,學(xué)習(xí)問題便是一個(gè)多分類問題。然而,在多標(biāo)簽分類中,一個(gè)樣本往往具有若干個(gè)標(biāo)簽y,其中在現(xiàn)實(shí)中,有許多標(biāo)簽分類問題,如文本分類,一篇文本可能既是體育類又是政治類;又如醫(yī)學(xué)上的疾病診斷,一個(gè)患者往往具有多種并發(fā)癥,如患者可能同時(shí)具有呼吸道感染,支氣管炎和肺炎三種疾病。論文(tsoumakasg,katakisi.multi-labelclassification:anoverview[j].internationaljournalofdatawarehousing&mining,2010,3(3):1-13)將解決多標(biāo)簽分類的方法歸為2類,一類是問題轉(zhuǎn)換方法,另一類則是算法適應(yīng)方法。前者之所以稱為問題轉(zhuǎn)換方法,是其將多標(biāo)簽分類問題轉(zhuǎn)換成一個(gè)或多個(gè)單標(biāo)簽分類問題;后者稱為算法適應(yīng)方法則是其嘗試將學(xué)習(xí)算法進(jìn)行擴(kuò)展以適應(yīng)多標(biāo)簽數(shù)據(jù)集。最常見的一種問題轉(zhuǎn)換方法(boutellmr,luoj,shenx,etal.learningmulti-labelsceneclassification☆[j].patternrecognition,2004,37(9):1757-1771.)是將原始數(shù)據(jù)集劃分為|l|個(gè)子數(shù)據(jù)dl,每一個(gè)子數(shù)據(jù)集中的樣本如果其具有l(wèi)標(biāo)簽則將其標(biāo)記為l,否則標(biāo)記為隨后利用|l|個(gè)子數(shù)據(jù)集訓(xùn)練|l|個(gè)二分類器,當(dāng)對(duì)樣本進(jìn)行分類時(shí),則分別用這|l|個(gè)二分類器進(jìn)行預(yù)測(cè)。最后取這|l|個(gè)二分類器預(yù)測(cè)結(jié)果的并集作為最種的樣本預(yù)測(cè)標(biāo)簽集合。在算法適應(yīng)方法上,論文(clarea,kingrd.knowledgediscoveryinmulti-labelphenotypedata[j].lecturenotesincomputerscience,2001,2168(2168):42-53.)將c4.5算法適用到多標(biāo)簽數(shù)據(jù)上,并對(duì)熵計(jì)算公式進(jìn)行修改從而允許決策樹上的葉子結(jié)點(diǎn)具有多個(gè)標(biāo)簽。論文(schapirere,singery.boostexter:aboosting-basedsystemfortextcategorization[j].machinelearning,2000,39(2):135-168.)對(duì)adaboost算法(freund,yoav,schapire,roberte.adecision-theoreticgeneralizationofon-linelearningandanapplicationtoboosting[j].journalofcomputer&systemsciences,1997,55(1):119-139.)進(jìn)行擴(kuò)展提出了adaboost.mh和adaboost.mr以適應(yīng)于多標(biāo)簽分類。在adaboost.mh中,預(yù)測(cè)一個(gè)樣本時(shí),考慮標(biāo)簽l,如果弱分類器輸出為正,則將該標(biāo)簽加入樣本的預(yù)測(cè)標(biāo)簽集合中,反之則不加;在mr中,弱分類器的輸出則用來對(duì)標(biāo)簽集合l進(jìn)行排序以確定最終的輸出。論文(godboles,sarawagis.discriminativemethodsformulti-labeledclassification[m]//advancesinknowledgediscoveryanddatamining.springerberlinheidelberg,2004:22-30.)對(duì)支持向量機(jī)(supportvectormachine)做了一些改進(jìn)以支持多標(biāo)簽數(shù)據(jù),其首先將距離分類超平面的距離小于一定閾值的負(fù)訓(xùn)練樣本去掉,隨后又將經(jīng)驗(yàn)證集測(cè)試出的與正樣本相近的負(fù)訓(xùn)練樣本去掉。論文(thabtahfa,cowlingp,pengy.mmac:anewmulti-class,multi-labelassociativeclassificationapproach[c]//ieeeinternationalconferenceondatamining.ieee,2004:217-224.)針對(duì)多標(biāo)簽問題提出了mmac算法,該算法利用關(guān)聯(lián)規(guī)則挖掘的方法處理分類規(guī)則的構(gòu)建,其首先利用關(guān)聯(lián)規(guī)則挖掘算法學(xué)習(xí)出一個(gè)初始的分類規(guī)則集合,然后刪掉與這些規(guī)則相對(duì)應(yīng)的樣本,繼續(xù)從剩余樣本中學(xué)習(xí)分類規(guī)則,如此反復(fù),直到?jīng)]有新的規(guī)則出現(xiàn)。在這些規(guī)則中,存在同樣的前綴條件但不同標(biāo)簽的情況,從而將這些規(guī)則合并為一個(gè)多標(biāo)簽規(guī)則。ml-knn(zhangml,zhouzh.ak-nearestneighborbasedalgorithmformulti-labelclassification[c]//ieeeinternationalconferenceongranularcomputing.ieee,2005:718-721vol.2.)是knn懶惰學(xué)習(xí)算法的進(jìn)化以適應(yīng)在多標(biāo)簽數(shù)據(jù)集。ml-knn對(duì)每一個(gè)標(biāo)簽l獨(dú)立地使用knn算法(多標(biāo)簽k近鄰算法):對(duì)一個(gè)測(cè)試樣本,其找出在訓(xùn)練集中與該樣本距離最相近的k個(gè)鄰居并將其中帶有標(biāo)簽l的樣本為正樣本,其余的則為負(fù)樣本,從而根據(jù)這些已經(jīng)獲取的近鄰標(biāo)簽集的統(tǒng)計(jì)信息,用最大后驗(yàn)概率原則(map)去決定測(cè)試樣本的標(biāo)簽集合,最大后驗(yàn)概率是基于knn對(duì)每個(gè)標(biāo)簽的前驗(yàn)和后驗(yàn)概率。然而ml-knn仍然有一些不足,首先由于樣本的多標(biāo)簽特性,其并沒有區(qū)分同一條樣本的不同的標(biāo)簽所對(duì)應(yīng)的特征向量,即對(duì)同一條樣本,如果其具有若干個(gè)不同的標(biāo)簽,ml-knn方法認(rèn)為這些標(biāo)簽具有相同的特征向量,這就導(dǎo)致標(biāo)簽之間的區(qū)分度下降,增大分類的誤差;其次,在樣本的距離計(jì)算上,ml-knn采用經(jīng)典的余弦相似度作為樣本距離的衡量指標(biāo),這種計(jì)算方式并未考慮標(biāo)簽之間的相關(guān)性,如在醫(yī)療診斷數(shù)據(jù)集中“支氣管肺炎”和“支氣管炎”這兩個(gè)疾病標(biāo)簽是具有較強(qiáng)的相關(guān)性的,而這種相關(guān)性會(huì)對(duì)距離的計(jì)算帶來一定影響,這點(diǎn)ml-knn方法并沒有考慮?,F(xiàn)有發(fā)明專利一種基于粒子群算法的多標(biāo)簽分類方法(cn104991974a),雖然該發(fā)明使用了knn算法,但對(duì)特征權(quán)值的優(yōu)化是采用粒子群算法,而本發(fā)明則基于特征的先驗(yàn)概率并對(duì)數(shù)據(jù)集進(jìn)行更新;另外,本發(fā)明對(duì)距離計(jì)算公式也做了改進(jìn)?,F(xiàn)有發(fā)明專利一種多標(biāo)簽分類方法及其裝置(cn104899596a)雖然采用轉(zhuǎn)換算法將多標(biāo)簽問題轉(zhuǎn)換成單標(biāo)簽分類問題,但本發(fā)明與其明顯的不同在于提出的幾個(gè)創(chuàng)新點(diǎn),包括特征權(quán)重計(jì)算,訓(xùn)練數(shù)據(jù)集更新與預(yù)測(cè)樣本時(shí)的樣本拆分,這些都是該專利所不具有的。技術(shù)實(shí)現(xiàn)要素:針對(duì)上述ml-knn的不足,本發(fā)明提出了一種適用于多標(biāo)簽分類的ml-knn改進(jìn)方法,其中包括如下步驟:步驟1:獲取原始數(shù)據(jù)集,該原始數(shù)據(jù)集包括多條樣本,其中每條樣本具有多類標(biāo)簽和多類特征,在該原始數(shù)據(jù)集中統(tǒng)計(jì)每類標(biāo)簽的樣本總數(shù),作為標(biāo)簽樣本數(shù),在每類標(biāo)簽的樣本中統(tǒng)計(jì)每類特征的樣本總數(shù),作為特征樣本數(shù),并根據(jù)該標(biāo)簽樣本數(shù)和該特征樣本數(shù)計(jì)算特征標(biāo)簽權(quán)重,其中每個(gè)特征對(duì)應(yīng)一個(gè)特征值;步驟2:將該原始數(shù)據(jù)集中每條樣本拆分為多個(gè)具有單一標(biāo)簽的原始單標(biāo)簽樣本,并根據(jù)該特征標(biāo)簽權(quán)重對(duì)每條該原始單標(biāo)簽樣本的特征值進(jìn)行更新,生成第一數(shù)據(jù)集;步驟3:獲取待預(yù)測(cè)的待測(cè)樣本,將待測(cè)樣本拆分為具有單一標(biāo)簽的待測(cè)單標(biāo)簽樣本,根據(jù)該第一數(shù)據(jù)集依次對(duì)該待測(cè)單標(biāo)簽樣本的標(biāo)簽進(jìn)行預(yù)測(cè),確定該待測(cè)樣本的標(biāo)簽集合。該適用于多標(biāo)簽分類的ml-knn改進(jìn)方法,其中該步驟3包括:步驟31:統(tǒng)計(jì)該原始數(shù)據(jù)集共涉及的標(biāo)簽類別數(shù)c,將該未知多標(biāo)簽樣本拆分為c個(gè)待測(cè)單標(biāo)簽樣本;步驟32:根據(jù)該特征標(biāo)簽權(quán)重將c個(gè)該待測(cè)單標(biāo)簽樣本的特征值進(jìn)行更新,生成第二數(shù)據(jù)集;步驟33:通過計(jì)算該第二數(shù)據(jù)集中每條待測(cè)單標(biāo)簽樣本與該第一數(shù)據(jù)集中每條原始單標(biāo)簽樣本之間的距離,依次為每條該待測(cè)單標(biāo)簽樣本預(yù)測(cè)一個(gè)預(yù)測(cè)標(biāo)簽,并將所有該預(yù)測(cè)標(biāo)簽集合為預(yù)測(cè)標(biāo)簽集;步驟34:根據(jù)該預(yù)測(cè)標(biāo)簽集中各標(biāo)簽類別出現(xiàn)的次數(shù),確定該待測(cè)樣本的標(biāo)簽集合。該適用于多標(biāo)簽分類的ml-knn改進(jìn)方法,其中步驟33中預(yù)測(cè)方法具體為:步驟331:計(jì)算該待測(cè)單標(biāo)簽樣本與第一數(shù)據(jù)集中的各個(gè)該原始單標(biāo)簽樣本的距離;步驟332:根據(jù)該距離取出距該待測(cè)單標(biāo)簽樣本最近的k條原始單標(biāo)簽樣本,并將該k條原始單標(biāo)簽樣本中出現(xiàn)次數(shù)最多的標(biāo)簽種類,作為該待測(cè)單標(biāo)簽樣本的預(yù)測(cè)標(biāo)簽。該適用于多標(biāo)簽分類的ml-knn改進(jìn)方法,其中步驟34還包括:計(jì)算各預(yù)測(cè)標(biāo)簽出現(xiàn)的后驗(yàn)概率,若該后驗(yàn)概率大于等于預(yù)設(shè)閾值,則將該預(yù)測(cè)標(biāo)簽加入結(jié)果標(biāo)簽集合中,并將該結(jié)果標(biāo)簽集合作為該待測(cè)樣本的標(biāo)簽集合。該適用于多標(biāo)簽分類的ml-knn改進(jìn)方法,其中步驟1中該特征值的取值范圍為{0,1}。本發(fā)明還提出了一種適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中包括如下模塊:特征標(biāo)簽權(quán)重計(jì)算模塊:用于獲取原始數(shù)據(jù)集,該原始數(shù)據(jù)集包括多條樣本,其中每條樣本具有多類標(biāo)簽和多類特征,在該原始數(shù)據(jù)集中統(tǒng)計(jì)每類標(biāo)簽的樣本總數(shù),作為標(biāo)簽樣本數(shù),在每類標(biāo)簽的樣本中統(tǒng)計(jì)每類特征的樣本總數(shù),作為特征樣本數(shù),并根據(jù)該標(biāo)簽樣本數(shù)和該特征樣本數(shù)計(jì)算特征標(biāo)簽權(quán)重,其中每個(gè)特征對(duì)應(yīng)一個(gè)特征值;樣本拆分模塊:將該原始數(shù)據(jù)集中每條樣本拆分為多個(gè)具有單一標(biāo)簽的原始單標(biāo)簽樣本,并根據(jù)該特征標(biāo)簽權(quán)重對(duì)每條該原始單標(biāo)簽樣本的特征值進(jìn)行更新,生成第一數(shù)據(jù)集;待測(cè)樣本預(yù)測(cè)模塊:獲取待預(yù)測(cè)的待測(cè)樣本,將該待測(cè)樣本拆分為具有單一標(biāo)簽的待測(cè)單標(biāo)簽樣本,根據(jù)該第一數(shù)據(jù)集依次對(duì)該待測(cè)單標(biāo)簽樣本的標(biāo)簽進(jìn)行預(yù)測(cè),確定該待測(cè)樣本的標(biāo)簽集合。該適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中該待測(cè)樣本預(yù)測(cè)模塊包括:統(tǒng)計(jì)模塊:統(tǒng)計(jì)該原始數(shù)據(jù)集共涉及的標(biāo)簽類別數(shù)c,將該未知多標(biāo)簽樣本拆分為c個(gè)待測(cè)單標(biāo)簽樣本;更新模塊:根據(jù)該特征標(biāo)簽權(quán)重將c個(gè)該待測(cè)單標(biāo)簽樣本的特征值進(jìn)行更新,生成第二數(shù)據(jù)集;標(biāo)簽預(yù)測(cè)模塊:通過計(jì)算該第二數(shù)據(jù)集中每條待測(cè)單標(biāo)簽樣本與該第一數(shù)據(jù)集中每條原始單標(biāo)簽樣本之間的距離,依次為每條該待測(cè)單標(biāo)簽樣本預(yù)測(cè)一個(gè)預(yù)測(cè)標(biāo)簽,并將所有該預(yù)測(cè)標(biāo)簽集合為預(yù)測(cè)標(biāo)簽集;標(biāo)簽集合模塊:根據(jù)該預(yù)測(cè)標(biāo)簽集中各標(biāo)簽類別出現(xiàn)的次數(shù),確定該待測(cè)樣本的標(biāo)簽集合。該適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中該標(biāo)簽預(yù)測(cè)模塊包括:距離計(jì)算模塊:計(jì)算該待測(cè)單標(biāo)簽樣本與第一數(shù)據(jù)集中的各個(gè)該原始單標(biāo)簽樣本的距離;篩選模塊:根據(jù)該距離取出距該待測(cè)單標(biāo)簽樣本最近的k條原始單標(biāo)簽樣本,并篩選出該k條原始單標(biāo)簽樣本中出現(xiàn)次數(shù)最多的標(biāo)簽種類,作為該待測(cè)單標(biāo)簽樣本的預(yù)測(cè)標(biāo)簽。該適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中該標(biāo)簽集合模塊還包括:計(jì)算各預(yù)測(cè)標(biāo)簽出現(xiàn)的后驗(yàn)概率,若該后驗(yàn)概率大于等于預(yù)設(shè)閾值,則將該預(yù)測(cè)標(biāo)簽加入結(jié)果標(biāo)簽集合中,并將該結(jié)果標(biāo)簽集合作為該待測(cè)樣本的標(biāo)簽集合。該適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中特征標(biāo)簽權(quán)重計(jì)算模塊中該特征值的取值范圍為{0,1}。本發(fā)明分別從特征標(biāo)簽權(quán)重計(jì)算,訓(xùn)練集更新,樣本預(yù)測(cè)三個(gè)部分對(duì)ml-knn算法進(jìn)行修改擴(kuò)展,具體的講,本方法首先充分考慮不同特征對(duì)不同標(biāo)簽的影響,計(jì)算特征標(biāo)簽權(quán)重;其次將訓(xùn)練集中的每條多標(biāo)簽樣本拆分成多個(gè)單標(biāo)簽樣本并利用特征標(biāo)簽權(quán)重對(duì)每條單標(biāo)簽樣本的特征值進(jìn)行更新以區(qū)分不同標(biāo)簽所對(duì)應(yīng)的特征向量;最后,在未知樣本預(yù)測(cè)上,本方法同樣對(duì)未知樣本進(jìn)行拆分更新并對(duì)樣本距離計(jì)算公式進(jìn)行更新以體現(xiàn)標(biāo)簽之間的相關(guān)性,從而使得該方法在多標(biāo)簽分類上獲得更好的效果。附圖說明圖1為本發(fā)明訓(xùn)練數(shù)據(jù)更新示意圖;圖2為本發(fā)明預(yù)測(cè)樣本示意圖。具體實(shí)施方式本發(fā)明提供一種適用于多標(biāo)簽分類的ml-knn改進(jìn)方法,目標(biāo)是提高ml-knn在多標(biāo)簽分類上的性能。為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:步驟1:獲取原始數(shù)據(jù)集,該原始數(shù)據(jù)集包括多條樣本,且共涉及c個(gè)標(biāo)簽類別,其中每條樣本具有多類標(biāo)簽和多類特征,在該原始數(shù)據(jù)集中統(tǒng)計(jì)每類標(biāo)簽的樣本總數(shù),作為標(biāo)簽樣本數(shù),在每類標(biāo)簽的樣本中統(tǒng)計(jì)每類特征的樣本總數(shù),作為特征樣本數(shù),并根據(jù)該標(biāo)簽樣本數(shù)和該特征樣本數(shù)計(jì)算特征標(biāo)簽權(quán)重,其中每個(gè)特征對(duì)應(yīng)一個(gè)特征值。計(jì)算特征標(biāo)簽權(quán)重,其具體實(shí)現(xiàn)方法包括如下步驟:步驟11:給定原始數(shù)據(jù)集t,t={(x1,y1),(x2,y2),…,(xi,yi)},其中xi=(xi(1),xi(2),…,xi(j))t,xi(j)是第i個(gè)樣本的第j個(gè)特征,xi(j)∈{aj1,aj2,…,ajk},ajk是第j個(gè)特征可能取的第k個(gè)值,其中j和k的取值范圍為正整數(shù),j=1,2,…,m,k=1,2,…,sj;其中{l1,l2,…,lc}表示原始數(shù)據(jù)集中所有樣本所具有的標(biāo)簽集合,c=1,2,…,c,c表示共c種不同的類別標(biāo)簽,lc表示第c種標(biāo)簽。步驟12:按照以下公式計(jì)算特征標(biāo)簽權(quán)重,其中λ為平滑因子,λ>0以防止出現(xiàn)權(quán)重為0的情況;其中j=1,2,…,m;k=1,2,…,sj;c=1,2,…,c;λ>0,y表示的是樣本的標(biāo)簽,i()表示0-1指示函數(shù),如果括號(hào)里內(nèi)容成立,則函數(shù)值為1,否則為0,p(x(j)=ajk|y=lc)即表示在類別標(biāo)簽為lc下特征x(j)取值為ajk的條件概率,即該特征標(biāo)簽權(quán)重。步驟2:將該原始數(shù)據(jù)集中每條樣本拆分為多個(gè)具有單一標(biāo)簽的原始單標(biāo)簽樣本,并根據(jù)該特征標(biāo)簽權(quán)重對(duì)每條該原始單標(biāo)簽樣本的特征值進(jìn)行更新,生成第一數(shù)據(jù)集。原始數(shù)據(jù)集更新,如圖1所示,實(shí)現(xiàn)方法如下:步驟21:接收原始數(shù)據(jù)集t與各個(gè)特征標(biāo)簽權(quán)重p(x(j)=ajk|y=lc);步驟22:依次將多標(biāo)簽樣本xi=(xi(1),xi(2),…,xi(j))t,根據(jù)其標(biāo)簽數(shù)的多少拆分為若干條單標(biāo)簽樣本,如以下公式所示:步驟23:對(duì)拆分后的每條單標(biāo)簽樣本(xi=(xi(1),xi(2),…,xi(j))t,yic=lc),根據(jù)其所具有的類別標(biāo)簽,利用特征標(biāo)簽權(quán)重進(jìn)行更新其特征值,生成第一數(shù)據(jù)集,每一個(gè)特征值更新方式如下:(xi(j))=ω1ajk+ω2p(x(j)=ajk|y=lc)其中,ω1和ω2為系數(shù),由實(shí)驗(yàn)確定。步驟3:樣本預(yù)測(cè),給定一未知多標(biāo)簽集合的待測(cè)樣本,預(yù)測(cè)其標(biāo)簽集合,包括獲取待測(cè)樣本,將待測(cè)樣本拆分為具有單一標(biāo)簽的待測(cè)單標(biāo)簽樣本,根據(jù)該第一數(shù)據(jù)集依次對(duì)該待測(cè)單標(biāo)簽樣本的標(biāo)簽進(jìn)行預(yù)測(cè),確定該待測(cè)樣本的標(biāo)簽集合。實(shí)現(xiàn)方法如下:步驟31:統(tǒng)計(jì)該原始數(shù)據(jù)集共涉及的標(biāo)簽類別數(shù)c,將該未知多標(biāo)簽樣本拆分為c個(gè)待測(cè)單標(biāo)簽樣本;步驟32:同步驟23,根據(jù)該特征標(biāo)簽權(quán)重將c條該待測(cè)單標(biāo)簽樣本的特征值按照步驟23中的公式進(jìn)行更新,生成第二數(shù)據(jù)集;步驟33:通過計(jì)算該第二數(shù)據(jù)集中每條待測(cè)單標(biāo)簽樣本與該第一數(shù)據(jù)集中每條原始單標(biāo)簽樣本之間的距離,依次為每條該待測(cè)單標(biāo)簽樣本預(yù)測(cè)一個(gè)標(biāo)簽,生成預(yù)測(cè)標(biāo)簽集,預(yù)測(cè)方法包括:步驟331:按照以下公式計(jì)算某條待測(cè)單標(biāo)簽樣本與該第一數(shù)據(jù)集中的各個(gè)樣本的距離:dist(xi,xj)表示的是樣本xi和xj之間的距離,其是隨著sim(xi,xj)變化的單調(diào)遞減函數(shù),sim(xi,xj)則是用來求兩個(gè)樣本之間的相似度的,分子是兩個(gè)樣本向量的內(nèi)積,分母為兩個(gè)樣本向量長(zhǎng)度的乘積,取值范圍為[-1,+1],值越大,說明兩條樣本越相似,σ為一個(gè)大于1的常數(shù),用于調(diào)節(jié)函數(shù)中的變化趨勢(shì)。由于dist(xi,xj)是隨著sim(xi,xj)變化的單調(diào)遞減函數(shù),因而sim(xi,xj)越大則dist(xi,xj)越小,也就是說兩條樣本越相似其距離越小,越不相似,距離則越遠(yuǎn)。另外,該距離公式對(duì)標(biāo)簽之間的相關(guān)性也有一定的體現(xiàn),由指數(shù)函數(shù)特性可以看出,sim(xi,xj)在區(qū)間[-1,0]上比在區(qū)間[0,+1]上導(dǎo)致函數(shù)dist(xi,xj)的變化趨勢(shì)大,這也就說明兩條樣本越相似,其距離的變化趨勢(shì)就越小,樣本的標(biāo)簽也就可能越相關(guān)?,F(xiàn)有技術(shù)中的距離公式只是用sim(x,y)函數(shù)來表示距離,而本發(fā)明的改進(jìn)點(diǎn)在于將其投射到指數(shù)函數(shù)空間中,以更好的反應(yīng)樣本標(biāo)簽間的相關(guān)性。步驟332:取出距離該待測(cè)單標(biāo)簽樣本最近的k條原始單標(biāo)簽樣本,并將該k條原始單標(biāo)簽樣本中出現(xiàn)次數(shù)最多的標(biāo)簽種類,作為待測(cè)單標(biāo)簽樣本的預(yù)測(cè)標(biāo)簽。步驟34:根據(jù)該預(yù)測(cè)標(biāo)簽集中各標(biāo)簽類別出現(xiàn)的次數(shù),確定該待測(cè)樣本的標(biāo)簽集合,如圖2所示,方法包括:步驟341:統(tǒng)計(jì)該預(yù)測(cè)標(biāo)簽集中各標(biāo)簽類別出現(xiàn)的次數(shù),并按照以下公式計(jì)算各個(gè)預(yù)測(cè)標(biāo)簽出現(xiàn)的后驗(yàn)概率:其中t是步驟11中的原始數(shù)據(jù)集,h(xiv)為待預(yù)測(cè)樣本xi拆分成的c條待測(cè)單標(biāo)簽樣本中的第v條樣本的預(yù)測(cè)標(biāo)簽;步驟342:判斷各個(gè)標(biāo)簽的后驗(yàn)概率p(lc|t)是否大于等于預(yù)設(shè)閾值若是,則將該預(yù)測(cè)標(biāo)簽加入結(jié)果標(biāo)簽集合中,否則,則不考慮。步驟343:將步驟343生成的結(jié)果標(biāo)簽集合輸出,作為該待測(cè)樣本的標(biāo)簽集合,也就是該待測(cè)樣本的預(yù)測(cè)結(jié)果。下面根據(jù)圖示將更具體地描述本發(fā)明提出的適用于多標(biāo)簽分類的ml-knn改進(jìn)方法的實(shí)施步驟:步驟1:計(jì)算特征標(biāo)簽權(quán)重,其實(shí)現(xiàn)方法包括:步驟11:給定原始數(shù)據(jù)集t,t={(x1,y1),(x2,y2),…,(xi,yi)},其中xi=(xi(1),xi(2),…,xi(j))t,xi(j)是第i個(gè)樣本的第j個(gè)特征,xi(j)∈{aj1,aj2,…,ajsj},ajk是第j個(gè)特征可能取的第k個(gè)值,其中j和k的取值范圍為正整數(shù),j=1,2,…,m;k=1,2,…,sj;其中{l1,l2,…,lc}表示原始數(shù)據(jù)集中所有樣本所具有的標(biāo)簽集合,c表示共c種不同的類別標(biāo)簽,lc表示第c種標(biāo)簽。如醫(yī)療診斷數(shù)據(jù)集上,共有樣本1990條,每條樣本具有咳嗽,發(fā)熱,嘔吐等一系列特征,這些特征的取值范圍為{0,1},而每條樣本具有若干個(gè)疾病標(biāo)簽,數(shù)據(jù)集中共有的疾病標(biāo)簽總類數(shù)為72種,包括支氣管肺炎,呼吸道感染等。步驟12:按照以下公式計(jì)算特征標(biāo)簽權(quán)重,其中λ為平滑因子,防止出現(xiàn)權(quán)重為0的情況,在具體實(shí)施上,采用拉普拉斯平滑,λ取1,之所以取1相當(dāng)于在各個(gè)隨機(jī)變量的各個(gè)取值的頻數(shù)上計(jì)數(shù)一次,舉例來講,假設(shè)在實(shí)際的樣本數(shù)據(jù)集中,所有具有“呼吸道感染”標(biāo)簽的樣本可能都沒有“嘔吐”特征,那么如果不加入λ,特征“嘔吐”取值為1相對(duì)于標(biāo)簽“呼吸道感染”的特征標(biāo)簽權(quán)重則為0,這將會(huì)影響到后續(xù)的計(jì)算。而實(shí)際的樣本畢竟是有限的,λ取1則是做了一個(gè)貝葉斯估計(jì),相當(dāng)于說特征“嘔吐”取值為1在具有“呼吸道感染”的樣本中至少會(huì)出現(xiàn)一次。其中j=1,2,…,m;k=1,2,…,sj;c=1,2,…,c;λ>0,y表示的是樣本所具有的標(biāo)簽,i()表示0-1指示函數(shù),如果括號(hào)里內(nèi)容成立,則函數(shù)值為1,否則為0。p(x(j)=ajk|y=lc)即表示在類別標(biāo)簽為lc下特征x(j)取值為ajk的條件概率,也就是上文所說的特征標(biāo)簽權(quán)重。如在醫(yī)療診斷數(shù)據(jù)集上,假設(shè)具有標(biāo)簽支氣管肺炎的標(biāo)簽樣本數(shù)為100例,在這100例支氣管肺炎標(biāo)簽樣本中,具有特征咳嗽的特征樣本數(shù)為80例,而特征咳嗽取值范圍為{0,1},那么根據(jù)上述公式,特征咳嗽在支氣管肺炎這個(gè)標(biāo)簽上的特征標(biāo)簽權(quán)重為而特征不咳嗽則在支氣管肺炎這個(gè)標(biāo)簽上的特征標(biāo)簽權(quán)重為步驟2:原始數(shù)據(jù)集更新,如圖示1所示,實(shí)現(xiàn)方法如下:步驟21:給定原始數(shù)據(jù)集t與各個(gè)特征標(biāo)簽權(quán)重p(x(j)=ajk|y=lc);步驟22:依次將多標(biāo)簽樣本xi=(xi(1),xi(2),…,xi(j))t,根據(jù)其標(biāo)簽數(shù)的多少拆分為若干條單標(biāo)簽樣本,即多標(biāo)簽樣本若具有α個(gè)標(biāo)簽就拆分為α個(gè)單標(biāo)簽樣本,如以下公式所示:步驟23:對(duì)拆分后的每條單標(biāo)簽樣本(xi=(xi(1),xi(2),…,xi(j))t,yic=lc),根據(jù)其所具有的類別標(biāo)簽,利用特征標(biāo)簽權(quán)重進(jìn)行更新其特征的值,生成由單標(biāo)簽樣本組成的第一數(shù)據(jù)集,每一個(gè)特征的值更新方式如下:(xi(j))=ω1ajk+ω2p(x(j)=ajk|y=lc)其中,ω1和ω2為系數(shù),由實(shí)驗(yàn)確定。這里假設(shè)一條原始數(shù)據(jù)集樣本特征為{咳嗽,不發(fā)熱},其標(biāo)簽集合為{支氣管炎,支氣管肺炎},形式化后的特征向量為xi=(1,0)。又已知根據(jù)步驟1計(jì)算出的特征標(biāo)簽權(quán)重如下表所示:支氣管炎支氣管肺炎咳嗽0.89220.7941不咳嗽0.10780.2059發(fā)熱0.30390.8922不發(fā)熱0.79610.1078若取,ω1=0,ω2=1則多標(biāo)簽訓(xùn)練樣本{xi=(1,0),y={支氣管炎,支氣管肺炎}},被拆分為以下兩條單標(biāo)簽訓(xùn)練樣本:{xi=(0.8922,0.7961),y=支氣管炎},{xi=(0.7941,0.1078),y=支氣管肺炎},對(duì)步驟11中的醫(yī)療診斷數(shù)據(jù)集中的1990條多標(biāo)簽訓(xùn)練樣本進(jìn)行更新后則可能產(chǎn)生更多的單標(biāo)簽樣本,為了后續(xù)的說明,這里假定拆分后正好變?yōu)榱?000條單標(biāo)簽樣本。步驟3:樣本預(yù)測(cè),對(duì)一未知且包含多標(biāo)簽樣本的待測(cè)樣本進(jìn)行預(yù)測(cè),預(yù)測(cè)其可能的標(biāo)簽集合,如圖示2所示,實(shí)現(xiàn)方法如下:步驟31:.根據(jù)原始數(shù)據(jù)集所具有的標(biāo)簽總類數(shù)c.將該未知多標(biāo)簽樣本拆分為c個(gè)待測(cè)單標(biāo)簽樣本;假設(shè)給定一個(gè)未知的醫(yī)學(xué)診斷樣本,根據(jù)具體實(shí)施步驟中11提到的醫(yī)療診斷數(shù)據(jù)集,那么這條未知的樣本首先會(huì)被拆分為72條未知的待測(cè)單標(biāo)簽樣本。步驟32:同步驟23,將該待測(cè)單標(biāo)簽樣本的特征值按照步驟23中的公式進(jìn)行更新,即對(duì)步驟31中的72條待測(cè)單標(biāo)簽樣本進(jìn)行特征更新。步驟33:根據(jù)該第一數(shù)據(jù)集依次為每條該待測(cè)單標(biāo)簽樣本預(yù)測(cè)一個(gè)標(biāo)簽,生成包含c個(gè)標(biāo)簽的預(yù)測(cè)標(biāo)簽集,在醫(yī)療診斷數(shù)據(jù)集上,即分別對(duì)每條待測(cè)單標(biāo)簽樣本進(jìn)行預(yù)測(cè),預(yù)測(cè)方法如下:步驟331:按照以下公式計(jì)算某條待預(yù)測(cè)的待測(cè)單標(biāo)簽樣本與該第一數(shù)據(jù)集中的各個(gè)樣本的距離,在醫(yī)療診斷數(shù)據(jù)集上,即計(jì)算步驟32中的每條待測(cè)單標(biāo)簽樣本與步驟23中的5000條原始單標(biāo)簽樣本之間的距離:dist(xi,xj)表示的是待測(cè)單標(biāo)簽樣本xi和原始單標(biāo)簽樣本xj之間的距離,其是隨著sim(xi,xj)變化的單調(diào)遞減函數(shù),sim(xi,xj)則是用來求兩個(gè)樣本之間的相似度的,分子是兩個(gè)樣本向量的內(nèi)積,分母為兩個(gè)樣本向量長(zhǎng)度的乘積,取值范圍為[-1,+1],值越大,說明兩條樣本越相似。由于dist(xi,xj)是隨著sim(xi,xj)變化的單調(diào)遞減函數(shù),因而sim(xi,xj)越大則dist(xi,xj)越小,也就是說兩條樣本越相似其距離越小,越不相似,距離則越遠(yuǎn)。另外,該距離公式對(duì)標(biāo)簽之間的相關(guān)性也有一定的體現(xiàn),由指數(shù)函數(shù)特性可以看出,sim(xi,xj)在區(qū)間[-1,0]上比在區(qū)間[0,+1]上導(dǎo)致函數(shù)dist(xi,xj)的變化趨勢(shì)更大,這也就說明兩條樣本越相似,其距離的變化趨勢(shì)就越小,樣本的標(biāo)簽之間也就可能越相關(guān)。步驟332:取出距離該待測(cè)單標(biāo)簽樣本最近的k條原始單標(biāo)簽樣本,統(tǒng)計(jì)該k條原始單標(biāo)簽樣本所具有的標(biāo)簽,在該k條原始單標(biāo)簽樣本所具有的標(biāo)簽中出現(xiàn)次數(shù)最多的標(biāo)簽種類,即為待測(cè)單標(biāo)簽樣本的預(yù)測(cè)標(biāo)簽。在醫(yī)療診斷數(shù)據(jù)集上,假定k取5,如果距離當(dāng)前的待測(cè)單標(biāo)簽樣本最近5個(gè)單標(biāo)簽訓(xùn)練樣本的標(biāo)簽分別為[支氣管肺炎,支氣管炎,支氣管肺炎,呼吸道感染,支氣管肺炎],那么當(dāng)前的待測(cè)單標(biāo)簽樣本的預(yù)測(cè)標(biāo)簽即為支氣管肺炎。步驟34:待預(yù)測(cè)樣本的標(biāo)簽集合的確定,方法如下:步驟341:統(tǒng)計(jì)步驟33中待預(yù)測(cè)樣本拆分成的c條待測(cè)單標(biāo)簽樣本的預(yù)測(cè)標(biāo)簽中各個(gè)類別標(biāo)簽出現(xiàn)的次數(shù),在醫(yī)療診斷數(shù)據(jù)上,則會(huì)有72個(gè)預(yù)測(cè)結(jié)果,即統(tǒng)計(jì)這72個(gè)預(yù)測(cè)結(jié)果中,各個(gè)疾病標(biāo)簽出現(xiàn)的次數(shù)。步驟342:按照以下公式計(jì)算各個(gè)標(biāo)簽出現(xiàn)的后驗(yàn)概率:其中t是步驟11中的原始數(shù)據(jù)集,h(xiv)為待預(yù)測(cè)樣本xi拆分成的c條單標(biāo)簽樣本中的第v條樣本的預(yù)測(cè)標(biāo)簽,在醫(yī)療診斷數(shù)據(jù)上,假設(shè)得到的72條預(yù)測(cè)結(jié)果中有30個(gè)支氣管肺炎,那么疾病支氣管肺炎出現(xiàn)的后驗(yàn)概率即為步驟343:判斷各個(gè)標(biāo)簽的后驗(yàn)概率p(lc|t)是否大于等于閾值實(shí)施過程中值常常根據(jù)預(yù)測(cè)效果進(jìn)行確定,若p(lc|t)大于等于閾值則將該標(biāo)簽加入待預(yù)測(cè)樣本的標(biāo)簽集合中,否則,則不考慮。步驟344:將步驟343生成的預(yù)測(cè)標(biāo)簽集合輸出,作為原始待預(yù)測(cè)多標(biāo)簽樣本的預(yù)測(cè)結(jié)果。在醫(yī)療診斷數(shù)據(jù)集上,如果步驟33中的72個(gè)預(yù)測(cè)結(jié)果中,還有20個(gè)呼吸道感染,15個(gè)支氣管炎,7個(gè)哮喘,取值為0.2,那么最終預(yù)測(cè)的標(biāo)簽集合為{支氣管肺炎,呼吸道感染,支氣管炎}。以下為與上述方法實(shí)施例對(duì)應(yīng)的系統(tǒng)實(shí)施例,本實(shí)施方式可與上述實(shí)施方式互相配合實(shí)施。上述施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在上述實(shí)施方式中。本發(fā)明還提出了一種適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中包括如下模塊:特征標(biāo)簽權(quán)重計(jì)算模塊:用于獲取原始數(shù)據(jù)集,該原始數(shù)據(jù)集包括多條樣本,其中每條樣本具有多類標(biāo)簽和多類特征,在該原始數(shù)據(jù)集中統(tǒng)計(jì)每類標(biāo)簽的樣本總數(shù),作為標(biāo)簽樣本數(shù),在每類標(biāo)簽的樣本中統(tǒng)計(jì)每類特征的樣本總數(shù),作為特征樣本數(shù),并根據(jù)該標(biāo)簽樣本數(shù)和該特征樣本數(shù)計(jì)算特征標(biāo)簽權(quán)重,其中每個(gè)特征對(duì)應(yīng)一個(gè)特征值;樣本拆分模塊:將該原始數(shù)據(jù)集中每條樣本拆分為多個(gè)具有單一標(biāo)簽的原始單標(biāo)簽樣本,并根據(jù)該特征標(biāo)簽權(quán)重對(duì)每條該原始單標(biāo)簽樣本的特征值進(jìn)行更新,生成第一數(shù)據(jù)集;待測(cè)樣本預(yù)測(cè)模塊:獲取待預(yù)測(cè)的待測(cè)樣本,將該待測(cè)樣本拆分為具有單一標(biāo)簽的待測(cè)單標(biāo)簽樣本,根據(jù)該第一數(shù)據(jù)集依次對(duì)該待測(cè)單標(biāo)簽樣本的標(biāo)簽進(jìn)行預(yù)測(cè),確定該待測(cè)樣本的標(biāo)簽集合。該適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中該待測(cè)樣本預(yù)測(cè)模塊包括:統(tǒng)計(jì)模塊:統(tǒng)計(jì)該原始數(shù)據(jù)集共涉及的標(biāo)簽類別數(shù)c,將該未知多標(biāo)簽樣本拆分為c個(gè)待測(cè)單標(biāo)簽樣本;更新模塊:根據(jù)該特征標(biāo)簽權(quán)重將c個(gè)該待測(cè)單標(biāo)簽樣本的特征值進(jìn)行更新,生成第二數(shù)據(jù)集;標(biāo)簽預(yù)測(cè)模塊:通過計(jì)算該第二數(shù)據(jù)集中每條待測(cè)單標(biāo)簽樣本與該第一數(shù)據(jù)集中每條原始單標(biāo)簽樣本之間的距離,依次為每條該待測(cè)單標(biāo)簽樣本預(yù)測(cè)一個(gè)預(yù)測(cè)標(biāo)簽,并將所有該預(yù)測(cè)標(biāo)簽集合為預(yù)測(cè)標(biāo)簽集;標(biāo)簽集合模塊:根據(jù)該預(yù)測(cè)標(biāo)簽集中各標(biāo)簽類別出現(xiàn)的次數(shù),確定該待測(cè)樣本的標(biāo)簽集合。該適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中該標(biāo)簽預(yù)測(cè)模塊包括:距離計(jì)算模塊:計(jì)算該待測(cè)單標(biāo)簽樣本與第一數(shù)據(jù)集中的各個(gè)該原始單標(biāo)簽樣本的距離;篩選模塊:根據(jù)該距離取出距該待測(cè)單標(biāo)簽樣本最近的k條原始單標(biāo)簽樣本,并篩選出該k條原始單標(biāo)簽樣本中出現(xiàn)次數(shù)最多的標(biāo)簽種類,作為該待測(cè)單標(biāo)簽樣本的預(yù)測(cè)標(biāo)簽。該適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中該標(biāo)簽集合模塊還包括:計(jì)算各預(yù)測(cè)標(biāo)簽出現(xiàn)的后驗(yàn)概率,若該后驗(yàn)概率大于等于預(yù)設(shè)閾值,則將該預(yù)測(cè)標(biāo)簽加入結(jié)果標(biāo)簽集合中,并將該結(jié)果標(biāo)簽集合作為該待測(cè)樣本的標(biāo)簽集合。該適用于多標(biāo)簽分類的ml-knn改進(jìn)系統(tǒng),其中特征標(biāo)簽權(quán)重計(jì)算模塊中該特征值的取值范圍為{0,1}。雖然本發(fā)明以上述實(shí)施例公開,但具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明,任何本
技術(shù)領(lǐng)域:
技術(shù)人員,在不脫離本發(fā)明的構(gòu)思和范圍內(nèi),可作一些的變更和完善,故本發(fā)明的權(quán)利保護(hù)范圍以權(quán)利要求書為準(zhǔn)。當(dāng)前第1頁(yè)12