本發(fā)明涉及一種大數(shù)據(jù)輪廓類的挖掘技術(shù),屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域。
背景技術(shù):
輪廓查詢技術(shù)是近年來數(shù)據(jù)庫(kù)與數(shù)據(jù)挖掘的一個(gè)研究重點(diǎn)和熱點(diǎn),這主要是因?yàn)樗谠S多領(lǐng)域有著廣泛的應(yīng)用,如:大數(shù)據(jù)分析、城市導(dǎo)航系統(tǒng)、多標(biāo)準(zhǔn)決策支持以及高維數(shù)據(jù)可視化等。給定大數(shù)據(jù)對(duì)象集合R={o1,…,on},其中每個(gè)對(duì)象oi(i∈[0,n])具有m個(gè)維度F={d1,…,dm},每個(gè)維度衡量它的一個(gè)子特征(比如距離,價(jià)格等),那么F上的輪廓查詢就是在R中找出一類對(duì)象集合R’,它滿足如下條件:且R’中每個(gè)對(duì)象不會(huì)在F所有維度上的取值均差于R中的某一對(duì)象。不難看出,通過輪廓查詢,用戶只需考慮屬于輪廓對(duì)象集合的對(duì)象,而不必關(guān)心那些被過濾掉的對(duì)象,這樣用戶就可以在小規(guī)模的輪廓對(duì)象集合上對(duì)自己感興趣的對(duì)象進(jìn)行選擇。
S Borzsonyi等人首次將輪廓查詢概念引入數(shù)據(jù)庫(kù)領(lǐng)域,并提出兩個(gè)正確性經(jīng)過嚴(yán)格證明的查詢算法:BNL(Block Nested Loops)和DC(Divide and Conquer)。假定對(duì)象全集為R,其中BNL算法通過O(|R|2)次對(duì)象間的比較來找出返回完整的輪廓對(duì)象集,而DC算法使用遞歸分區(qū)的方法來獲取查詢結(jié)果。P Godfrey等人從理論上給出BNL算法和DC算法的時(shí)間開銷,并提出一種基于外部排序的有效方法LSA(Lattice Skyline Algorithm)。LSA的時(shí)間復(fù)雜度可降為O(|R|log|R|+k|R|),其中k為維數(shù)。K Lee等人基于ZBtree索引樹來進(jìn)一步優(yōu)化LSA算法的處理效率,使其時(shí)間復(fù)雜度降為
M Sharifzadeh等人將輪廓查詢與地理信息系統(tǒng)技術(shù)相結(jié)合,提出遙感輪廓查詢的概念。基于空間幾何領(lǐng)域的有效性質(zhì),作者給出一個(gè)時(shí)間復(fù)雜度為O(|a|2b+R1/2)的算法,其中R為空間數(shù)據(jù)對(duì)象集,a為搜索方案數(shù),b為遙感點(diǎn)集中的凸包頂點(diǎn)數(shù)。M Khalefa等人考慮電子商務(wù)領(lǐng)域數(shù)據(jù)的模糊不完整特性,并給出一個(gè)時(shí)間復(fù)雜度為O(|R|2)的算法來處理這類數(shù)據(jù)的輪廓查詢。Z Huang等人針對(duì)GFS(Google File System)系統(tǒng)的云計(jì)算環(huán)境,提出一個(gè)對(duì)數(shù)級(jí)時(shí)間復(fù)雜度的分布式算法SCGFS(Skyline Computation for Google File System)。M Alrifai等人在SOA(Service-Oriented Architecture)架構(gòu)下,基于輪廓查詢技術(shù)來有效選擇Web服務(wù)。G Wang等人針對(duì)無線傳感器網(wǎng)絡(luò),給出一個(gè)能量有效的輪廓查詢處理算法SQWSN(Skyline Query on Wireless Sensor Networks)。S Sun等人基于B+索引樹結(jié)構(gòu),設(shè)計(jì)一種面向多租戶數(shù)據(jù)庫(kù)的輪廓查詢方法MDOS(Multi-tenant Database Oriented Skyline)。
現(xiàn)有的輪廓查詢技術(shù)只是返回所有輪廓對(duì)象,而在大數(shù)據(jù)環(huán)境下,獲取和遍歷海量的輪廓對(duì)象變得沒有實(shí)際意義。另一方面,不難發(fā)現(xiàn),在實(shí)際應(yīng)用中,數(shù)據(jù)對(duì)象通常都是以某些度量指標(biāo)為參數(shù)進(jìn)行集聚,而呈現(xiàn)所謂的“物以類聚”,而同個(gè)聚類中的對(duì)象具有相似的特征。因此,本發(fā)明通過考察輪廓對(duì)象的聚類特征而不是單個(gè)輪廓對(duì)象本身,可以顯著提高分析大數(shù)據(jù)的效率以及分析質(zhì)量。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的在于克服現(xiàn)有技術(shù)的不足,提出一種大數(shù)據(jù)輪廓類的挖掘技術(shù),首先給出了輪廓類以及k路輪廓層次樹的表示方法,然后在處理輪廓查詢的過程中,將獲得的各輪廓對(duì)象的位置信息組織成一棵k路輪廓層次樹,從而在基于密度聚類輪廓對(duì)象集的過程中,使用k路輪廓層次樹的多個(gè)有效剪枝性質(zhì)來快速產(chǎn)生所有的輪廓類。本發(fā)明能夠增加大數(shù)據(jù)分析的多樣性以及顯著提高輪廓類的挖掘效率。
本發(fā)明方法技術(shù)方案:
主要由4個(gè)步驟組成:
1、輪廓類表示
為了直觀表示現(xiàn)實(shí)應(yīng)用中大數(shù)據(jù)的集聚特征,本發(fā)明提出了輪廓類的表示方法,如定義1所示。
定義1(輪廓類).假定R是k維對(duì)象全集,如果對(duì)象集SC滿足如下4個(gè)條件,那么稱SC為一個(gè)輪廓類:
1)
2)
3)
4)
在定義1的輪廓類表示方法中,條件1)的為R的輪廓對(duì)象集合,條件2)和4)中的表示p密度可達(dá)r,而條件3)中表示p不密度可達(dá)r。密度可達(dá)見定義2所示。
定義2(密度可達(dá)).假定R是k維對(duì)象全集,給定用戶距離參數(shù)d,如果存在一個(gè)核心輪廓對(duì)象鏈p1,p2,…,pn,p1=q,pn=p,對(duì)于pi+1與pi間是直接密度可達(dá)的,那么稱q與p是密度可達(dá)的。為了簡(jiǎn)單,本發(fā)明把p密度可達(dá)r,記為同時(shí),將p沒有密度可達(dá)r,記為
在定義2中,直接密度可達(dá)見定義3所示。
定義3(核心輪廓對(duì)象及直接密度可達(dá)).假定R是k維對(duì)象全集,給定相似度閾值參數(shù)w以及數(shù)量閾值u,如果對(duì)象p滿足如下條件,那么我們稱p(a1,…,ak)為核心輪廓對(duì)象:
1)
2)與r的相似度sim(p,r)超過給定的相似度閾值w;
3)條件2)中r的數(shù)量超過給定的數(shù)量閾值u。
如果p為核心輪廓對(duì)象,那么我們稱p直接密度可達(dá)r。
2、k路輪廓層次樹表示
為了在大數(shù)據(jù)環(huán)境下快速產(chǎn)生所有的輪廓類,本發(fā)明提出了k路輪廓層次樹表示方法。如定義4所示。
定義4(k路輪廓層次樹).樹結(jié)構(gòu)T(ND,ED)是一棵k路輪廓層次樹,如果它滿足如下4個(gè)性質(zhì)(其中ND為樹節(jié)點(diǎn)的集合,而ED為邊的集合):
1)T是一棵k叉樹;
2)
3)
4)
在定義4的k路輪廓層次樹表示方法中,表示多維坐標(biāo)系原點(diǎn),Anc(q)為q的祖先節(jié)點(diǎn)集合,Desc(p)為p的子孫節(jié)點(diǎn)集合,Cht(p,γ)表示p的的γ叉子樹,sim為相似度函數(shù)。
特別,性質(zhì)1)要求k路輪廓層次樹的每個(gè)節(jié)點(diǎn)至多含有k棵子樹;性質(zhì)2)要求如果q在p的第γ叉子樹上,那么,所有不在q第γ叉子樹上的(q的)子孫節(jié)點(diǎn)r與p間的相似度應(yīng)大于q與p間的相似度,反之,所有在q第γ叉子樹上的(q的)子孫節(jié)點(diǎn)r與p間的相似度應(yīng)小于q與p間的相似度;性質(zhì)3)要求如果q和r處于p的不同分支子樹上,那么q與r間的相似度應(yīng)小于q與p以及r與p間的相似度;性質(zhì)4)要求節(jié)點(diǎn)p到多維空間原點(diǎn)的相似度應(yīng)大于所有p的子孫節(jié)點(diǎn)q到坐標(biāo)原點(diǎn)的相似度。
3、構(gòu)造k路輪廓層次樹
從k維大數(shù)據(jù)對(duì)象集合R={o1,…,on}中,構(gòu)造并生成k路輪廓層次樹實(shí)例SLT-k。
4、產(chǎn)生輪廓類
基于步驟3生成的k路輪廓層次樹實(shí)例SLT-k,利用k路輪廓層次樹的4個(gè)性質(zhì)快速產(chǎn)生所有的輪廓類。
本發(fā)明具有以下優(yōu)點(diǎn):
1、本發(fā)明所提出的輪廓類表示方法能夠有效增加大數(shù)據(jù)分析的多樣性;
2、本發(fā)明所提出的k路輪廓層次樹表示方法能夠顯著提高輪廓類的挖掘效率。
附圖說明
圖1處理流程如圖
具體實(shí)施方式
本發(fā)明提出一種大數(shù)據(jù)輪廓類的挖掘技術(shù),首先給出了輪廓類以及k路輪廓層次樹的表示方法,然后在處理輪廓查詢的過程中,將獲得的各輪廓對(duì)象的位置信息組織成一棵k路輪廓層次樹,從而在基于密度聚類輪廓對(duì)象集的過程中,使用k路輪廓層次樹的多個(gè)有效剪枝性質(zhì)來快速產(chǎn)生所有的輪廓類。本發(fā)明處理流程如圖1所示。
本發(fā)明主要由4個(gè)步驟組成:
1、輪廓類表示
為了直觀表示現(xiàn)實(shí)應(yīng)用中大數(shù)據(jù)的集聚特征,本發(fā)明提出了輪廓類的表示方法,如定義1所示。
定義1(輪廓類).假定R是k維對(duì)象全集,如果對(duì)象集SC滿足如下4個(gè)條件,那么稱SC為一個(gè)輪廓類:
1)
2)
3)
4)
在定義1的輪廓類表示方法中,條件1)的為R的輪廓對(duì)象集合,條件2)和4)中的表示p密度可達(dá)r,而條件3)中表示p不密度可達(dá)r。密度可達(dá)見定義2所示。
定義2(密度可達(dá)).假定R是k維對(duì)象全集,給定用戶距離參數(shù)d,如果存在一個(gè)核心輪廓對(duì)象鏈p1,p2,…,pn,p1=q,pn=p,對(duì)于pi+1與pi間是直接密度可達(dá)的,那么稱q與p是密度可達(dá)的。為了簡(jiǎn)單,本發(fā)明把p密度可達(dá)r,記為同時(shí),將p沒有密度可達(dá)r,記為
在定義2中,直接密度可達(dá)見定義3所示。
定義3(核心輪廓對(duì)象及直接密度可達(dá)).假定R是k維對(duì)象全集,給定相似度閾值參數(shù)w以及數(shù)量閾值u,如果對(duì)象p滿足如下條件,那么我們稱p(a1,…,ak)為核心輪廓對(duì)象:
1)
2)與r的相似度sim(p,r)超過給定的相似度閾值w;
3)條件2)中r的數(shù)量超過給定的數(shù)量閾值u。
如果p為核心輪廓對(duì)象,那么我們稱p直接密度可達(dá)r。
2、k路輪廓層次樹表示
為了在大數(shù)據(jù)環(huán)境下快速產(chǎn)生所有的輪廓類,本發(fā)明提出了k路輪廓層次樹表示方法。如定義4所示。
定義4(k路輪廓層次樹).樹結(jié)構(gòu)T(ND,ED)是一棵k路輪廓層次樹,如果它滿足如下4個(gè)性質(zhì)(其中ND為樹節(jié)點(diǎn)的集合,而ED為邊的集合):
1)T是一棵k叉樹;
2)
3)
4)
在定義4的k路輪廓層次樹表示方法中,表示多維坐標(biāo)系原點(diǎn),Anc(q)為q的祖先節(jié)點(diǎn)集合,Desc(p)為p的子孫節(jié)點(diǎn)集合,Cht(p,γ)表示p的的γ叉子樹,sim為相似度函數(shù)。
特別,性質(zhì)1)要求k路輪廓層次樹的每個(gè)節(jié)點(diǎn)至多含有k棵子樹;性質(zhì)2)要求如果q在p的第γ叉子樹上,那么,所有不在q第γ叉子樹上的(q的)子孫節(jié)點(diǎn)r與p間的相似度應(yīng)大于q與p間的相似度,反之,所有在q第γ叉子樹上的(q的)子孫節(jié)點(diǎn)r與p間的相似度應(yīng)小于q與p間的相似度;性質(zhì)3)要求如果q和r處于p的不同分支子樹上,那么q與r間的相似度應(yīng)小于q與p以及r與p間的相似度;性質(zhì)4)要求節(jié)點(diǎn)p到多維空間原點(diǎn)的相似度應(yīng)大于所有p的子孫節(jié)點(diǎn)q到坐標(biāo)原點(diǎn)的相似度。
3、構(gòu)造k路輪廓層次樹
從k維大數(shù)據(jù)對(duì)象集合R={o1,…,on}中,構(gòu)造并生成k路輪廓層次樹實(shí)例SLT-k。
4、產(chǎn)生輪廓類
基于步驟3生成的k路輪廓層次樹實(shí)例SLT-k,利用k路輪廓層次樹的4個(gè)性質(zhì)快速產(chǎn)生所有的輪廓類。
各步驟詳述。
在本發(fā)明的處理流程中,步驟1的k維對(duì)象相似度p(a1,…,ak)和r(b1,…,bk)的相似度sim(p,r)采用歐幾里得距離的倒數(shù)來計(jì)算,即
同時(shí),步驟1的相似度閾值參數(shù)w通過用戶的終端設(shè)備輸入,取值大小由用戶決定;而數(shù)量閾值u在實(shí)施時(shí)取值為1。
從而在步驟1定義3的具體實(shí)施過程中,我們把條件2)和3)進(jìn)行合并,并表示為:
在本發(fā)明的處理流程中,與步驟1的實(shí)施類似,步驟2的k維對(duì)象相似度p和r的相似度sim(p,r)同樣采用歐幾里得距離的倒數(shù)來計(jì)算,即
其中p[i]和r[i]分別表示對(duì)象p和r的第i為取值。
從而在步驟2中,k路輪廓層次樹的性質(zhì)2)-4)可具體實(shí)施成:
2)
3)
4)
在本發(fā)明的處理流程中,步驟3從k維大數(shù)據(jù)對(duì)象集合R={o1,…,on}中,構(gòu)造并生成k路輪廓層次樹實(shí)例SLT-k,具體實(shí)施過程如下:
1)初始化k維區(qū)間集合S=<(∞,∞,…,∞)>;
2)重復(fù)執(zhí)行3)-6)步直到S為空;
3)獲取集合S中的第一個(gè)k維區(qū)間F;
4)獲取F內(nèi)與原點(diǎn)最近的輪廓對(duì)象p;
5)更新集合S為:
6)如果SLT-k為空,那么將p作為SLT-k的根節(jié)點(diǎn);否則,我們首先獲取p的父節(jié)點(diǎn)q,進(jìn)而獲取q在多維區(qū)間F中的維度位置j,最后將p放置在q的第j叉子節(jié)點(diǎn)上;
7)返回k路輪廓層次樹實(shí)例SLT-k。
在本發(fā)明的處理流程中,步驟4,基于步驟3生成的k路輪廓層次樹實(shí)例SLT-k,利用其4個(gè)性質(zhì)來快速產(chǎn)生所有的輪廓類,具體實(shí)施過程如下:
從k路輪廓層次樹實(shí)例SLT-k的根節(jié)點(diǎn)開始,寬度優(yōu)先遍歷SLT-k中的每個(gè)節(jié)點(diǎn)。對(duì)于被遍歷到的當(dāng)前節(jié)點(diǎn)p:我們首先獲取p的最近鄰頂點(diǎn)集其中F為產(chǎn)生p的k維區(qū)間。然后計(jì)算p與Ψ(p)中每個(gè)節(jié)點(diǎn)q的歐氏距離當(dāng)計(jì)算完畢之后,我們獲取Ψ(p)中與p的歐氏距離不大于1/w的m節(jié)點(diǎn)r1,…,rm(其中w為用戶輸入的相似度閾值參數(shù),見本發(fā)明處理流程的步驟1)。接著,我們對(duì)m的值進(jìn)行判斷:如果m為0,即p與Ψ(p)中每個(gè)節(jié)點(diǎn)的歐氏距離均大于1/w,那么我們?yōu)閜創(chuàng)建一個(gè)新的輪廓類。如果m不為0,那么我們合并這m個(gè)節(jié)點(diǎn)所在的輪廓類,并將p添加到該輪廓類中,進(jìn)一步,如果這m個(gè)節(jié)點(diǎn)包含p的父節(jié)點(diǎn)q,并假定p在q的第γ叉子樹上,那么我們將所有不在p第γ叉子樹上的(p的)子孫節(jié)點(diǎn)添加到該輪廓類中,并從SLT-k中刪除這些子孫節(jié)點(diǎn)。