本發(fā)明屬于信息處理領(lǐng)域,尤其涉及一種以二范數(shù)距離為度量,采用哈希(Hash)劃分桶縮小鄰域信息粒子搜索空間的快速獲得鄰域的方法。
背景技術(shù):隨著信息技術(shù)的迅速發(fā)展以及數(shù)據(jù)庫管理系統(tǒng)的廣泛應(yīng)用,人們記錄的數(shù)據(jù)越來越多。激增的數(shù)據(jù)背后隱藏著許多重要的信息,人們希望能夠?qū)ζ溥M(jìn)行更高層次的分析,以便更好地利用這些數(shù)據(jù)。T.Y.Lin于1988年提出了鄰域模型的概念,他通過使用空間鄰域?qū)崿F(xiàn)對論域的粒化,并將空間鄰域理解為基本的信息粒子,而后利用這些基本信息粒子來描述論域中的其他概念。在1998年,姚一豫教授以及在2002年吳偉志教授對鄰域算子和鄰域系統(tǒng)的基本系統(tǒng)性質(zhì)分別進(jìn)行了深入的研究。Yao討論了粒計算與粗糙集、商空間等數(shù)據(jù)挖掘工具之間的關(guān)系,并且通過采用邏輯決策語言來描述粒度,構(gòu)建粒度世界的邏輯框架。Skowron在文獻(xiàn)中也描述了粒語言,他將信息表上定義的邏輯公式的意義集看做信息粒,并討論了這種信息粒的語法和語義。在這些研究的基礎(chǔ)上,胡清華將鄰域模型引入到粗糙集中,對鄰域粗糙集模型進(jìn)行了詳細(xì)的定義,并設(shè)計可以同時約簡名義型、數(shù)值型、混合型數(shù)據(jù)的約簡算法。隨著數(shù)據(jù)的爆炸式增加,在運用鄰域模型處理大數(shù)據(jù)時,時間效率就成為了首要考慮的因素。如何減少搜索和計算鄰域信息粒子的時間,是一個值得考慮的問題。鄰域有兩種定義方法:一種是由鄰域內(nèi)所含對象的數(shù)量而定,如經(jīng)典的k-近鄰方法;另一種是根據(jù)在某一度量上鄰域中心點到邊界的最大距離進(jìn)行定義。本發(fā)明所涉及的鄰域為第2種方法。實數(shù)空間上的非空有限集合U={x1,x2,x3,…,xn},對于U上的任意對象xi,其θ鄰域為θ(xi)={x∈U,Δ(x,xi)≤θ},其中,θ≥0,θ(xi)稱為由xi生成的θ鄰域信息粒子,簡稱xi的鄰域粒子,就二維實數(shù)空間而言,基于1范 數(shù)、2范數(shù)和無窮范數(shù)的鄰域如圖3所示,分別為菱形、圓形和正方形區(qū)域。度量的性質(zhì)有:(1)因為xi∈θ(xi);(2)xj∈θ(xi)→xi∈θ(xj);(3)鄰域信息粒子族{θ(xi)|i=1,2,…n}構(gòu)成U的一個覆蓋。鄰域信息粒子族引導(dǎo)出論域空間U上的一個鄰域關(guān)系N,該關(guān)系可由一個關(guān)系矩陣來表示M(N)=(rij)n×n,如果xj∈θ(xi),則rij=1否則rij=0。
技術(shù)實現(xiàn)要素:本發(fā)明的目的在于一種應(yīng)用哈希Hash劃分桶快速獲得鄰域的方法,以減少搜索和計算鄰域信息粒子的時間,實現(xiàn)運用鄰域模型處理大數(shù)據(jù)的快速性。為此,本發(fā)明采用以下技術(shù)方案:本發(fā)明方法的具體步驟如下:一種應(yīng)用哈希Hash劃分桶快速獲得鄰域的方法,其特征在于它包括如下步驟:步驟一,求分桶坐標(biāo)系的坐標(biāo)原點x0,根據(jù)給定的鄰域系統(tǒng)NRS=<U,N,θ>,U是全部樣本記錄構(gòu)成的集合,N表示鄰域關(guān)系,θ為鄰域半徑;步驟二,求樣本的距離,對于求樣本間的距離||xi-x0||;步驟三,根據(jù)步驟二中的樣本距離,用Hash方法建立搜索桶:對于計算k是非負(fù)整數(shù)。以k作為hashKey建立hash表。建立hash表在空間內(nèi)的球面模型:將hashKey作為球面的半徑,hash表在空間內(nèi)就是一系列相互嵌套的球;某一hashKey下的樣本,處于以hashKey為半徑的球面與hashKey-1為半徑的球面之間的空間內(nèi),相鄰球面間的空間稱為所述桶,B1,B2,…,Bb,為由b個hashKey值作為半徑所得 的b個桶。步驟四,獲得鄰域:桶Bk-1,Bk,Bk+1內(nèi)的記錄,獲得樣本x的鄰域。在采用上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可采用以下進(jìn)一步的技術(shù)方案:x0取原點或者是在N中最小值組成的一個特征向量。當(dāng)搜索桶中樣本記錄獲得鄰域時,采用的是迭代方法,只需要搜索Bk,Bk+1桶內(nèi)的記錄來求獲得樣本x的鄰域。本發(fā)明根據(jù)樣本記錄間的距離,利用Hash的方法將樣本記錄的集合劃分成桶,集合中任意一個樣本記錄xi的鄰域信息粒子的搜索空間將被縮小到相鄰的三個桶Bk-1,Bk,Bk+1內(nèi)。在此基礎(chǔ)上,深入觀察發(fā)現(xiàn),當(dāng)搜索樣本記錄的鄰域空間采用的是迭代方法時,根據(jù)鄰域系統(tǒng)的對稱性原理,可以將鄰域信息粒子的搜索空間進(jìn)一步縮小到兩個桶Bk,Ek+1的范圍內(nèi)。本發(fā)明的方法根據(jù)不同的鄰域的大小θ可以得到不同的分桶效果。隨著θ值變大,桶的數(shù)量將會減少,但是各個桶中所含的樣本記錄的數(shù)量會增加,當(dāng)分桶是連續(xù)的情況下,計算鄰域信息粒子時搜索的空間縮小的幅度將會減小,分桶所帶來的效果將會減弱,而在所分的桶處于離散的時候,由于可能不存在相鄰的桶,這時的搜索空間將會大幅度減小,分桶所帶來的縮小鄰域信息粒子搜索空間的效果增強。隨著θ值變小,桶的數(shù)量將會變逐漸增加,桶中所含的樣本數(shù)量將會減少,這樣可能造成每個鄰域信息粒子中所包含的信息量將會變少。據(jù)以上所述,根據(jù)鄰域系統(tǒng)NRS=<U,N,θ>的不同情況,通過選擇適合的θ值,來充分發(fā)揮分桶所帶來的縮小鄰域信息粒子搜索空間的效果,減少搜索和計算鄰域信息粒子的時間。附圖說明圖1為本發(fā)明方法中的分桶為連續(xù)情況下的示意圖。圖2為本發(fā)明方法中的分桶為離散情況下的示意圖。圖3為二維實數(shù)空間內(nèi),基于1范數(shù)、2范數(shù)和無窮范數(shù)的鄰域。具體實施方式為了更好的理解本發(fā)明的技術(shù)方案,以下結(jié)合附圖和實施例作進(jìn)一步描述。步驟一,求分桶坐標(biāo)系的坐標(biāo)原點x0:根據(jù)給定的鄰域系統(tǒng)NRS=<U,N,θ>,求分桶坐標(biāo)系的坐標(biāo)原點x0。取N=CUD,則鄰域系統(tǒng)NRS=<U,N,θ>成為鄰域決策系統(tǒng)NRS=<U,C∪D,θ>,x0取每個屬性的最小屬性值組成一個特征向量。樣本集合U={x1,x2,x3,…,xn},樣本屬性的集合C={a1,a2,…,am),樣本的第i個屬性ai,樣本決策屬性集合D,則基為x0=(min{xl(a1),x2(a1),…xn(a1)},min{x1(a2),x2(a2),…xn(a2)},…,min{x1(a1),x2(a1),…xn(a1)})步驟二,求樣本的距離:對于求樣本間的距離||xi-x0||;步驟三,根據(jù)步驟二中的距離,Hash方法建立桶:對于計算k是非負(fù)整數(shù),以k作為hashKey建立hash表。將hashKey作為球面的半徑,hash表在空間內(nèi)就是一系列相互嵌套的球。某一hashKey下的樣本,處于以hashKey為半徑的球面與hashKey-1為半徑的球面之間的空間內(nèi),相鄰球面間的空間稱為所述桶。 B1,B2,…,Bb為由b個hashKey值作為半徑所得的b個桶。則U中的一部分記錄在空間的分布如圖1、圖2所示,圖1給出了一種較特殊的情況,即k是連續(xù)的;而實際上,對特定的數(shù)據(jù)而言,k可能是不連續(xù)的,即圖2所示。步驟四,獲得鄰域:搜索桶Bk-1,Bk,Bk+1內(nèi)的記錄,求其鄰域。當(dāng)搜索桶中樣本記錄求解鄰域時,采用的是迭代方法,由于鄰域系統(tǒng)的對稱性,只需要搜索Bk,Bk+1桶內(nèi)的記錄來求解其鄰域。如圖1中所示,對k=2的桶內(nèi)的樣本,在求解鄰域的時候,可以只搜索k=2與k=3桶內(nèi)的樣本。如圖2所示,在桶不連續(xù)的情況下,對于k=2桶中的樣本,由于其相鄰的k=3桶內(nèi)為空,其桶內(nèi)樣本鄰域的求解空間縮小了。應(yīng)用hash建立桶的時間復(fù)雜度為O(n),n=|U|。樣本屬性集合C={a1,a2,…,am}中的樣本屬性的個數(shù)為m,建立的分桶的個數(shù)為b,在樣本被均勻地分布到各個桶中的情況下,鄰域計算的復(fù)雜度為在b趨近于|u|的情況下,鄰域計算的復(fù)雜度將會趨近于O(m|U|)。