本發(fā)明涉及一種數(shù)據(jù)分類方法。
背景技術(shù):
人工免疫系統(tǒng)是對(duì)生物免疫系統(tǒng)的模擬,具有學(xué)習(xí)能力、記憶能力和強(qiáng)大的信息處理能力。AIS由生物免疫系統(tǒng)啟發(fā)而來,借鑒免疫系統(tǒng)的功能和原理并應(yīng)用于復(fù)雜問題的解決,是最早的人工免疫系統(tǒng)模型。否定選擇算法(NSA:Negative selection algorithm)是人工免疫理論中的一種重要的檢測(cè)器生成算法,它由T細(xì)胞在胸腺中成熟的模型而來,具有識(shí)別自體和異常的能力。否定選擇算法(NNSA)最初由FORREST S于1994年提出,NNSA基于字符串表示,但是受計(jì)算開銷的影響,限制了應(yīng)用。RNSA將檢測(cè)器和抗原的屬性歸一化到N維實(shí)值范圍,使得應(yīng)用問題可以在真實(shí)值空間中定義和研究,并使得數(shù)據(jù)在二維空間中表示,具有可視化的特點(diǎn)。但傳統(tǒng)的RNSA采用半徑固定的檢測(cè)器,這使得檢測(cè)器的個(gè)數(shù)較多,并且有很多黑洞使得檢測(cè)器的覆蓋率不理想??勺儼霃降腣-detector算法由Zhou Ji提出,利用檢測(cè)器中心和自我樣本之間的距離,改變非自我檢測(cè)器的半徑,從而解決了傳統(tǒng)RNSA黑洞普遍的情況,減少了檢測(cè)器的數(shù)量。深層訓(xùn)練否定選擇算法(further training NSA)是在V-detector的基礎(chǔ)上生成了自我檢測(cè)器,通過樣本點(diǎn)和自我檢測(cè)器、非自我檢測(cè)器之間的距離共同判斷樣本點(diǎn)是否異常,從而提高檢測(cè)率、減小虛警率。
但是目前所存在的檢測(cè)器都是在自我樣本的基礎(chǔ)上通過距離計(jì)算生成檢測(cè)器,這就使得大量的時(shí)間浪費(fèi)在了距離計(jì)算上,雖然FtNSA 生成了自我檢測(cè)器,但是自我檢測(cè)器生成是在非自我檢測(cè)器生成之后,雖然減少了對(duì)檢測(cè)樣本檢測(cè)的時(shí)間,但是并沒有減少非自我檢測(cè)器距離計(jì)算的開銷時(shí)間。另外目前所存在的檢測(cè)方法大部分都是針對(duì)純自我樣本,沒有對(duì)噪聲進(jìn)行篩選的過程,一旦有噪聲的存在,實(shí)驗(yàn)的檢測(cè)率將會(huì)明顯的下降。而在實(shí)際的生活中,所給出的自我樣本并不可能是百分百正確的。
技術(shù)實(shí)現(xiàn)要素:
為了克服已有基于否定選擇算法的數(shù)據(jù)分類方法的無法排除噪聲的影響、時(shí)間開銷較大、誤判率較高的不足,本發(fā)明提供了一種有效排除噪聲的影響、時(shí)間開銷較小、誤判率較低的基于自體集密度搜尋與劃分聚類的否定選擇算法的數(shù)據(jù)分類方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種基于自體集密度搜尋與劃分聚類的否定選擇算法的數(shù)據(jù)分類方法,所述數(shù)據(jù)分類方法包括如下步驟:
1)根據(jù)數(shù)據(jù)集的密度峰值計(jì)算出聚類中心并刪除噪聲;
2)根據(jù)非噪聲自我樣本生成自我檢測(cè)器;
3)根據(jù)自我檢測(cè)器生成非自我檢測(cè)器;
4)同時(shí)使用自我檢測(cè)器和非自我檢測(cè)器判斷檢測(cè)數(shù)據(jù)樣本是否異常,實(shí)現(xiàn)數(shù)據(jù)分類。
進(jìn)一步,所述步驟1)中,聚類過程如下:
1.1)按照公式計(jì)算數(shù)據(jù)集中每一個(gè)點(diǎn)的密度ρi和δi,ρi為第i個(gè)數(shù)據(jù)點(diǎn)的密度,δi為第i個(gè)數(shù)據(jù)點(diǎn)的最鄰近更高密度距離;
1.2)畫出決策圖,根據(jù)聚類中心自動(dòng)確定策略確定聚類中心,并且對(duì)數(shù)據(jù)集中的每個(gè)點(diǎn)進(jìn)行劃分;
1.3)按照DSC算法計(jì)算每個(gè)類簇的邊界密度上限ρib,并按照公式對(duì)ρib再次進(jìn)行計(jì)算;
1.4)將每個(gè)類簇中密度低于ρib的點(diǎn)標(biāo)識(shí)為噪聲。
再進(jìn)一步,所述步驟1.3)中,根據(jù)公式(5)(6)對(duì)ρb再次進(jìn)行計(jì)算:
ρib=ρi min(IF ρib=0) (5)
其中,ρib是DSC算法得出的第i個(gè)類簇邊界最大密度,ρi max為第i個(gè)類簇的最大密度,ρib'為再次計(jì)算后所獲得的噪聲密度閾值,hc為噪聲密度閾值控制參數(shù)。
更進(jìn)一步,所述步驟2)中,所述自我檢測(cè)器生成過程如下:
2.1)對(duì)每一個(gè)不是噪聲的點(diǎn),生成自體半徑為RS的自我檢測(cè)器;
2.2)以每個(gè)聚類中心為圓心,以到最近噪聲的距離為半徑生成一個(gè)大范圍檢測(cè)器,并且將嵌入在這個(gè)大檢測(cè)器中的常半徑檢測(cè)器剔除;
2.3)按照(7)檢查重疊的常半徑檢測(cè)器,任意選擇一個(gè)進(jìn)行剔除;
其中,ci和cj為兩個(gè)自我檢測(cè)器的中心,Sij標(biāo)志自我檢測(cè)器i和自我檢測(cè)器j是否被判定為重疊,若Sij為1則表示兩個(gè)自我檢測(cè)器重疊,只要選擇其中一個(gè)剔除即可。
所述步驟3)中,非自我檢測(cè)器的生成過程如下:每采樣到一未被自我區(qū)域覆蓋的點(diǎn),判斷其是否與已有的非自我檢測(cè)器重疊。若不重疊,以該點(diǎn)為圓心,到自體區(qū)域的最短距離為半徑生成非自我檢測(cè) 器。采樣過程終止的條件與參照文獻(xiàn)1一致,參照文獻(xiàn)1:Z.Ji,D.Dasgupta,V-detector:An efficient negative selection algorithm with“probably adequate”detector age,Information Sciences 179(2009)1390–1406。
本發(fā)明的技術(shù)構(gòu)思為:由于大多數(shù)的NSA選擇算法都無法對(duì)噪聲進(jìn)行處理,一旦噪聲產(chǎn)生將對(duì)整個(gè)實(shí)驗(yàn)結(jié)果產(chǎn)生較大的影響。針對(duì)此問題本發(fā)明設(shè)計(jì)一種快速搜尋密度峰聚類方法利用聚類中心的密度比周圍的點(diǎn)高并且到密度更高的點(diǎn)距離十分遠(yuǎn)的特點(diǎn)對(duì)自我樣本進(jìn)行了處理,當(dāng)某一點(diǎn)到類聚中心的距離超過預(yù)定值,則判斷為噪聲。為了更好的說明此方法,給出如下定義。
定義1點(diǎn)i的局部密度ρi即為與點(diǎn)i的距離少于dc的點(diǎn)的個(gè)數(shù)。計(jì)算公式如公式(1)所示,其中dij是第點(diǎn)i和點(diǎn)j之間的歐氏距離,dc為截?cái)嗑嚯x參數(shù),由輸入?yún)?shù)t決定
但是在有些數(shù)據(jù)集中,每個(gè)點(diǎn)的密度估計(jì)可能會(huì)存在誤差,嚴(yán)重的時(shí)候會(huì)影響算法的效果。為此,需要一種更加精確的密度計(jì)算公式(2):
定義2聚類中心與密度更高點(diǎn)之間的距離δi公式如公式(3)所示。其中密度最高點(diǎn)的公式如公式(4)所示
定義5聚類中心被密度更小的點(diǎn)所包圍且與密度更高的點(diǎn)之間的距離很大。
定義6 ρb為每個(gè)類簇的邊界中密度最高的點(diǎn),類簇中密度高于ρb的被認(rèn)為是有用數(shù)據(jù),密度低于ρb的點(diǎn)被認(rèn)為是噪聲。
在正常計(jì)算時(shí),我們首先根據(jù)定義5得到聚類中心,即δi和ρi都很大的點(diǎn)為聚類中心。在聚類中心確定以后,每個(gè)點(diǎn)都分配給與其最鄰近更高密度的點(diǎn),提高的劃分的效率。但是考慮到并不是所有的點(diǎn)都將被分配到一個(gè)類簇,否則我們將無法區(qū)別噪聲和正常點(diǎn)。所以我們將會(huì)根據(jù)定義6對(duì)噪聲進(jìn)行初步區(qū)別。但是,這種噪聲判斷辦法存在一些問題:當(dāng)噪聲的數(shù)量比較少,分屬每個(gè)類簇的噪聲之間的距離都大于dc時(shí)或只有一個(gè)類簇時(shí),每個(gè)類簇的ρb不能被計(jì)算,即每個(gè)類簇的ρb都為0,也就是說,所有的點(diǎn)都是有用的,這顯然是不合理的。然后再根據(jù)公式(5)(6)對(duì)ρb再次進(jìn)行了計(jì)算。
ρib=ρi min(IF ρib=0) (5)
這里,ρib是DSC算法得出的第i個(gè)類簇邊界最大密度,ρi max為第i個(gè)類簇的最大密度,ρib'為再次計(jì)算后所獲得的噪聲密度閾值。在每個(gè)類簇中,密度高于ρib'的點(diǎn)為有用的點(diǎn),即正常的訓(xùn)練數(shù)據(jù),密度低于ρib'的點(diǎn)認(rèn)為是隱藏在訓(xùn)練數(shù)據(jù)中的異常樣本,也就是噪聲;hc為算法輸入?yún)?shù),用來調(diào)節(jié)噪聲密度閾值。
基于自體集密度搜尋與劃分聚類方法的否定選擇算法(Density search and clustering detector),簡稱DSC-NSA。該算法采用基于密度聚類算法對(duì)自體訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理,將訓(xùn)練數(shù)據(jù)進(jìn)行聚類分析,剔除噪聲并生成自我檢測(cè)器,然后根據(jù)自我檢測(cè)器生成非自我檢測(cè)器。實(shí)驗(yàn)表明,DSC-NSA算法確實(shí)可以排除噪聲對(duì)檢測(cè)器的影響、減少了 自我檢測(cè)器的個(gè)數(shù)、減小程序在距離計(jì)算上的時(shí)間開銷并在一定程度上減小了實(shí)驗(yàn)的誤判率。
本發(fā)明的有益效果主要表現(xiàn)在:有效排除噪聲的影響、時(shí)間開銷較小、誤判率較低。
附圖說明
圖1是自我集聚類流程圖。
圖2是自我檢測(cè)器生成流程圖。
圖3是自我檢測(cè)器的生成示意圖,其中,(a)是固定半徑RS自我檢測(cè)器,(b)是DSC-NSA算法生成的自我檢測(cè)器。
圖4是非自我檢測(cè)器生成流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。
參照?qǐng)D1~圖4,一種基于自體集密度搜尋與劃分聚類的否定選擇算法的數(shù)據(jù)分類方法,所述數(shù)據(jù)分類方法包括如下步驟:
1)根據(jù)數(shù)據(jù)集的密度峰值計(jì)算出聚類中心并刪除噪聲;
2)根據(jù)非噪聲自我樣本生成自我檢測(cè)器;
3)根據(jù)自我檢測(cè)器生成非自我檢測(cè)器;
4)同時(shí)使用自我檢測(cè)器和非自我檢測(cè)器判斷檢測(cè)數(shù)據(jù)樣本是否異常,實(shí)現(xiàn)數(shù)據(jù)分類。
參照?qǐng)D1和圖2,自體集聚類過程如下:
1.1)按照公式計(jì)算數(shù)據(jù)集中每一個(gè)點(diǎn)的ρi和δi,ρi為第i個(gè)數(shù)據(jù)點(diǎn)的密度,δi為第i個(gè)數(shù)據(jù)點(diǎn)的最鄰近更高密度距離;
1.2)畫出決策圖,根據(jù)聚類中心自動(dòng)確定策略確定聚類中心,并且對(duì)數(shù)據(jù)集中的每個(gè)點(diǎn)進(jìn)行劃分;
1.3)按照DSC算法計(jì)算每個(gè)類簇的邊界密度上限ρib,并按照公式和參數(shù)hc對(duì)ρib再次進(jìn)行計(jì)算;
1.4)將每個(gè)類簇中密度低于ρib的點(diǎn)標(biāo)識(shí)為噪聲。
S為數(shù)據(jù)集,hc為噪聲密度閾值控制參數(shù)。
由于FtNSA方法和V-detector方法的自我樣本的個(gè)數(shù)較多,在生成非自我檢測(cè)器的時(shí)候會(huì)有大量的時(shí)間消耗在距離計(jì)算上,所以本文在生成非自我檢測(cè)器之前先生成自我檢測(cè)器,以減少非自我檢測(cè)器的生成時(shí)間。首先以每個(gè)非噪聲的點(diǎn)為圓心,生成半徑為RS(RS為DSC-NSA算法的輸入?yún)?shù),與V-detector和FtNSA算法中的自體半徑一致)的固定半徑自我檢測(cè)器。然后,以聚類中心為圓心,以聚類中心到最近的噪聲點(diǎn)的距離為半徑,生成一個(gè)大圓,并且將完全鑲嵌在這個(gè)大圓里的無用常半徑自我檢測(cè)器剔除,這樣就大大減少自我檢測(cè)器的個(gè)數(shù)。最后根據(jù)定義7對(duì)自我檢測(cè)器的重疊部分進(jìn)行處理。
定義7 Sij標(biāo)志自我檢測(cè)器i和自我檢測(cè)器j是否被判定為重疊,若Sij為1則表示兩個(gè)自我檢測(cè)器重疊,我們只要選擇其中一個(gè)剔除即可。Sij的計(jì)算方法如公式(7)所示。其中ci和cj為兩個(gè)自我檢測(cè)器的中心.
實(shí)驗(yàn)效果如圖3所示。
本實(shí)施例的DSC-NSA(Density search and clustering detector)算法首先根據(jù)自體集的密度峰值計(jì)算出類聚中心并刪除噪聲。然后根據(jù)非噪聲自我樣本生成自我檢測(cè)器,再根據(jù)自我檢測(cè)器生成非自我檢測(cè)器,最后同時(shí)使用自我檢測(cè)器和非自我檢測(cè)器判斷檢測(cè)樣本是否異常。
采用固定半徑的自我檢測(cè)器,會(huì)導(dǎo)致大量重疊,尤其是在訓(xùn)練數(shù)據(jù) 密度很高的區(qū)域內(nèi),自我檢測(cè)器個(gè)數(shù)十分多,這在生成檢測(cè)器階段效率是很低的,以聚類中心為圓心的大圓很好的覆蓋了密度很高區(qū)域的自我檢測(cè)器,使自我檢測(cè)器大大減少;另外自體區(qū)域邊緣的檢測(cè)器個(gè)數(shù)也下降不少,DSC-NSA算法可以很好地將自體的個(gè)數(shù)降低,提高生成檢測(cè)器的效率。
自我檢測(cè)器生成流程如下:
2.1)對(duì)每一個(gè)不是噪聲的點(diǎn),生成自體半徑為RS的自我檢測(cè)器;
2.2)以每個(gè)聚類中心為圓心,以到最近噪聲的距離為半徑生成一個(gè)大范圍檢測(cè)器,并且將嵌入在這個(gè)大檢測(cè)器中的常半徑檢測(cè)器剔除;
2.3)按照(7)檢查重疊的常半徑檢測(cè)器,任意選擇一個(gè)進(jìn)行剔除。
非自我檢測(cè)器生成:無論是FtNSA還是V-detector算法,當(dāng)p=99%時(shí),由參照文獻(xiàn)1計(jì)算得到其生成的非自我檢測(cè)器的個(gè)數(shù)至少為n(500)個(gè)。這使得非自我檢測(cè)器的重疊率較高,無效的檢測(cè)器個(gè)數(shù)較多。為解決此類問題,提出檢測(cè)器終止條件,使得若連續(xù)出現(xiàn)x個(gè)非自我檢測(cè)器未被覆蓋,則將候選檢測(cè)器存入檢測(cè)器,來減少非自我檢測(cè)器個(gè)數(shù)。
參照?qǐng)D4,非自我檢測(cè)器生成過程如下:每采樣到一未被自我區(qū)域覆蓋的點(diǎn),判斷其是否與已有的非自我檢測(cè)器重疊。若不重疊,以該點(diǎn)為圓心,到自體區(qū)域的最短距離為半徑生成非自我檢測(cè)器。采樣過程終止的條件與參照文獻(xiàn)1一致。
本實(shí)施例采用簡單快速的檢測(cè)方案。在檢測(cè)時(shí)只使用異常檢測(cè)器,而不掃描自我檢測(cè)器,只要是被異常檢測(cè)器激活的對(duì)象都被認(rèn)為是異 常個(gè)數(shù),沒有被異常檢測(cè)器激活的對(duì)象被認(rèn)為是正常個(gè)體。
傳統(tǒng)的檢測(cè)器都是在自我樣本的基礎(chǔ)上通過距離計(jì)算生成檢測(cè)器,這就使得大量的時(shí)間浪費(fèi)在了距離計(jì)算上,并且在有噪聲的情況下檢測(cè)器的檢測(cè)率會(huì)有所下降。針對(duì)此類問題,本發(fā)明的基于自體集密度搜尋與劃分聚類方法的否定選擇算法(Density search and clustering detector),首先根據(jù)自體集的密度峰值計(jì)算出類聚中心并刪除噪聲。然后根據(jù)非噪聲自我樣本生成自我檢測(cè)器,再根據(jù)自我檢測(cè)器生成非自我檢測(cè)器,最后同時(shí)使用自我檢測(cè)器和非自我檢測(cè)器判斷檢測(cè)樣本是否異常。實(shí)驗(yàn)結(jié)果表明DSC-NSA方法確實(shí)可以排除噪聲對(duì)自我檢測(cè)器的干擾,與此同時(shí)增加了檢測(cè)率,減少了誤測(cè)率,并且減少了檢測(cè)器的個(gè)數(shù)。