本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體而言,涉及一種離群點的挖掘方法和一種離群點的挖掘裝置。
背景技術(shù):
例外數(shù)據(jù)挖掘是數(shù)據(jù)挖掘中的一個重要研究內(nèi)容,其目的是發(fā)現(xiàn)數(shù)據(jù)集中行為異常的少量數(shù)據(jù)對象。其中的例外即為離群點,所謂離群點是指在數(shù)據(jù)集中,常常存在一些數(shù)據(jù)對象,它們不符合數(shù)據(jù)的一般模型,因此稱這樣的數(shù)據(jù)對象為離群點。例外數(shù)據(jù)挖掘技術(shù)都需要對于異常情況做出快速而敏感的檢測,這些都為離群點的挖掘提供了潛在的應(yīng)用背景。
離群點挖掘可以描述如下:對于給定的N個數(shù)據(jù)點或?qū)ο蟮募希邦A(yù)期的離群點的數(shù)目k,是指發(fā)現(xiàn)與剩余的數(shù)據(jù)相比是有顯著異常的或不一致的前k個對象。近年來,基于數(shù)據(jù)挖掘思想的離群點挖掘研究取得了一系列重要的成果和挖掘方法,例如基于深度的方法、基于距離的方法和基于密度的方法。但是,現(xiàn)有的離群點挖掘算法均是對點集中的所有點進行檢測,以選擇出符合條件的點作為挖掘結(jié)果。
由于點集中點的數(shù)量較多,若對點集中的所有點均進行檢測以確定離群點,無疑會增加數(shù)量繁多的計算量,同時也會增加算法的運行時長。
因此,如何能夠在進行離群點的挖掘時,減少挖掘算法的計算量,以降低挖掘算法的運行時長成為亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明正是基于上述技術(shù)問題至少之一,提出了一種新的離群點的挖掘方案,可以有效減少在進行離群點挖掘時需要檢測的數(shù)據(jù)量,從而減少了挖掘算法的計算量,降低了挖掘算法的運行時長。
有鑒于此,本發(fā)明提出了一種離群點的挖掘方法,包括:將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元,并確定所述多維數(shù)據(jù)集中的每個數(shù)據(jù)點所在的網(wǎng)格單元;根據(jù)所述多個網(wǎng)格單元中的每個網(wǎng)格單元內(nèi)的數(shù)據(jù)點的個數(shù),確定所述多個網(wǎng)格單元中的邊界單元;基于LOF(Local Outlier Factor,局部異常因子)算法對所述邊界單元中的數(shù)據(jù)點進行離群點的挖掘。
在該技術(shù)方案中,由于聚類的點集都有一定的邊界點,邊界點所處的范圍即邊界單元,而聚類的點通常是不可能成為離群點的,因此通過將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元,以根據(jù)每個網(wǎng)格單元內(nèi)的數(shù)據(jù)點的個數(shù),確定多個網(wǎng)格單元中的邊界單元,進而采用LOF算法對所述邊界單元中的數(shù)據(jù)點進行離群點的挖掘,使得能夠在進行離群點挖掘時,先排除掉不可能成為離群點的范圍,即非邊界單元,然后僅對可能出現(xiàn)離群點的邊界單元進行離群點的挖掘,有效減少了在進行離群點挖掘時需要檢測的數(shù)據(jù)量,從而減少了挖掘算法的計算量,降低了挖掘算法的運行時長。
在上述技術(shù)方案中,優(yōu)選地,所述將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元的步驟具體包括:根據(jù)所述多維數(shù)據(jù)集中每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算所述每一維數(shù)據(jù)集的劃分間隔值;基于所述每一維數(shù)據(jù)集的劃分間隔值將所述多維數(shù)據(jù)集劃分為多個網(wǎng)格單元。
在該技術(shù)方案中,通過根據(jù)每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算每一維數(shù)據(jù)集的劃分間隔值,使得能夠?qū)⒕嚯x近的點分到一個網(wǎng)格單元中,同時又不會導(dǎo)致劃分間隔值取值過大而損失劃分精度的問題,也不會導(dǎo)致劃分間隔取值過小而產(chǎn)生較多的網(wǎng)格單元而增加離群點挖掘的計算量。
在上述任一技術(shù)方案中,優(yōu)選地,根據(jù)所述多維數(shù)據(jù)集中每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算所述每一維數(shù)據(jù)集的劃分間隔值的步驟具體包括:
將所述每一維數(shù)據(jù)集中的數(shù)據(jù)點進行排序,以確定所述每一維數(shù)據(jù)集的值域;計算所述每一維數(shù)據(jù)集中相鄰數(shù)據(jù)點之間的間隔值,并統(tǒng)計每個間隔值的個數(shù);根據(jù)以下公式計算所述每一維數(shù)據(jù)集的劃分間隔值:
其中,si表示維標(biāo)記,表示si維的網(wǎng)格劃分的間隔值,li表示在si維中具有不同間隔值的個數(shù),每個間隔值及出現(xiàn)的次數(shù)分別為Invt、mt。
在上述任一技術(shù)方案中,優(yōu)選地,確定所述多個網(wǎng)格單元中的邊界單元的步驟具體包括:通過哈希表存儲所述多個網(wǎng)格單元中的非空網(wǎng)格單元的信息;根據(jù)所述非空網(wǎng)格單元的相鄰單元內(nèi)的數(shù)據(jù)點的數(shù)量,確定所述多個網(wǎng)格單元中的邊界單元。
在該技術(shù)方案中,通過采用哈希表形式的數(shù)據(jù)結(jié)構(gòu)來存儲網(wǎng)格單元信息,可以有效減少遍歷和查詢的時間,從而減少算法的執(zhí)行時間。通過只記錄有數(shù)據(jù)點的非空網(wǎng)格單元,可以防止當(dāng)維數(shù)增加時網(wǎng)格單元數(shù)量呈指數(shù)增加而導(dǎo)致存儲量增加的問題。其中,對于每個非空網(wǎng)格單元,如果其相鄰單元含有少于預(yù)定數(shù)量的點,則這個單元稱為邊界單元。
在上述任一技術(shù)方案中,優(yōu)選地,基于LOF算法對所述邊界單元中的數(shù)據(jù)點進行離群點的挖掘的步驟具體包括:基于所述LOF算法計算所述邊界單元中的每個數(shù)據(jù)點的LOF值;按照LOF值從大到小的順序,取出所述邊界單元中預(yù)定個數(shù)的數(shù)據(jù)點作為挖掘出的所述離群點。
根據(jù)本發(fā)明的另一方面,還提出了一種離群點的挖掘裝置,包括:劃分單元,用于將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元,并確定所述多維數(shù)據(jù)集中的每個數(shù)據(jù)點所在的網(wǎng)格單元;確定單元,用于根據(jù)所述多個網(wǎng)格單元中的每個網(wǎng)格單元內(nèi)的數(shù)據(jù)點的個數(shù),確定所述多個網(wǎng)格單元中的邊界單元;處理單元,用于基于LOF算法對所述邊界單元中的數(shù)據(jù)點進行離群點的挖掘。
在該技術(shù)方案中,由于聚類的點集都有一定的邊界點,邊界點所處的范圍即邊界單元,而聚類的點通常是不可能成為離群點的,因此通過將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元,以根據(jù)每個網(wǎng)格單元內(nèi)的數(shù)據(jù)點的個數(shù),確定多個網(wǎng)格單元中的邊界單元,進而采用LOF算法對所述邊界單元中的數(shù)據(jù)點進行離群點的挖掘,使得能夠在進行離群點挖掘時,先排除掉不 可能成為離群點的范圍,即非邊界單元,然后僅對可能出現(xiàn)離群點的邊界單元進行離群點的挖掘,有效減少了在進行離群點挖掘時需要檢測的數(shù)據(jù)量,從而減少了挖掘算法的計算量,降低了挖掘算法的運行時長。
在上述技術(shù)方案中,優(yōu)選地,所述劃分單元包括:第一計算單元,用于根據(jù)所述多維數(shù)據(jù)集中每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算所述每一維數(shù)據(jù)集的劃分間隔值;執(zhí)行單元,用于基于所述每一維數(shù)據(jù)集的劃分間隔值將所述多維數(shù)據(jù)集劃分為多個網(wǎng)格單元。
在該技術(shù)方案中,通過根據(jù)每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算每一維數(shù)據(jù)集的劃分間隔值,使得能夠?qū)⒕嚯x近的點分到一個網(wǎng)格單元中,同時又不會導(dǎo)致劃分間隔值取值過大而損失劃分精度的問題,也不會導(dǎo)致劃分間隔取值過小而產(chǎn)生較多的網(wǎng)格單元而增加離群點挖掘的計算量。
在上述任一技術(shù)方案中,優(yōu)選地,所述第一計算單元具體用于:將所述每一維數(shù)據(jù)集中的數(shù)據(jù)點進行排序,以確定所述每一維數(shù)據(jù)集的值域;計算所述每一維數(shù)據(jù)集中相鄰數(shù)據(jù)點之間的間隔值,并統(tǒng)計每個間隔值的個數(shù);根據(jù)以下公式計算所述每一維數(shù)據(jù)集的劃分間隔值:
其中,si表示維標(biāo)記,表示si維的網(wǎng)格劃分的間隔值,li表示在si維中具有不同間隔值的個數(shù),每個間隔值及出現(xiàn)的次數(shù)分別為Invt、mt。
在上述任一技術(shù)方案中,優(yōu)選地,所述確定單元具體用于:通過哈希表存儲所述多個網(wǎng)格單元中的非空網(wǎng)格單元的信息,并根據(jù)所述非空網(wǎng)格單元的相鄰單元內(nèi)的數(shù)據(jù)點的數(shù)量,確定所述多個網(wǎng)格單元中的邊界單元。
在該技術(shù)方案中,通過采用哈希表形式的數(shù)據(jù)結(jié)構(gòu)來存儲網(wǎng)格單元信息,可以有效減少遍歷和查詢的時間,從而減少算法的執(zhí)行時間。通過只記錄有數(shù)據(jù)點的非空網(wǎng)格單元,可以防止當(dāng)維數(shù)增加時網(wǎng)格單元數(shù)量呈指數(shù)增加而導(dǎo)致存儲量增加的問題。其中,對于每個非空網(wǎng)格單元,如果其 相鄰單元含有少于預(yù)定數(shù)量的點,則這個單元稱為邊界單元。
在上述任一技術(shù)方案中,優(yōu)選地,所述處理單元包括:第二計算單元,用于基于所述LOF算法計算所述邊界單元中的每個數(shù)據(jù)點的LOF值;選取單元,用于按照LOF值從大到小的順序,取出所述邊界單元中預(yù)定個數(shù)的數(shù)據(jù)點作為挖掘出的所述離群點。
通過以上技術(shù)方案,可以有效減少在進行離群點挖掘時需要檢測的數(shù)據(jù)量,從而減少了挖掘算法的計算量,降低了挖掘算法的運行時長;并且在劃分網(wǎng)格單元時能夠選擇到合適的劃分間隔值,以將距離近的點分到一個網(wǎng)格單元中,同時又不會導(dǎo)致劃分間隔值取值過大而損失劃分精度的問題,也不會導(dǎo)致劃分間隔取值過小而產(chǎn)生較多的網(wǎng)格單元而增加離群點挖掘的計算量。
附圖說明
圖1示出了根據(jù)本發(fā)明的一個實施例的離群點的挖掘方法的示意流程圖;
圖2示出了根據(jù)本發(fā)明的實施例的離群點的挖掘裝置的示意框圖;
圖3示出了根據(jù)本發(fā)明的另一個實施例的離群點的挖掘方法的示意流程圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式對本發(fā)明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明的保護范圍并不受下面公開的具體實施例的限制。
圖1示出了根據(jù)本發(fā)明的一個實施例的離群點的挖掘方法的示意流程圖。
如圖1所示,根據(jù)本發(fā)明的一個實施例的離群點的挖掘方法,包括:
步驟102,將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元,并確定所述多維數(shù)據(jù)集中的每個數(shù)據(jù)點所在的網(wǎng)格單元;
步驟104,根據(jù)所述多個網(wǎng)格單元中的每個網(wǎng)格單元內(nèi)的數(shù)據(jù)點的個數(shù),確定所述多個網(wǎng)格單元中的邊界單元;
步驟106,基于LOF算法對所述邊界單元中的數(shù)據(jù)點進行離群點的挖掘。
在該技術(shù)方案中,由于聚類的點集都有一定的邊界點,邊界點所處的范圍即邊界單元,而聚類的點通常是不可能成為離群點的,因此通過將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元,以根據(jù)每個網(wǎng)格單元內(nèi)的數(shù)據(jù)點的個數(shù),確定多個網(wǎng)格單元中的邊界單元,進而采用LOF算法對所述邊界單元中的數(shù)據(jù)點進行離群點的挖掘,使得能夠在進行離群點挖掘時,先排除掉不可能成為離群點的范圍,即非邊界單元,然后僅對可能出現(xiàn)離群點的邊界單元進行離群點的挖掘,有效減少了在進行離群點挖掘時需要檢測的數(shù)據(jù)量,從而減少了挖掘算法的計算量,降低了挖掘算法的運行時長。
在上述技術(shù)方案中,優(yōu)選地,所述將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元的步驟具體包括:根據(jù)所述多維數(shù)據(jù)集中每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算所述每一維數(shù)據(jù)集的劃分間隔值;基于所述每一維數(shù)據(jù)集的劃分間隔值將所述多維數(shù)據(jù)集劃分為多個網(wǎng)格單元。
在該技術(shù)方案中,通過根據(jù)每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算每一維數(shù)據(jù)集的劃分間隔值,使得能夠?qū)⒕嚯x近的點分到一個網(wǎng)格單元中,同時又不會導(dǎo)致劃分間隔值取值過大而損失劃分精度的問題,也不會導(dǎo)致劃分間隔取值過小而產(chǎn)生較多的網(wǎng)格單元而增加離群點挖掘的計算量。
在上述任一技術(shù)方案中,優(yōu)選地,根據(jù)所述多維數(shù)據(jù)集中每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算所述每一維數(shù)據(jù)集的劃分間隔值的步驟具體包括:
將所述每一維數(shù)據(jù)集中的數(shù)據(jù)點進行排序,以確定所述每一維數(shù)據(jù)集的值域;計算所述每一維數(shù)據(jù)集中相鄰數(shù)據(jù)點之間的間隔值,并統(tǒng)計每個間隔值的個數(shù);根據(jù)以下公式計算所述每一維數(shù)據(jù)集的劃分間隔值:
其中,si表示維標(biāo)記,表示si維的網(wǎng)格劃分的間隔值,li表示在si維中具有不同間隔值的個數(shù),每個間隔值及出現(xiàn)的次數(shù)分別為Invt、mt。
在上述任一技術(shù)方案中,優(yōu)選地,確定所述多個網(wǎng)格單元中的邊界單元的步驟具體包括:通過哈希表存儲所述多個網(wǎng)格單元中的非空網(wǎng)格單元的信息;根據(jù)所述非空網(wǎng)格單元的相鄰單元內(nèi)的數(shù)據(jù)點的數(shù)量,確定所述多個網(wǎng)格單元中的邊界單元。
在該技術(shù)方案中,通過采用哈希表形式的數(shù)據(jù)結(jié)構(gòu)來存儲網(wǎng)格單元信息,可以有效減少遍歷和查詢的時間,從而減少算法的執(zhí)行時間。通過只記錄有數(shù)據(jù)點的非空網(wǎng)格單元,可以防止當(dāng)維數(shù)增加時網(wǎng)格單元數(shù)量呈指數(shù)增加而導(dǎo)致存儲量增加的問題。其中,對于每個非空網(wǎng)格單元,如果其相鄰單元含有少于預(yù)定數(shù)量的點,則這個單元稱為邊界單元。
在上述任一技術(shù)方案中,優(yōu)選地,基于LOF算法對所述邊界單元中的數(shù)據(jù)點進行離群點的挖掘的步驟具體包括:基于所述LOF算法計算所述邊界單元中的每個數(shù)據(jù)點的LOF值;按照LOF值從大到小的順序,取出所述邊界單元中預(yù)定個數(shù)的數(shù)據(jù)點作為挖掘出的所述離群點。
圖2示出了根據(jù)本發(fā)明的實施例的離群點的挖掘裝置的示意框圖。
如圖2所示,根據(jù)本發(fā)明的實施例的離群點的挖掘裝置200,包括:
劃分單元202,用于將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元,并確定所述多維數(shù)據(jù)集中的每個數(shù)據(jù)點所在的網(wǎng)格單元;確定單元204,用于根據(jù)所述多個網(wǎng)格單元中的每個網(wǎng)格單元內(nèi)的數(shù)據(jù)點的個數(shù),確定所述多個網(wǎng)格單元中的邊界單元;處理單元206,用于基于LOF算法對所述邊界單元中的數(shù)據(jù)點進行離群點的挖掘。
在該技術(shù)方案中,由于聚類的點集都有一定的邊界點,邊界點所處的范圍即邊界單元,而聚類的點通常是不可能成為離群點的,因此通過將多維數(shù)據(jù)集劃分為多個網(wǎng)格單元,以根據(jù)每個網(wǎng)格單元內(nèi)的數(shù)據(jù)點的個數(shù),確定多個網(wǎng)格單元中的邊界單元,進而采用LOF算法對所述邊界單元中 的數(shù)據(jù)點進行離群點的挖掘,使得能夠在進行離群點挖掘時,先排除掉不可能成為離群點的范圍,即非邊界單元,然后僅對可能出現(xiàn)離群點的邊界單元進行離群點的挖掘,有效減少了在進行離群點挖掘時需要檢測的數(shù)據(jù)量,從而減少了挖掘算法的計算量,降低了挖掘算法的運行時長。
在上述技術(shù)方案中,優(yōu)選地,所述劃分單元202包括:第一計算單元2022,用于根據(jù)所述多維數(shù)據(jù)集中每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算所述每一維數(shù)據(jù)集的劃分間隔值;執(zhí)行單元2024,用于基于所述每一維數(shù)據(jù)集的劃分間隔值將所述多維數(shù)據(jù)集劃分為多個網(wǎng)格單元。
在該技術(shù)方案中,通過根據(jù)每一維數(shù)據(jù)集的相鄰數(shù)據(jù)點之間的平均距離,計算每一維數(shù)據(jù)集的劃分間隔值,使得能夠?qū)⒕嚯x近的點分到一個網(wǎng)格單元中,同時又不會導(dǎo)致劃分間隔值取值過大而損失劃分精度的問題,也不會導(dǎo)致劃分間隔取值過小而產(chǎn)生較多的網(wǎng)格單元而增加離群點挖掘的計算量。
在上述任一技術(shù)方案中,優(yōu)選地,所述第一計算單元2022具體用于:將所述每一維數(shù)據(jù)集中的數(shù)據(jù)點進行排序,以確定所述每一維數(shù)據(jù)集的值域;計算所述每一維數(shù)據(jù)集中相鄰數(shù)據(jù)點之間的間隔值,并統(tǒng)計每個間隔值的個數(shù);根據(jù)以下公式計算所述每一維數(shù)據(jù)集的劃分間隔值:
其中,si表示維標(biāo)記,表示si維的網(wǎng)格劃分的間隔值,li表示在si維中具有不同間隔值的個數(shù),每個間隔值及出現(xiàn)的次數(shù)分別為Invt、mt。
在上述任一技術(shù)方案中,優(yōu)選地,所述確定單元204具體用于:通過哈希表存儲所述多個網(wǎng)格單元中的非空網(wǎng)格單元的信息,并根據(jù)所述非空網(wǎng)格單元的相鄰單元內(nèi)的數(shù)據(jù)點的數(shù)量,確定所述多個網(wǎng)格單元中的邊界單元。
在該技術(shù)方案中,通過采用哈希表形式的數(shù)據(jù)結(jié)構(gòu)來存儲網(wǎng)格單元信息,可以有效減少遍歷和查詢的時間,從而減少算法的執(zhí)行時間。通過只記錄有數(shù)據(jù)點的非空網(wǎng)格單元,可以防止當(dāng)維數(shù)增加時網(wǎng)格單元數(shù)量呈指 數(shù)增加而導(dǎo)致存儲量增加的問題。其中,對于每個非空網(wǎng)格單元,如果其相鄰單元含有少于預(yù)定數(shù)量的點,則這個單元稱為邊界單元。
在上述任一技術(shù)方案中,優(yōu)選地,所述處理單元206包括:第二計算單元2062,用于基于所述LOF算法計算所述邊界單元中的每個數(shù)據(jù)點的LOF值;選取單元2064,用于按照LOF值從大到小的順序,取出所述邊界單元中預(yù)定個數(shù)的數(shù)據(jù)點作為挖掘出的所述離群點。
綜上,本發(fā)明主要提出了一種基于網(wǎng)格聚類技術(shù)的離群點挖掘算法,該算法將離群點挖掘算法分成兩步挖掘過程:
1)先用基于網(wǎng)格的聚類方法刪除不可能成為離群點的點集,這一步稱之為挖掘前的數(shù)據(jù)準(zhǔn)備;
2)采用LOF算法來對第1步篩選所剩下的點集進行離群點的挖掘。
本發(fā)明提出的基于網(wǎng)格聚類技術(shù)的離群點挖掘算法的優(yōu)點是:
A、由于該算法首先采用聚類方法把非離群點集篩選出來刪除掉,然后再對剩下的可能成為離群點的點集做進一步考察,這樣一方面可以減少大部分不必要的計算,節(jié)省算法的運行時間,另一方面,避免了算法第2步在使用LOF方法判斷離群點時,對參數(shù)選擇要求高的不足;
B、該算法對相鄰單元的定義和網(wǎng)格的劃分加以改進,能更合理有效地對網(wǎng)格進行劃分,且能根據(jù)數(shù)據(jù)信息自動生成劃分間隔參數(shù),體現(xiàn)了算法在性能上的改進;
C、該算法適用于處理大數(shù)據(jù)集和高維數(shù)據(jù)集。
具體地,以下詳細說明本發(fā)明的技術(shù)方案。
一個具有d個屬性的數(shù)據(jù)庫可認(rèn)為是一個具有d維數(shù)據(jù)空間的數(shù)據(jù)集,因此數(shù)據(jù)庫中的每一條數(shù)據(jù)記錄與數(shù)據(jù)空間中的一個點相對應(yīng)。本發(fā)明中的聚類算法采用的是基于網(wǎng)格的聚類方法,該方法將數(shù)據(jù)空間分割成網(wǎng)格狀,這樣將數(shù)據(jù)空間量化為有限數(shù)目的大小相同的網(wǎng)格單元,這些網(wǎng)格單元可簡稱為單元。因此,數(shù)據(jù)集中的每個數(shù)據(jù)點都有表示它們各維的數(shù)值,從而各數(shù)據(jù)點分屬于相應(yīng)的網(wǎng)格單元,這樣所需進行的聚類操作可在網(wǎng)格上進行。在網(wǎng)格上進行聚類操作的關(guān)鍵技術(shù)主要包括確定聚類區(qū)域、網(wǎng)格的劃分技術(shù)和存儲技術(shù)。
1、確定聚類區(qū)域
由于本發(fā)明采用基于密度的算法,因此聚類的定義就是:聚類就是一個區(qū)域,滿足該區(qū)域中的點的密度大于與之相鄰的區(qū)域。在網(wǎng)格數(shù)據(jù)結(jié)構(gòu)中,由于每個網(wǎng)格單元都有相同的體積,因此單元中數(shù)據(jù)點密度的計算可以轉(zhuǎn)換成簡單的數(shù)據(jù)點計數(shù),即落到某個單元中點的個數(shù)當(dāng)成這個單元的密度。這時可以指定一個數(shù)值δ,當(dāng)某單元中點的個數(shù)大于該數(shù)值時,就說這個單元是密集的。最后,聚類也就定義為連通的所有的“密的”單元的集合。給定一個d維數(shù)據(jù)空間D,D中每維間隔數(shù)分別為k1,k2,…,kd,即第i維被劃分成ki等分(1≤i≤d)。一個網(wǎng)格單元cell可由一個d維數(shù)組表示,即cell=C[s1][s2]…[sd],其中si(1≤i≤d)標(biāo)記維ID,表示第i維的第si個網(wǎng)格,si的取值在0和ki-1之間。
定義1:對于一個給定的網(wǎng)格單元cell=C[i1][i2]…[id],Ncell(cell)是其相鄰單元的集合,則:Ncell(cell)={NC[j1][j2]…[jd]|jp=ip±1},其中:1≤p≤d。
由定義1可知,在d維數(shù)據(jù)空間中,一個單元有3d-1個相鄰單元。
定義2:單元cell1=C1[i1][i2]…[id]與單元cell2=C2[j1][j2]…[jd]是相鄰的,當(dāng)以下條件被滿足:|ip-jp|=1,p=v(1≤v≤d)ip=j(luò)p,p=1,2,…,v-1,v+1,…,d。
根據(jù)以上定義,d維數(shù)據(jù)空間中一個單元有2d個相鄰單元。由此,不僅參與計算的單元數(shù)目大為減少,而且單元增加與維數(shù)的關(guān)系由指數(shù)增長變?yōu)榫€性增長,所以能進一步減少算法運行所需的時間。
定義3:對于每個非空網(wǎng)格單元(含有數(shù)據(jù)點的單元),如果其相鄰單元為空或含有少于閾值δ的點,則這個單元稱為邊界單元,否則稱為非邊界單元。
每個聚類的點集一定有邊界點,這樣可以根據(jù)所求到的邊界單元求出聚類點的大致范圍,在這個范圍內(nèi)的點稱為聚類點,它們是不可能成為離群點的,為此必須將這些聚類點刪除。這種方法的主要優(yōu)點是速度快,其處理時間獨立于數(shù)據(jù)點的數(shù)目,僅依賴于量化空間中每一維上的網(wǎng)格單元數(shù)目。
2、網(wǎng)格的劃分
網(wǎng)格的劃分與劃分間隔大小的選擇直接影響著算法的正確性與算法的執(zhí)行效率。如果間隔w選擇過大,則會導(dǎo)致一個含有離群點的網(wǎng)格單元的相鄰單元都不為空,該單元作為非空單元被刪除,其離群點不能被檢測到,從而引起有用數(shù)據(jù)的丟失;如果w選擇過小,則較稀疏的聚類點難以被刪除,這樣就會增加后面LOF的計算工作。因此,如何選擇一個好的方法來合理地劃分每一維是算法的關(guān)鍵所在,也是研究的重點。
劃分間隔最簡單的一種做法就是每個維度都劃分為相同的間隔。如數(shù)據(jù)集共有d維,每維取m個間隔,則網(wǎng)格單元總數(shù)就是m×d。這種劃分方法主要有兩點不足:(1)劃分的單元數(shù)隨維數(shù)呈指數(shù)增長,不適用于高維空間的劃分;(2)在劃分中也難以給m選定一個合適的值,因為m的一個微小變化都會引起單元數(shù)目的急劇波動。為了解決這個問題,本發(fā)明提出的劃分間隔的具體做法是:(1)各維劃分間隔的設(shè)定是獨立的,即每一維劃分的間隔是不同的;(2)在對其中每一維劃分時,以各相鄰數(shù)據(jù)點之間的距離分布規(guī)律為依據(jù)來確定劃分間隔。首先把每一維數(shù)據(jù)單獨取出、排序,計算相鄰兩點之間的距離,然后選擇合理單維分布公式計算出的距離作為劃分間隔。根據(jù)這種方法所計算出的劃分間隔的優(yōu)點是:能較好地把距離近的點分到一起,而又不會取值過大而損失劃分精度,或過小產(chǎn)生多余的單元而增加計算量。而且在每維的間隔相差較大的情況下,可以減少參與計算的網(wǎng)格單元數(shù)目。
3、存儲結(jié)構(gòu)
在確定各維劃分的間隔后,可確定出各數(shù)據(jù)點所屬的網(wǎng)格單元位置。為了節(jié)省存儲空間,提高算法性能并加快算法的速度,本發(fā)明在存儲網(wǎng)格結(jié)構(gòu)時,一是只記錄有數(shù)據(jù)點的非空網(wǎng)格單元,這樣就防止當(dāng)維數(shù)增加時網(wǎng)格單元數(shù)量呈指數(shù)增加;二是采用Hash表(哈希表)形式的數(shù)據(jù)結(jié)構(gòu)來存儲網(wǎng)格單元信息,它可以有效減少遍歷和查詢時間,從而減少算法的執(zhí)行時間。
Hash表的結(jié)構(gòu)如表1所示:
表1
如表1所示,count1表示在該位置沖突的網(wǎng)格單元數(shù);flag為網(wǎng)格單元標(biāo)記,指出該單元是否為邊界單元;count2表示該單元含有的數(shù)據(jù)點數(shù);cellinfo表示網(wǎng)格單元的維數(shù)信息(在數(shù)據(jù)空間的位置);conflictcell表示當(dāng)單元沖突時,指向下一個沖突單元的位置。
以下介紹本發(fā)明提出的關(guān)于離群點的數(shù)據(jù)挖掘和基于網(wǎng)格聚類技術(shù)的離群點挖掘算法:
1、離群點定義和數(shù)據(jù)集特征分析
盡管不同的離群點檢測方法對于離群點的定義存在一定的差別,但Hawkins給出的形式化定義被研究者廣泛接受。
定義1:如果一個數(shù)據(jù)樣本與其它樣本之間存在足以引起懷疑的差異,則稱其為離群點。
雖然Hawkins的定義形象地描述了離群點的特征,但卻沒有給出任何用于發(fā)現(xiàn)離群點的實現(xiàn)途徑。為此,本發(fā)明引用Knorr等人基于距離的離群點的定義如下∶
定義2:給定數(shù)據(jù)集D和閾值ξ,σ,稱樣本q∈D為離群點,如果存在至多ξ個樣本位于q的σ距離之內(nèi)。
根據(jù)上述定義,Knorr等構(gòu)造了基于距離的離群點發(fā)現(xiàn)算法FindAllOutsM和FindAllOutsD,它們分別用于對可駐留內(nèi)存的和基于內(nèi)外存交換的數(shù)據(jù)集的離群點分析。盡管Knorr等聲稱其算法具有相對于數(shù)據(jù)量的線性時間復(fù)雜度,然而對大規(guī)模數(shù)據(jù)集卻需要三次內(nèi)外存交換和過濾。顯然,該算法無法取得令人滿意的效果。
構(gòu)造高效的離群點檢測方法必須深入研究數(shù)據(jù)集本身的分布特征。其中,數(shù)據(jù)集的主體聚類性和離群點個別屬性差異性可被用來有效提高離群 點的檢測效率。主體聚類性是指數(shù)據(jù)集的主體數(shù)據(jù)來自于對正常數(shù)據(jù)源的采樣,相對于離群點而言,這些數(shù)據(jù)具有明顯的聚類特征,即大量數(shù)據(jù)密集分布于較小的空間范圍內(nèi)。因此,在進行離群點檢測時,對于分布于稠密區(qū)域的數(shù)據(jù)的過濾處理將不會影響離群點的檢測效果。
其次,離群點是相對于正常的數(shù)據(jù)樣本而言的。通常地,它們分布于正常數(shù)據(jù)樣本的周圍或構(gòu)成遠離數(shù)據(jù)主體的低密度聚類。然而,離群點并非在所有的屬性上與正常數(shù)據(jù)樣本存在明顯的差異。例如,在研究信用卡使用記錄數(shù)據(jù)集的眾多屬性時,惡意透支者的大部分屬性與正常消費者不存在明顯差異,其異常行為模式僅體現(xiàn)在個別的屬性字段。因此,在采用基于距離的離群點檢測時,采用通常的歐氏距離考慮離群點相對于正常樣本點的全局差異不具有實際意義。為此,本發(fā)明在數(shù)據(jù)集的屬性域空間內(nèi)引入距離,它使離群點檢測更加關(guān)注于數(shù)據(jù)樣本在個別屬性上的差異性。
定義3:點p的局部異常因子(LOF):LOF用來表征數(shù)據(jù)集中每個數(shù)據(jù)對象的異常程度,并且這種異常是局部的,即與所求數(shù)據(jù)對象一定范圍內(nèi)的鄰居的分布有關(guān)。
點p的LOF值定義為如下數(shù)學(xué)表達式:
其中,LOF是p的MinPts鄰近點的鄰近密度和p的鄰近密度比值的平均值,p的鄰近密度越低,p的LOF值越高。顯然,LOF值越高的點就是孤立點,這對于準(zhǔn)確查找孤立點指定了相對明確的標(biāo)準(zhǔn)。
2、基于網(wǎng)格聚類技術(shù)的離群點挖掘算法
2.1、算法思想
首先用基于網(wǎng)格的聚類方法將空間劃分成為不同的網(wǎng)格單元,并確定各數(shù)據(jù)點所在的網(wǎng)格單元,根據(jù)統(tǒng)計每個網(wǎng)格單元相鄰單元中所含有的數(shù)據(jù)點數(shù),確定該單元是否為邊界單元,進一步刪除非邊界單元,即刪除非邊界單元中不可能成為離群點的點集,這一步稱之為挖掘前的數(shù)據(jù)準(zhǔn)備,減小了下一步對數(shù)據(jù)點LOF值的計算量,提高算法的運行時間;然后采用LOF算法來對第1步篩選所剩下的點集進行離群點的挖掘。
2.2、算法步驟
基于網(wǎng)格聚類技術(shù)的離群點挖掘算法主要由以下兩個步驟組成:
第1步:采用基于網(wǎng)格聚類技術(shù)找出大部分聚類數(shù)據(jù),并將其刪除。
(1)劃分?jǐn)?shù)據(jù)空間
第1遍掃描數(shù)據(jù)集,以各相鄰數(shù)據(jù)點之間的距離分布規(guī)律,具體地說是以各相鄰數(shù)據(jù)點之間的平均距離為依據(jù)來確定每一維的等分劃分的間隔。對每一維數(shù)據(jù)劃分間隔的過程如下:
1)將各數(shù)據(jù)點排序,確定每維的值域。
2)求各相鄰數(shù)據(jù)點之間的間隔值,并記下每個間隔值和它們出現(xiàn)的次數(shù)。
3)按下面的公式計算得到的值四舍五入作為該維網(wǎng)格單元劃分的間隔值:
其中,si表示維標(biāo)記,Wsi表示該維網(wǎng)格劃分的間隔值,li表示在si中具有不同間隔值的個數(shù),其中每個間隔的間隔值及出現(xiàn)的相應(yīng)次數(shù)分別為Invt、mt。
(2)建立Hash表(如表1所示)
第2遍掃描數(shù)據(jù)集,將每個數(shù)據(jù)點所在的網(wǎng)格信息記錄到Hash表H中。在記錄每個點時,首先計算出該點所在的網(wǎng)格單元,然后通過哈希函數(shù)將對應(yīng)的網(wǎng)格單元散列(映射)到表H中。如果在表H中沒有該點所在網(wǎng)格單元記錄,則把該單元的相關(guān)信息(如cellinfo,conflictcell)加入到H中,并對相應(yīng)的count1,count2進行計數(shù)操作;如果該點所在網(wǎng)格單元已經(jīng)記錄在H中,則僅對相應(yīng)的count2進行計數(shù)操作。
(3)對H表中每個網(wǎng)格單元檢查它的相鄰單元,判斷是否為邊界單元,并對非邊界單元做出標(biāo)記。當(dāng)全部網(wǎng)格單元判斷結(jié)束后,刪除所有非邊界單元。在H表中刪除所有非邊界單元后,可通過H表中cellinfo等信息從數(shù)據(jù)集中取出剩下的數(shù)據(jù)點集。
第2步:對篩選后剩下的點集,采用LOF算法計算它們的LOF值, 然后取出值高的前k個數(shù)據(jù)點作為離群點挖掘結(jié)果。
以上過程如圖3所示,根據(jù)本發(fā)明的另一個實施例的離群點的挖掘方法,包括:
步驟302,載入數(shù)據(jù)。
步驟304,對每一維數(shù)據(jù)進行排序,確定劃分間隔。
步驟306,掃描數(shù)據(jù)集,計算每一個點所在的網(wǎng)格單元。
步驟308,判斷是否為邊界單元,若是,則執(zhí)行步驟312;否則,執(zhí)行步驟310。
步驟310,刪除非邊界單元。
步驟312,獲得剩下的點信息。
步驟314,計算剩下點的LOF值。
步驟316,輸出LOF值較高的k個點作為離群點挖掘結(jié)果。
2.3、算法實現(xiàn)主要部分的偽代碼
本發(fā)明提出的基于網(wǎng)格聚類技術(shù)的離群點挖掘算法的優(yōu)點如下:
1)由于該算法首先采用聚類方法把非離群點集篩選出來刪除掉,然后再對剩下的可能成為離群點的點集做進一步考察,這樣一方面可以減少大部分不必要的計算,節(jié)省算法的運行時間,另一方面,避免了算法第2步在使用LOF方法判斷離群點時,對參數(shù)選擇要求高的不足。
2)該算法對相鄰單元的定義和網(wǎng)格的劃分加以改進,能更合理有效地對網(wǎng)格進行劃分,且能根據(jù)數(shù)據(jù)信息自動生成劃分間隔參數(shù),體現(xiàn)了算法在性能上的改進。
3)該算法適用于處理大數(shù)據(jù)集和高維數(shù)據(jù)集。
4)為了快速判斷是否為邊界單元和算法執(zhí)行效率,一是采用Hash表來存儲網(wǎng)格結(jié)構(gòu)信息,以提高查找相鄰單元的速度;二是基于網(wǎng)格聚類 技術(shù)的離群點挖掘算法是以各相鄰數(shù)據(jù)點之間的距離分布規(guī)律為依據(jù)來確定數(shù)據(jù)空間劃分間隔的,與其它數(shù)據(jù)空間劃分的方法相比,既能使劃分所得的網(wǎng)格大小較為適合算法的執(zhí)行,又能使所產(chǎn)生的網(wǎng)格單元數(shù)目少,這樣也就減少了算法的執(zhí)行時間。
以上結(jié)合附圖詳細說明了本發(fā)明的技術(shù)方案,本發(fā)明提出了一種新的離群點的挖掘方案,可以有效減少在進行離群點挖掘時需要檢測的數(shù)據(jù)量,從而減少了挖掘算法的計算量,降低了挖掘算法的運行時長;并且在劃分網(wǎng)格單元時能夠選擇到合適的劃分間隔值,以將距離近的點分到一個網(wǎng)格單元中,同時又不會導(dǎo)致劃分間隔值取值過大而損失劃分精度的問題,也不會導(dǎo)致劃分間隔取值過小而產(chǎn)生較多的網(wǎng)格單元而增加離群點挖掘的計算量。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。