本發(fā)明涉及機器學習領(lǐng)域,特別涉及一種獲得鄰域和正域的方法和系統(tǒng)。
背景技術(shù):
隨著計算機與信息技術(shù)的發(fā)展,數(shù)據(jù)量呈指數(shù)形式增長,對這些錯綜復(fù)雜的數(shù)據(jù)進行抽象與?;兄谌藗兏玫睦斫夂屠秒[藏在其中的有效信息。
鄰域和正域都是“鄰域粗糙集”里面的概念,鄰域粗糙集可以用來進行屬性約簡,挑選重要的特征,計算鄰域和正域是基于鄰域粗糙集的屬性約簡方法中的必要步驟,但是目前已有的方法在計算鄰域和正域時效率較低,本發(fā)明主要是針對這一問題提出的改進方法。
信息?;土6扔嬎阌蓏adeh教授首次提出,他解釋了為什么要研究粒度計算和如何進行粒度計算的基本框架。作為一種模擬人類智能的新型計算模式,粒度計算一經(jīng)提出就受到人工智能、應(yīng)用數(shù)學等多個領(lǐng)域研究人員的關(guān)注。lin于1988年提出了鄰域模型的概念,該模型通過樣本點的鄰域?qū)崿F(xiàn)論域的?;⑧徲蚶斫鉃榛镜男畔⒘W?,借助于這些信息粒子可以描述空間中的其他概念。yao和wu分別于1998年和2002年對鄰域信息系統(tǒng)的基本性質(zhì)進行了研究。在這些研究的基礎(chǔ)上,胡清華將鄰域模型與粗糙集結(jié)合,提出了鄰域粗糙集,并設(shè)計出可以同時處理名義型和數(shù)值型數(shù)據(jù)的啟發(fā)式屬性約簡方法f2harnrs,該方法利用正域與屬性集的單調(diào)關(guān)系,基于屬性重要度和前向貪心搜索策略進行屬性約簡。
liu等人針對f2harnrs鄰域計算量過大問題,提出了一種應(yīng)用hash分桶獲得鄰域的方法fhara。如圖1所示,fhara將樣本通過hash映射到不同的桶中,并證明在計算xi(xi∈bk)的鄰域時只需搜索bk-1、bk和bk+1三個桶,如果采用的是迭代的方法,則只需要搜索bk和bk+1兩個桶,從而減少了搜索和計算鄰域信息粒子的范圍。然而,分析發(fā)現(xiàn)fhara在計算鄰域和正域時仍然存在很多不必要的鄰域樣本檢索過程和樣本間距離計算,在處理大數(shù)據(jù)時效率不高。
本發(fā)明根據(jù)鄰域關(guān)系的對稱性、hash映射函數(shù)的局部敏感性和決策屬性過濾機制提出了一種獲得鄰域和正域的方法,解決了已有方法鄰域計算過程中存在的不必要的鄰域計算問題,以及正域計算過程中存在的冗余的樣本間距離計算的問題,加速了正域的計算。
鄰域有兩種定義方法,一種是由鄰域內(nèi)所含對象的數(shù)量而定,如經(jīng)典的k-近鄰方法;另一種是根據(jù)在某一度量上鄰域中心點到邊界的最大距離進行定義,本發(fā)明采用的第二種方法。
實數(shù)空間上非空有限集合u={x1,x2,...,xn},對于u中的任意元素xi,其δ-鄰域為δ(xi)={x|x∈u,δ(x,xi)≤δ},其中δ≥0,δ(xi)稱為由xi生成的δ-鄰域信息粒子,簡稱為xi的鄰域粒子。就二維實數(shù)空間而言,基于1范數(shù),2范數(shù)和無窮范數(shù)的鄰域如圖2所示,分別為菱形、圓和正方形區(qū)域。根據(jù)度量的性質(zhì)有:(1).
鄰域信息粒子族引導出論域空間u上的一個鄰域關(guān)系ν,該關(guān)系可由一個關(guān)系矩陣來表示m(n)=(xij)n*n,其中,如果xj∈δ(xi),則xij=1;否則xij=0。論域中的所有對象的鄰域形成了論域的?;?,鄰域粒子族構(gòu)成了論域空間中的基本概念系統(tǒng),通過這些基本概念,可以逼近空間中的任意概念。
發(fā)明專利“一種應(yīng)用哈希hash劃分桶快速獲得鄰域的方法”授權(quán)公告號cnlo3345491b,公開了一種應(yīng)用哈希劃分桶縮小鄰域信息粒子搜索空間的快速鄰域計算方法,該方法根據(jù)樣本記錄間的距離,利用hash分桶的方法將樣本劃分到不同的數(shù)據(jù)桶中(b1,b2,b3...bk-1,bk,bk+1...),其中,b是指bucket,k是序列編號,bk是指第k個數(shù)據(jù)桶。集合中任意一個樣本的鄰域信息粒子的搜索空間將被縮小到相鄰的三個桶內(nèi),如果采用的是迭代方法,只需要搜索兩個桶內(nèi)的樣本。相比于該已授權(quán)專利,本發(fā)明有以下三點技術(shù)進步:
1、利用鄰域關(guān)系的對稱性,減少不必要的鄰域搜索;
2、利用哈希映射函數(shù)的局部敏感特性,加速鄰域的查找;
3、利用決策屬性過濾策略,減少樣本間的距離計算,以加快正域的判斷。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明公開了一種獲得鄰域和正域的方法,其中包括:
步驟1:將哈希分桶后的數(shù)據(jù)集作為算法的輸入,其中該數(shù)據(jù)集包括多個數(shù)據(jù)桶,每個該數(shù)據(jù)桶由多個樣本組成,遍歷每個該數(shù)據(jù)桶中的樣本,將當前遍歷到的樣本作為當前樣本,并為每一個該樣本設(shè)置一個正域標志用以記錄相應(yīng)樣本是否屬于正域樣本,并將該正域標志集合,作為正域標志集合;
步驟2:通過正域標志集合判斷該當前樣本是否已被標記為非正域樣本,若是則終止對該當前樣本的正域判斷流程,對其他樣本進行正域判斷,否則在該數(shù)據(jù)集中查找該當前樣本的鄰域樣本;
步驟3:判斷該當前樣本和該鄰域樣本的決策屬性值是否相同,若是則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本,否則判斷該當前樣本和該鄰域樣本是否互為鄰域,若是則判定該當前樣本屬于非正域樣本,并通過正域標志將該當前樣本和該鄰域樣本標記為非正域樣本,否則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本;
步驟4:完成所有樣本的正域判斷后,輸出該正域標志集合。
該獲得鄰域和正域的方法,其中該步驟1中還包括,該正域標志置為0代表該當前樣本為正域元素,該正域標志置為1代表該當前樣本為非正域元素,所有的正域標志組成正域標志集合。
該獲得鄰域和正域的方法,其中該步驟2包括,步驟21:根據(jù)哈希映射函數(shù)的局部敏感特性,先遍歷該當前樣本所在的桶,然后再遍歷相鄰的兩個桶的順序查找該當前樣本的鄰域樣本。
該獲得鄰域和正域的方法,其中該正域標志集合的長度等于該數(shù)據(jù)集中樣本的總數(shù)。
該獲得鄰域和正域的方法,其中該步驟3中互為鄰域的判斷方法為,計算該當前樣本和該鄰域樣本之間的距離,并判該距離與鄰域半徑的大小關(guān)系,若該距離小于等于鄰域半徑,則該當前樣本和該鄰域樣本互為鄰域。
本發(fā)明還提供了一種獲得鄰域和正域的系統(tǒng),其中包括:
遍歷模塊:用于將哈希分桶后的數(shù)據(jù)集作為算法的輸入,其中該數(shù)據(jù)集包括多個數(shù)據(jù)桶,每個該數(shù)據(jù)桶由多個樣本組成,遍歷每個該數(shù)據(jù)桶中的樣本,將當前遍歷到的樣本作為當前樣本,并為每一個該樣本設(shè)置一個正域標志用以記錄相應(yīng)樣本是否屬于正域樣本,并將該正域標志集合,作為正域標志集合;
第一判斷模塊:用于判斷該當前樣本是否已經(jīng)被標記為非正域樣本,若是則終止對該當前樣本的正域判斷流程,對其他樣本進行正域判斷,否則在該數(shù)據(jù)集中查找該當前樣本的鄰域樣本;
第二判斷模塊:用于判斷該當前樣本和該鄰域樣本的決策屬性值是否相同,若是則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本,否則判斷該當前樣本和該鄰域樣本是否互為鄰域,若是則判定該當前樣本屬于非正域樣本,并通過正域標志將該當前樣本和該鄰域樣本標記為非正域樣本,否則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本;
輸出模塊:完成所有樣本的正域判斷后,輸出該正域標志集合。
該獲得鄰域和正域的系統(tǒng),其中該正域標志置為0代表該當前樣本為正域元素,該正域標志置為1代表該當前樣本為非正域元素,所有的正域標志組成正域標志集合。
該獲得鄰域和正域的系統(tǒng),其中該第一判斷模塊還包括鄰域樣本查找模塊:用于按照先遍歷該當前樣本所在的桶,然后再遍歷相鄰的兩個桶的順序查找該當前樣本的鄰域樣本。
該獲得鄰域和正域的系統(tǒng),其中該正域標志集合的長度等于該數(shù)據(jù)集中樣本的總數(shù)。
該獲得鄰域和正域的系統(tǒng),其中該第二判斷模塊包括鄰域判斷模塊:用于計算該當前樣本和該鄰域樣本之間的距離,并判該距離與鄰域半徑的大小關(guān)系,若該距離小于等于鄰域半徑,則該當前樣本和該鄰域樣本互為鄰域。
本發(fā)明的核心思想是減少鄰域樣本的搜索以及降低樣本之間的距離計算次數(shù),在計算過程中采用正域標志集合標記被提前判定不可能成為正域元素的樣本,避免了不必要的鄰域搜索;通過優(yōu)先檢索當前樣本所在的桶,然后檢索相鄰的兩個桶,能更快的發(fā)現(xiàn)鄰域樣本;通過決策屬性過濾策略過濾掉與當前樣本具有相同決策屬性值的樣本,減少了鄰域計算時的距離計算次數(shù),降低了算法計算量,本發(fā)明尤其適合處理決策屬性取值情況較少的數(shù)據(jù)集。
綜上,本發(fā)明的技術(shù)進步在于:
1、本發(fā)明利用了鄰域關(guān)系的對稱性性質(zhì):如果兩個樣本間的距離小于鄰域半徑且它們的決策屬性值不相同,則可以判定這兩個樣本都是非正域元素,本發(fā)明將那些被提前確認不可能屬于正域的元素用一個正域標志進行標記,在后面對這些樣本進行正域判斷時檢索正域標志集合即可直接得結(jié)論,加速了正域的計算,參考方法fhara中沒有利用這一性質(zhì);
2、本發(fā)明利用了hash映射函數(shù)的局部敏感性,在計算樣本的鄰域時,通過優(yōu)先搜索該當前樣本所在的桶,然后再搜索相鄰的其它兩個桶,可以更快的找出該當前樣本的鄰域,加速正域的判斷,參考方法fhara中沒有提及這一點;
3、本發(fā)明提出了決策屬性過濾策略,在判斷該當前樣本是否為正域元素時,先判斷該當前樣本與該鄰域樣本的決策屬性值是否相同,若是則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本,否則通過計算該當前樣本和該鄰域樣本之間的距離來判斷兩者是否互為鄰域,若是則判定該當前樣本屬于非正域樣本,并通過正域標志將該當前樣本和該鄰域樣本標記為非正域樣本,否則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本。參考方法fhara則是先計算該當前樣本與該鄰域樣本之間的距離,然后比較兩者的決策屬性值,這會造成很多不必要的樣本間距離計算。本發(fā)明在決策屬性取值情況較少的數(shù)據(jù)集上性能表現(xiàn)更加突出。
附圖說明
圖1為hash分桶策略示意圖;
圖2為二維實數(shù)空間鄰域粒子;
圖3為鄰域關(guān)系對稱性示意圖;
圖4為本發(fā)明提出的思想流程圖;
圖5為本發(fā)明提出的算法流程圖;
圖6為本發(fā)明樣例數(shù)據(jù)具體執(zhí)行過程圖。
具體實施方式
本發(fā)明的核心目標是基于鄰域關(guān)系的對稱性、hash映射函數(shù)的局部敏感性以及決策屬性過濾策略減少鄰域搜索過程和樣本間距離計算次數(shù),提高鄰域和正域的計算效率,由此本發(fā)明提供一種獲得鄰域和正域的方法,其中包括:
步驟1:將哈希分桶后的數(shù)據(jù)集作為算法的輸入,其中該數(shù)據(jù)集包括多個數(shù)據(jù)桶,每個該數(shù)據(jù)桶由多個樣本組成,遍歷每個該數(shù)據(jù)桶中的樣本,將當前遍歷到的樣本作為當前樣本;
步驟2:通過正域標志集合判斷該當前樣本是否已被標記為非正域樣本,若是則直接終止對該當前樣本的正域判斷流程并對其他樣本進行正域判斷,否則查找該當前樣本的鄰域樣本;
步驟3:判斷該當前樣本和該鄰域樣本的決策屬性值是否相同,若是則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本,否則判斷該當前樣本和該鄰域樣本是否互為鄰域,若是則判定該當前樣本屬于非正域樣本,并通過正域標志將該當前樣本和該鄰域樣本標記為非正域樣本,否則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本;
步驟4:在遍歷該數(shù)據(jù)集中所有樣本后,輸出該正域標志集合。該獲得鄰域和正域的方法,其中該步驟1中還包括,為每一個樣本設(shè)置一個正域標志用以記錄相應(yīng)樣本是否屬于正域樣本,該正域標志置為0代表該當前樣本為正域元素,該正域標志置為1代表該當前樣本為非正域元素,所有的正域標志組成正域標志集合。
該獲得鄰域和正域的方法,其中該步驟2包括,步驟21:利用哈希映射函數(shù)的局部敏感特性,按照先遍歷該當前樣本所在的數(shù)據(jù)桶,然后再遍歷相鄰的兩個數(shù)據(jù)桶的順序查找該當前樣本的鄰域樣本,加速鄰域的查找;
為讓本發(fā)明的上述特征和效果能闡述的更明確易懂,下文特舉實施例,并配合說明書附圖作詳細說明如下。結(jié)合圖4具體描述本發(fā)明采用的技術(shù)方案:
步驟s4-1:獲取具有多個樣本的數(shù)據(jù)集,以及用以記錄每個樣本是否為正域元素的正域標志集合,該正域標志集合的長度等于該數(shù)據(jù)集中樣本的個數(shù),初始狀態(tài)下每個樣本對應(yīng)的正域標志都置為0;
步驟s4-2:遍歷該數(shù)據(jù)集中樣本,將當前遍歷到的樣本作為當前樣本(圖4中簡稱樣本);
步驟s4-3:根據(jù)正域標志集合判斷該當前樣本是否已被標記為非正域樣本,若是則終止對該當前樣本的正域判斷流程并回到步驟s4-2對其他樣本進行正域判斷,否則執(zhí)行步驟s4-4;
步驟s4-4:因為該當前樣本沒有被標記為非正域樣本,所以還需根據(jù)該當前樣本的鄰域樣本來做出判斷。為了更快速的找到該當前樣本的鄰域樣本,本發(fā)明按照先遍歷該當前樣本所在的桶,然后遍歷相鄰的兩個桶的順序查找該當前樣本的鄰域樣本;
步驟s4-5:由決策屬性過濾策略可知,當該當前樣本和該鄰域樣本具有相同的決策屬性值時,無論它們是否構(gòu)成鄰域關(guān)系,根據(jù)兩者中的一方都無法判斷另一方是否為正域元素,這種情況下沒必要計算這兩個樣本之間的距離。所以在判斷該當前樣本是否為正域時,本發(fā)明首先檢查該當前樣本和該鄰域樣本是否具有相同的決策屬性值(類標簽),如果相同則回到步驟s4-4,否則執(zhí)行步驟s4-6;
步驟s4-6:因為該當前樣本和該鄰域樣本具有不同的決策屬性值,所以進一步計算兩者之間的距離,并判斷該距離與鄰域半徑的大小關(guān)系。此時,存在以下兩種情形:
情形1.當該距離大于鄰域半徑時,該鄰域樣本不是該當前樣本的鄰域樣本,根據(jù)該鄰域樣本無法判斷該當前樣本是否為非正域樣本,該當前樣本對應(yīng)的正域標志保持不變,執(zhí)行步驟s4-4;
情形2.當該距離小于等于鄰域半徑時,說明這兩個樣本互為鄰域,又因為兩者具有不同的決策屬性值,可以判定該當前樣本為非正域樣本,執(zhí)行步驟s4-7;
步驟s4-7:將該當前樣本和該鄰域樣本的正域標志置為1,以便后面對該鄰域樣本進行正域判斷時直接得結(jié)論;
步驟s4-8:判斷是否已經(jīng)完成所有樣本的正域判斷,若是則執(zhí)行步驟s4-9,否則執(zhí)行步驟s4-2;
步驟s4-9:輸出修改后的正域標志集合,至此,當前條件屬性子集下的正域計算結(jié)束;該正域標志集合中的1表示相應(yīng)位置的樣本是非正域元素,集合中的0表示相應(yīng)位置的樣本是正域元素,通過該正域標志集合可以很容易統(tǒng)計出正域樣本的個數(shù),以便進行特征重要性排序、屬性約簡等后續(xù)任務(wù)。
下面特舉實施例來進一步描述本發(fā)明,結(jié)合圖5所示的算法流程圖描述本發(fā)明的具體執(zhí)行過程,為了方便描述,記xi與xj之間的距離為d(xi,xj),并用一個正域標志來標記當前樣本xi(xi∈bk)是否為正域樣本,其中xi(xi∈bk)表示xi是第k個數(shù)據(jù)桶中的樣本,并為每一個該當前樣本設(shè)置一個正域標志用以記錄相應(yīng)樣本是否屬于正域樣本,正域標志為0代表xi是正域元素,正域標志為1代表xi是非正域元素,并將該正域標志集合記為正域標志集合。
步驟s5-1:將等待進行正域判斷的樣本集合n及初始化后的正域標志集合f作為輸入;
步驟s5-2:遍歷集合n,記當前遍歷到的等待進行正域判斷的樣本為xi(xi∈bk);
步驟s5-3:判斷xi的正域標志是否為1,若是則執(zhí)行步驟s5-2,否則執(zhí)行步驟s5-4;
步驟s5-4:因為xi沒有被標記為非正域樣本,無法判斷xi是否為正域元素,所以還需根據(jù)xi的鄰域樣本來做出判斷。為了更快速的找到xi的鄰域樣本,本發(fā)明按照bk、bk+1、bk-1的順序搜索這三個桶,并記當前檢索到的樣本為xj,分桶內(nèi)容由于涉及現(xiàn)有技術(shù),故詳細過程見背景技術(shù)部分內(nèi)容;
步驟s5-5:由決策屬性過濾策略可知,當xj和xi具有相同的決策屬性值時,無論d(xi,xj)>δ還是d(xi,xj)≤δ,根據(jù)xj都無法判斷xi是否為正域元素,這種情況下沒必要計算d(xi,xj)。所以在判斷xi是否為正域元素時,本發(fā)明首先檢查xj和xi是否具有相同的決策屬性值,如果相同則執(zhí)行步驟s5-4,否則執(zhí)行步驟s5-6;
步驟s5-6:因為xj和xi具有不同的決策屬性值,所以需進一步計算d(xi,xj),并判斷d(xi,xj)與鄰域半徑δ的大小關(guān)系。此時,存在以下兩種情形:
情形1.當d(xi,xj)>δ時,xj不是xi的鄰域元素,根據(jù)xj無法判斷xi是否成為非正域樣本,執(zhí)行步驟s5-4;
情形2.當d(xi,xj)≤δ時,說明xj和xi互為鄰域,又因為xj和xi具有不同的決策屬性值,可以判定xi為非正域樣本,執(zhí)行步驟s5-7;
步驟s5-7:將xi的正域標志置為1,根據(jù)鄰域關(guān)系的對稱性,xj也一定是非正域樣本,所以將xj的正域標志也置為1,以便后面判斷xj是否為正域時直接得結(jié)論;
步驟s5-8:判斷是否已經(jīng)完成所有樣本的正域判斷,若是則執(zhí)行步驟s5-9,否則執(zhí)行步驟s5-2;
步驟s5-9:輸出修改后的正域標志集合f,至此,當前條件屬性子集下的正域計算結(jié)束;
由步驟s5-3可知,通過正域標志來標記那些尚未進行過正域判斷就已經(jīng)根據(jù)鄰域關(guān)系的對稱性被提前判定為非正域元素的樣本,可以減少很多不必要的鄰域搜索過程和樣本間的距離計算次數(shù),提高算法效率;步驟s5-4則是利用了hash映射函數(shù)的局部敏感性,一般情況下,hash分桶策略使得距離相近的樣本更有可能分到同一個桶中,也就是說xi(xi∈bk)的鄰域樣本在bk中出現(xiàn)的概率要大于在bk+1、bk-1中出現(xiàn)的概率,所以本發(fā)明優(yōu)先檢索bk,然后再搜索bk+1、bk-1,這樣可以更早發(fā)現(xiàn)xi的鄰域樣本,進而加快判斷xi是否是正域元素的速度;由步驟s5-5至步驟s5-7可知,在判斷xi是否為正域時,本發(fā)明首先判斷xi與xj的決策屬性值是否相同,如果相同則無需計算d(xi,xj),只有當xi與xj的決策屬性值不相同時才計算d(xi,xj),這在正域計算過程中能明顯減少樣本間的距離計算次數(shù),在決策屬性取值情況較少的數(shù)據(jù)集上,決策屬性值相同的概率更高,也就意味著不需要計算距離的情形更多,決策屬性過濾策略帶來的性能改進就更明顯。
下面以表1中的樣例數(shù)據(jù)結(jié)合圖6對本發(fā)明進行更具體的介紹:
表1:樣例數(shù)據(jù)
步驟s6-1:輸入的數(shù)據(jù)集如表1所示,假設(shè)有條件屬性子集a,b,c,d和決策屬性class,取鄰域半徑δ=0.1,以及初始化的正域標志集合f={0,0,0,0,0,0,0,0};
步驟s6-2:由fhara可知,x0={0.17,0.11,0.27,0.33};
步驟s6-3:根據(jù)x0計算可得樣例數(shù)據(jù)集的桶劃分情況為:b0={φ},b1={x7},b2={x1,x2,x3,x6},b3={x4},b4={x5,x8};
步驟s6-4:由于b0桶為空,直接跳過。直接判斷b1桶中的各樣本xi是否屬于正域元素,需要遍歷b1∪b2∪b0:
判斷x7是否屬于正域,首先檢查正域標志集合,由于x7對應(yīng)的正域標志為0,無法根據(jù)正域標志做判斷,需要計算x7的鄰域。由決策屬性過濾機制可知,由于x7與x1,x2,x3具有相同的決策屬性值,所以無需計算d(x7,x1)、d(x7,x2)和d(x7,x3),x7與x6決策屬性值不同,需進一步計算d(x7,x6),可得d(x7,x6)=0.09,d(x7,x6)小于鄰域半徑δ,所以可以判定x7是非正域樣本,將x7的正域標志置為1,根據(jù)鄰域關(guān)系的對稱性可知x6也是非正域元素,所以將x6的正域標志也置為1,至此,b1中各樣本判斷完畢。
步驟s6-5:接下來判斷b2中各樣本xi是否屬于正域元素,需要遍歷b2∪b3∪b1:
判斷x1是否屬于正域,首先檢查正域標志集合,由于x1對應(yīng)的正域標志為0,無法根據(jù)正域標志做判斷,需要計算x1的鄰域。根據(jù)桶的檢索順序可知,x1屬于b2,所以優(yōu)先檢索b2,即優(yōu)先判斷x1與x2,x3,x6之間的關(guān)系,根據(jù)決策屬性過濾策略可知,x2,x3與x1的決策屬性值相同,所以無需計算d(x1,x2)和d(x1,x3),x1與x6決策屬性值不同,需進一步計算d(x1,x6),可得d(x1,x6)=0.19,d(x1,x6)大于鄰域半徑δ,x1與x6不構(gòu)成鄰域關(guān)系,無法根據(jù)x6對x1做出判斷;繼續(xù)在b3中搜索x1的鄰域樣本,由于x1與x4決策屬性值不一樣,計算可知d(x1,x4)=0.21,x1與x4不構(gòu)成鄰域關(guān)系,無法根據(jù)x4對x1做出判斷;繼續(xù)在b1中搜索鄰域樣本,因為x1與x7決策屬性值相同,所以無需計算d(x7,x1);至此,x1的鄰域已經(jīng)計算完畢,由上述過程可知x1屬于正域;
步驟s6-6:接下來判斷x2是否屬于正域,首先檢查正域標志集合,由于x2對應(yīng)的正域標志為0,無法根據(jù)正域標志做判斷,需要計算x2的鄰域。由上面分析可知,首先計算d(x2,x6),可得d(x2,x6)=0.09,所以可以判定x2是非正域樣本,將x2的正域標志置為1,由于x6在判斷x7是否屬于正域的過程中已被確定為非正域元素,x6的正域標志已經(jīng)被置為1,所以這里無需重復(fù)操作;
步驟s6-7:接下來判斷x3是否屬于正域,首先檢查正域標志集合,由于x3對應(yīng)的正域標志為0,無法根據(jù)正域標志做判斷,需要計算x3的鄰域。同理,計算可得d(x3,x6)=0.19,d(x3,x4)=0.19,x3與x6、x4均不構(gòu)成鄰域關(guān)系,且其它候選樣本與x3決策屬性值都相同,所以x3屬于正域;
步驟s6-8:接下來判斷x6是否屬于正域,首先檢查正域標志集合,發(fā)現(xiàn)x6的正域標志為1,所以無需查找x6的鄰域,可以直接判斷x6是非正域元素。至此,b2桶中的樣本正域判斷完畢。
步驟s6-9:接下來判斷b3中各樣本xi是否屬于正域元素,需要遍歷b3∪b4∪b2:
判斷x4是否屬于正域,首先檢查正域標志集合,由于x4對應(yīng)的正域標志為0,無法根據(jù)正域標志做判斷,需要計算x4的鄰域。根據(jù)桶的檢索順序可知,優(yōu)先檢索b3,因為b3中只有x4自身,所以在b4中查找x4的鄰域樣本,發(fā)現(xiàn)x4與x5決策屬性值不同,需進一步計算d(x4,x5),可得d(x4,x5)=0.04,d(x4,x5)小于鄰域半徑δ,所以可以判定x4是非正域元素,將x4的正域標志置為1,根據(jù)鄰域關(guān)系的對稱性可知x5也是非正域元素,所以將x5的正域標志也置為1。至此,b3桶中的樣本正域判斷完畢。
步驟s6-10:接下來判斷b4中各樣本xi是否屬于正域元素,需要遍歷b4∪b3:
判斷x5是否屬于正域,首先檢查正域標志集合,發(fā)現(xiàn)x5的正域標志為1,所以無需查找x5的鄰域,可以直接判斷x5是非正域元素,同理,x5的正域標志已經(jīng)被置為1,所以這里無需重復(fù)操作;
步驟s6-11:接下來判斷x8是否屬于正域,首先檢查正域標志集合,由于x8對應(yīng)的正域標志為0,無法根據(jù)正域標志做判斷,需要計算x8的鄰域。同理,因為x8與x5具有相同的決策屬性值,所以轉(zhuǎn)向計算d(x8,x4),可得d(x8,x4)=0.08,d(x8,x4)小于鄰域半徑δ,所以可以判定x8是非正域樣本,將x8的正域標志置為1。至此,b4桶中的樣本正域判斷完畢。
步驟s6-12:輸出修改后的正域標志集合:f={0,1,0,1,1,1,1,1}。
以下為與上述方法實施例對應(yīng)的系統(tǒng)實施例,本實施系統(tǒng)可與上述實施方式互相配合實施。上述實施方式中提到的相關(guān)技術(shù)細節(jié)在本實施系統(tǒng)中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實施系統(tǒng)中提到的相關(guān)技術(shù)細節(jié)也可應(yīng)用在上述實施方式中。
本發(fā)明還提供了一種獲得鄰域和正域的系統(tǒng),其中包括:
遍歷模塊:用于將哈希分桶后的數(shù)據(jù)集作為算法的輸入,其中該數(shù)據(jù)集包括多個數(shù)據(jù)桶,每個該數(shù)據(jù)桶由多個樣本組成,遍歷每個該數(shù)據(jù)桶中的樣本,將當前遍歷到的樣本作為當前樣本,并為每一個該樣本設(shè)置一個正域標志用以記錄相應(yīng)樣本是否屬于正域樣本,并將該正域標志集合,作為正域標志集合;
第一判斷模塊:用于判斷該當前樣本是否已經(jīng)被標記為非正域樣本,若是則終止對該當前樣本的正域判斷流程,對其他樣本進行正域判斷,否則在該數(shù)據(jù)集中查找該當前樣本的鄰域樣本;
第二判斷模塊:用于判斷該當前樣本和該鄰域樣本的決策屬性值是否相同,若是則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本,否則判斷該當前樣本和該鄰域樣本是否互為鄰域,若是則判定該當前樣本屬于非正域樣本,并通過正域標志將該當前樣本和該鄰域樣本標記為非正域樣本,否則舍棄該鄰域樣本,檢索該當前樣本的其它鄰域樣本;
輸出模塊:完成所有樣本的正域判斷后,輸出該正域標志集合。
該獲得鄰域和正域的系統(tǒng),其中該正域標志置為0代表該當前樣本為正域元素,該正域標志置為1代表該當前樣本為非正域元素,所有的正域標志組成正域標志集合。
該獲得鄰域和正域的系統(tǒng),其中該第一判斷模塊還包括鄰域樣本查找模塊:用于按照先遍歷該當前樣本所在的桶,然后再遍歷相鄰的兩個桶的順序查找該當前樣本的鄰域樣本。
該獲得鄰域和正域的系統(tǒng),其中該正域標志集合的長度等于該數(shù)據(jù)集中樣本的總數(shù)。
該獲得鄰域和正域的系統(tǒng),其中該第二判斷模塊包括鄰域判斷模塊:用于計算該當前樣本和該鄰域樣本之間的距離,并判該距離與鄰域半徑的大小關(guān)系,若該距離小于等于鄰域半徑,則該當前樣本和該鄰域樣本互為鄰域。該獲得鄰域和正域的系統(tǒng),其中該第二判斷模塊包括鄰域判斷模塊:用于計算該當前樣本和該鄰域樣本之間的距離,并判該距離與鄰域半徑的大小關(guān)系,若該距離小于等于鄰域半徑,則該當前樣本和該鄰域樣本互為鄰域。
雖然本發(fā)明以上述實施例公開,但具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明,任何本技術(shù)領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的構(gòu)思和范圍內(nèi),可作一些的變更和完善,故本發(fā)明的權(quán)利保護范圍以權(quán)利要求書為準。