本發(fā)明屬于數(shù)據(jù)挖掘領(lǐng)域,尤其涉及一種面向大數(shù)據(jù)中稀有類數(shù)據(jù)的快速查詢技術(shù)。
背景技術(shù):
在現(xiàn)實(shí)世界里,大數(shù)據(jù)中經(jīng)常包含一些數(shù)據(jù)樣本較少但卻具有重要價值的稀有類。例如在商業(yè)活動過程中,雖然絕大多數(shù)的交易行為都是合法的,但是其中仍然包括一些虛假信息的交易數(shù)據(jù);在大量的網(wǎng)絡(luò)訪問的過程中,雖然絕大多數(shù)的網(wǎng)絡(luò)請求都是合理的,但是不排除一些利用系統(tǒng)漏洞進(jìn)行網(wǎng)絡(luò)攻擊的行為。在實(shí)際應(yīng)用中,這些稀有類數(shù)據(jù)樣本常常被偶然發(fā)現(xiàn)或者是通過一些稀有類檢測技術(shù)所偵察到,當(dāng)發(fā)現(xiàn)了少量的稀有類樣本后,隨之產(chǎn)生的問題是如何利用這些少量的稀有類數(shù)據(jù)樣本對數(shù)據(jù)集中的稀有類數(shù)據(jù)進(jìn)行快速查詢。
對于稀有類的查詢,雖然有稀有類分類和稀有類聚類等相關(guān)的技術(shù)可以找出所有的稀有類數(shù)據(jù),但是稀有類分類技術(shù)需要大量已知的稀有類數(shù)據(jù)作為訓(xùn)練集來進(jìn)行分類器的訓(xùn)練,而實(shí)際生活中這些數(shù)據(jù)是難以獲取的,稀有類聚類技術(shù)雖然不需要訓(xùn)練數(shù)據(jù),但是在聚類過程中沒有利用一些已知的有價值稀有類數(shù)據(jù)信息,可能造成結(jié)果的不準(zhǔn)確。因而如何利用僅有的少量稀有類數(shù)據(jù)找到所有稀有類數(shù)據(jù)是一個重要且極具挑戰(zhàn)的問題。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種面向大數(shù)據(jù)中稀有類數(shù)據(jù)的快速查詢技術(shù)。首先通過已知的一個稀有類樣本點(diǎn)和一個較小的k近鄰值來找到一個小范圍的稀有類區(qū)域,然后根據(jù)這個小范圍區(qū)域計算出新的k值和距離閾值,再根據(jù)新的k和距離閾值來繼續(xù)尋找新的稀有類數(shù)據(jù)點(diǎn)。
本發(fā)明所采用的技術(shù)方案是:
一種面向大數(shù)據(jù)中稀有類數(shù)據(jù)的快速查詢技術(shù),其特征在于,包括以下步驟:
步驟1:對于給定的數(shù)據(jù)集為d,首先將d中的每個點(diǎn)標(biāo)記為未知點(diǎn)。使用集合n記錄用來尋找稀有類的數(shù)據(jù)集合,初始時n中僅包含一個已知的稀有類數(shù)據(jù)點(diǎn)n0,即n={n0}。設(shè)置k為較小的值k0,設(shè)置距離閾值τd為一個正數(shù),該正數(shù)大于數(shù)據(jù)集d中任意兩點(diǎn)之間的最大歐式距離;步驟2:對于n中的每個點(diǎn)ni,在d中找到與ni最近的k個點(diǎn)(稱為ni的k近鄰),記為knn(ni),將n中所有點(diǎn)的k近鄰組成集合knn(n),然后在d中找到knn(n)中每個點(diǎn)的k近鄰,將knn(n)中所有點(diǎn)的k近鄰組成集合knn(knn(n)),將n中的點(diǎn)標(biāo)為已知點(diǎn),并對n中每個點(diǎn)ni對應(yīng)的knn(ni)中的點(diǎn)進(jìn)行篩選,直至篩選的次數(shù)達(dá)到設(shè)定的閾值τi;
步驟3:根據(jù)篩選后的knn(n)結(jié)果進(jìn)行選擇:
選擇步驟一:若篩選后的knn(n)中的點(diǎn)包含未知點(diǎn),則更新n中每個點(diǎn)的坐標(biāo),并記錄下該點(diǎn)已更新的次數(shù),若更新次數(shù)超過給定閾值τt,則該點(diǎn)的坐標(biāo)不再更新,初始化一個空集合n’,將更新后得到的新坐標(biāo)點(diǎn)加入集合n’,并更新n=knn(n)∪n',然后返回步驟2;n中點(diǎn)的坐標(biāo)更新規(guī)則為:
其中,(ni)old表示點(diǎn)ni的原始坐標(biāo);(ni)new表示更新后的坐標(biāo);nij表示點(diǎn)ni的k近鄰knn(ni)中的第j個點(diǎn);knnj(ni)表示點(diǎn)nij的坐標(biāo);d(nij,ni)表示點(diǎn)ni和點(diǎn)nij之間的歐式距離;
選擇步驟二:若篩選后的knn(n)中的點(diǎn)均為已知點(diǎn)并且k等于k0,將d中所有已知點(diǎn)加入集合r;將k的值逐步增加,每次增加1,直至r在新的k值下找到的k近鄰集合knn(r)中包含有未知點(diǎn),并記錄此時的k值,記為knew,更新k=knew;然后對于r中的每個點(diǎn)nr,在d中找到nr的k近鄰knn(nr),計算nr和knn(nr)中每個點(diǎn)的距離,并計算這些距離的均值,記錄最大的均值,記為
選擇步驟三:若篩選后的knn(n)中的點(diǎn)均為已知點(diǎn)并且k不等于k0,則算法停止,然后將r集合中的數(shù)據(jù)作為最后找到的稀有類結(jié)果返回。
在上述的一種面向大數(shù)據(jù)中稀有類數(shù)據(jù)的快速查詢技術(shù),所述的步驟2中,對n中每個點(diǎn)ni的k近鄰knn(ni)中的點(diǎn)進(jìn)行篩選的過程如下:
步驟2.1:對于knn(ni)中的每個數(shù)據(jù)點(diǎn)nij,在d中找到nij的k近鄰knn(nij),計算nij與knn(nij)中每個點(diǎn)的距離,并計算這些距離的均值,記為
步驟2.2:使用集合x={x1,x2,...,xs}來代表knn(ni),xi代表knn(ni)中的第i個數(shù),s代表knn(ni)包含的數(shù)據(jù)個數(shù);構(gòu)造一個s×s的矩陣a,a中的元素aij表示數(shù)據(jù)xi和xj之間的相似性similarity(xi,xj);初始化一個s維的向量x,x中每個元素為1/s,即x={1/s,1/s,...,1/s};xi和xj之間相似性similarity(xi,xj)的計算為:
其中similarity(xi,xj)表示xi,xj之間的相似性值;d(xi,xj)表示xi,xj之間的歐式距離;knn(xl)t表示xl的k近鄰集合中的第t個點(diǎn);
步驟2.3:初始化三個空集合x+,x-,x0,然后對每個i∈{1,2,...,s},初始化一個對應(yīng)的向量ei,ei的第i個元素為1,其余元素為0,計算ei和x的親和度π(ei,x);若π(ei,x)>0,則將i加入到集合x+;若π(ei,x)<0,將i加入到x-;若π(ei,x)=0,將i加入到x0;記錄下使得π(ei,x)的絕對值最大對應(yīng)的i,記為imax;親和度π(ei,x)的計算為:
其中
步驟2.4:構(gòu)造一個s維的向量y,y的取值由下列規(guī)則確定:
步驟2.5:若y=x,找出x中大于0的位置,并將x中在這些位置上的數(shù)據(jù)作為篩選得到的結(jié)果rx,即rx={xi|xi∈x,xi>0},篩選過程結(jié)束;否則更新x,并返回步驟2.3;更新x的方法為:
其中
在上述的一種面向大數(shù)據(jù)中稀有類數(shù)據(jù)的快速查詢技術(shù),所述步驟1中,3≤k0≤5且k0為整數(shù)。
在上述的一種面向大數(shù)據(jù)中稀有類數(shù)據(jù)的快速查詢技術(shù),所述步驟2中,1≤τi≤3且τi為整數(shù)。
在上述的一種面向大數(shù)據(jù)中稀有類數(shù)據(jù)的快速查詢技術(shù),所述步驟3中,m∈[1,10],1≤τt≤50且τt為整數(shù)。
因此,本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明能夠利用已知的較少的稀有類樣本找到所有的稀有類,即利用了已知的稀有類信息,又避免了要尋找大量稀有類數(shù)據(jù)作為訓(xùn)練集,從而有效準(zhǔn)確地找到所有稀有類。
附圖說明
圖1是本發(fā)明實(shí)施例的流程圖。
圖2a是本發(fā)明實(shí)施例的測試數(shù)據(jù)圖。
圖2b是本發(fā)明實(shí)施例的測試數(shù)據(jù)中稀有類數(shù)據(jù)的詳細(xì)分布圖。
圖3a是本發(fā)明實(shí)施例的實(shí)驗(yàn)結(jié)果圖。
圖3b是本發(fā)明實(shí)施例的實(shí)驗(yàn)結(jié)果的稀有類數(shù)據(jù)的詳細(xì)分布圖。
具體實(shí)施方式
為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供了一種面向大數(shù)據(jù)中稀有類數(shù)據(jù)的快速查詢技術(shù),給定一個稀有類數(shù)據(jù)點(diǎn),然后根據(jù)這個已知的稀有類樣本點(diǎn)從給定的數(shù)據(jù)集中找出所有的稀有類數(shù)據(jù)。
請見圖1,本發(fā)明包括以下步驟:
步驟1:對于給定的數(shù)據(jù)集為d,首先將d中的每個點(diǎn)標(biāo)記為未知點(diǎn)。使用集合n記錄用來尋找稀有類的數(shù)據(jù)集合,初始時n中僅包含一個已知的稀有類數(shù)據(jù)點(diǎn)n0,即n={n0}。設(shè)置k為較小的值k0=4,設(shè)置距離閾值τd為一個正數(shù),該正數(shù)大于數(shù)據(jù)集d中任意兩點(diǎn)之間的最大歐式距離;
步驟2:對于n中的每個點(diǎn)ni,在d中找到與ni最近的k個點(diǎn)(稱為ni的k近鄰),記為knn(ni),將n中所有點(diǎn)的k近鄰組成集合knn(n),然后在d中找到knn(n)中每個點(diǎn)的k近鄰,將knn(n)中所有點(diǎn)的k近鄰組成集合knn(knn(n)),將n中的點(diǎn)標(biāo)為已知點(diǎn),并對n中每個點(diǎn)ni對應(yīng)的knn(ni)中的點(diǎn)進(jìn)行2次篩選。
步驟3:根據(jù)篩選后的knn(n)進(jìn)行選擇:
若篩選后的knn(n)中的點(diǎn)包含未知點(diǎn),則更新n中每個點(diǎn)的坐標(biāo),并記錄下該點(diǎn)已更新的次數(shù),若更新次數(shù)超過10次,則該點(diǎn)的坐標(biāo)不再更新,初始化一個空集合n’,將更新后得到的新坐標(biāo)點(diǎn)加入集合n’,并更新n=knn(n)∪n',然后返回步驟2。n中點(diǎn)的坐標(biāo)更新規(guī)則為:
其中,(ni)old表示點(diǎn)ni的原始坐標(biāo);(ni)new表示更新后的坐標(biāo);nij表示點(diǎn)ni的k近鄰knn(ni)中的第j個點(diǎn);knnj(ni)表示點(diǎn)nij的坐標(biāo);d(nij,ni)表示點(diǎn)ni和點(diǎn)nij之間的歐式距離。
若篩選后的knn(n)中的點(diǎn)均為已知點(diǎn)并且k等于k0,將d中所有已知點(diǎn)加入集合r。將k的值逐步增加,每次增加1,直至r在新的k值下找到的k近鄰集合knn(r)中包含有未知點(diǎn),并記錄此時的k值,記為knew,更新k=knew。然后對于r中的每個點(diǎn)nr,在d中找到nr的k近鄰knn(nr),計算nr和knn(nr)中每個點(diǎn)的距離,并計算這些距離的均值,記錄最大的均值,記為
若篩選后的knn(n)中的點(diǎn)均為已知點(diǎn)并且k不等于k0,則算法停止,然后將r集合中的數(shù)據(jù)作為最后找到的稀有類結(jié)果返回。
在步驟2中,對n中每個點(diǎn)ni的k近鄰knn(ni)中的點(diǎn)進(jìn)行篩選的過程如下:
步驟2.1:對于knn(ni)中的每個數(shù)據(jù)點(diǎn)nij,在d中找到nij的k近鄰knn(nij),計算nij與knn(nij)中每個點(diǎn)的距離,并計算這些距離的均值,記為
步驟2.2:使用集合x={x1,x2,...,xs}來代表knn(ni),xi代表knn(ni)中的第i個數(shù),s代表knn(ni)包含的數(shù)據(jù)個數(shù)。構(gòu)造一個s×s的矩陣a,a中的元素aij表示數(shù)據(jù)xi和xj之間的相似性similarity(xi,xj)。初始化一個s維的向量x,x中每個元素為1/s,即x={1/s,1/s,...,1/s}。xi和xj之間相似性similarity(xi,xj)的計算為:
其中similarity(xi,xj)表示xi,xj之間的相似性值;d(xi,xj)表示xi,xj之間的歐式距離;knn(xl)t表示xl的k近鄰集合中的第t個點(diǎn)。
步驟2.3:初始化三個空集合x+,x-,x0,然后對每個i∈{1,2,...,s},初始化一個對應(yīng)的向量ei,ei的第i個元素為1,其余元素為0,計算ei和x的親和度π(ei,x)。若π(ei,x)>0,則將i加入到集合x+;若π(ei,x)<0,將i加入到x-;若π(ei,x)=0,將i加入到x0。記錄下使得π(ei,x)的絕對值最大對應(yīng)的i,記為imax。親和度π(ei,x)的計算為:
其中
步驟2.4:構(gòu)造一個s維的向量y,y的取值由下列規(guī)則確定:
步驟2.5:若y=x,找出x中大于0的位置,并將x中在這些位置上的數(shù)據(jù)作為篩選得到的結(jié)果rx,即rx={xi|xi∈x,xi>0},篩選過程結(jié)束。否則更新x,并返回步驟2.3。更新x的方法為:
其中
本發(fā)明研究了一種面向大數(shù)據(jù)中稀有類數(shù)據(jù)的快速查詢技術(shù),通過利用一個已知的稀有類點(diǎn),使用逐步查詢k近鄰的方法來找到所有的稀有類,避免了訓(xùn)練樣本的收集,同時利用了已知的稀有類信息,從而有效準(zhǔn)確地找到所有的稀有類數(shù)據(jù)。
應(yīng)當(dāng)理解的是,本說明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù),上述針對較佳實(shí)施例的描述較為詳細(xì),并不能因此而認(rèn)為是對本發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā)明的請求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。