一種改進的自適應快速AF-DBSCAN聚類演算法

本人研究生期間寫的關於聚類演算法的一篇論文,已發表,希望對大家學習機器學習、資料探勘等相關研究有所幫助!

一種改進的自適應快速AF-DBSCAN聚類演算法

An Improved Adaptive and Fast AF-DBSCAN Clustering Algorithm

摘要:針對基於密度的DBSCAN聚類演算法及其改進演算法在全域性引數Eps與MinPts選擇上需人工干預以及區域查詢方式過程複雜和查詢易丟失物件等不足,提出一種改進的引數自適應以及區域快速查詢的密度聚類演算法。根據KNN分佈與數學統計分析自適應計算出最優全域性引數Eps與MinPts,避免聚類過程中的人工干預,實現聚類過程的全自動化。通過改進種子代表物件選取方式進行區域查詢,無需漏檢操作,有效提高聚類的效率。對4種典型資料集的密度聚類實驗結果表明,提出的方法有效解決了DBSCAN演算法引數選取困難和演算法效率的問題。

關鍵字:資料探勘;DBSCAN;區域查詢;全域性引數

Abstract:For the density-based DBSCAN clustering algorithm and its improved algorithm at the choice of the global parameter Eps and MinPts require manual intervention and the process of
regional query is complex and such query easily lose objects, improved adaptive parameters and fast regional query density clustering algorithm. According to KNN distribution and mathematical statistical analysis adaptively calculates the optimal global parameter
Eps and MinPts, which avoid manual intervention and achieve full automation of the clustering process. Through the improved the way of selecting the representative seed to query region, without losing objects, improved the efficiency of clustering. Density
clustering results of four typical data sets show that the proposed method effectively solves the difficulties of DBSCAN in parameter selection and efficiency.

Key words: Data Mining; DBSCAN;Region query; Global Parameters

0.引言

資料探勘作為一種從大量資料中發現感興趣資訊的技術,聚類演算法在資料探勘應用中已經得到日益廣泛的應用。其中,基於密度的聚類演算法可以發現任意形狀的簇且能夠較好地處理噪聲資料,越來越受到廣泛的關注。

DBSCAN演算法能夠發現任意形狀的簇,並有效識別離群點,但聚類之前需要人工選擇Eps和minPts 2個引數。當資料量增大時,要求較大的記憶體支援,I/O消耗也很大;當空間聚類的密度不均勻,聚類間距離相差很大時,聚類質量較差。針對DBSCAN演算法在大型資料庫與多密度資料集聚類精度低,計算複雜度高,全域性引數人工選取等問題,已有不少學者進行了相關研究:Selim
Mimaroglu等人[1]提出對位向量使用裁剪技術,提高DBSCAN演算法的執行時間;H. Zhou 等人[2] 針對DBSCAN中全域性引數Eps和MinPts人工確定的問題,發現距離分佈矩陣的每列資料符合一定的數學統計特性,自適應確定出聚類全域性引數;H.
Jiang等人[3]提出一種基於劃分的DBSCAN演算法,旨在解決DBSCAN演算法在記憶體佔用,處理高維資料和密度分佈不均資料聚類效果不好等問題;S.-H.
Yue等人[4]提出一種基於距離空間統計特性的方法,確定全域性引數;B. Borah等人[5]針對DBSCAN處理整個資料庫時記憶體佔率大的問題,提出一種改進的基於抽樣的DBSCAN演算法,可以有效聚類大規模空間資料;B.
Liu[6]提出一種基於密度的快速聚類方法,按照特定維的座標排序後,選擇有序的未被標記的在核心物件鄰域以外的點作為種子擴充套件簇,這樣執行區域查詢的頻率能夠降低,物件轉換為核函式提高了聚類精度,一定程度上減少了對密度閾值的依賴性;M. Yu[7]提出一種基於概率分佈的DBSCAN演算法;S.
Jahirabadkar[8]等人提出兩種聚類方式,一種方式可自適應確定引數Eps和另一種基於每個維度的資料得出子維資料的Eps引數;Z. Xiong[9]等人針對多密度分佈資料,提出DBSCAN-DLP演算法,通過分析資料的統計特性將資料集按照密度分級,再對各級別進行Eps引數估計;D.
Kellner[10]等人提出一種基於格點的DBSCAN演算法,解決了輸入引數難以估計的問題。

綜上所述,基於密度聚類演算法的改進點主要集中在全域性引數的選擇以及如何提高密度聚類效率等問題上。DBSCAN全域性引數選擇根據k-dist曲線人工確定,過程繁瑣,實用性不高。其他基於統計分析的方法,部分以特定資料分佈確定全域性引數,而資料分佈存在不確定性,以特定分佈規定不能準確反映資料的分佈特性,使計算出的全域性引數不準確;在提高密度聚類效率問題上,主要集中在區域查詢中的代表物件選擇方面,但是選擇的代表物件進行區域查詢時存在丟失物件現象,也有對丟失物件進行查漏操作,在一定程度上增加了區域查詢的複雜度。

1 DBSCAN 演算法及改進演算法思路

DBSCAN[2]是一種經典的基於密度聚類演算法,可以自動確定簇的數量,並能夠發現任意形狀的簇。Eps近鄰表示一個給定物件的Eps半徑內的近鄰稱為該物件的Eps近鄰,表示為NEps(p):

(1)

直接密度可達是指對於給定的Minpts和Eps,從物件q可以直接密度可達p,需要滿足的條件是:

(2)

由於DBSCAN演算法的全域性引數Eps和MinPts的選取依賴於人工干預,對密度分佈均勻的資料根據k-dist曲線升序排列後,人為選擇曲線變化幅度開始陡升的點作為Eps引數,並且確定MinPts引數為固定常量4,實施過程繁瑣,依賴於人工干預。本文提出一種全域性引數自適應選擇的方法,根據資料的距離空間的統計分佈特性,統計出k-dist值的分佈情況,再進行曲線擬合,擬合出分佈曲線,通過計算擬合曲線的拐點處對應的值,自適應確定出Eps引數,並根據資料中每個點Eps領域內點數的分佈情況,計算出引數MinPts。

DBSCAN以一個核心物件P來拓展一個簇,通過對包含在P鄰域內的點進行區域查詢擴充套件簇。由於包含在P中鄰域的物件相互交叉,Q是P的鄰域內的一個物件,如果它的鄰域被P中其他物件的鄰域所覆蓋,那麼Q的區域查詢操作就可以省略,Q不需要作為種子物件用於類的擴充套件。因此,用於Q的區域查詢時間和Q作為核心物件的記憶體佔用都可以被省去。而一個核心物件邊界的物件更有利於作為候選物件被選為種子,因為內部物件鄰域往往會被外部物件的鄰域覆蓋。因此,抽樣種子實際上是選擇的代表物件能夠準確描繪出核心物件鄰域形狀的一個問題。實際上,對於密度聚類,在核心物件鄰域內的相當一部分種子物件可以被忽略,而選擇出核心物件邊界的部分代表物件來進行類的擴充套件,從而達到減少區域查詢頻度的目的。

所以,為了自適應確定合適的全域性引數Eps和MinPts,減少記憶體佔用量和I/O消耗,提高DBSCAN的計算效率,
基於這些分析,本文提出一種改進的自適應快速演算法AF-DBSCAN(Adaptive and FastDensity-Based Spatial Clustering of Applications with Noise),旨在以自適應方式確定合理的全域性引數Eps和MinPts,以及區域查詢時選擇部分具有代表性的物件作為種子物件進行類擴充套件,而不採用所有核心物件的鄰域物件作為種子進行類拓展的方式。改進演算法演算法描述如下:

(1)自適應確定全域性引數Eps和MinPts;(2)將所有點分類,分別標記為核心點,邊界點和噪聲點;(3)刪除標記出的噪聲點;(4)連線距離在Eps距離累的所有核心點,並歸入到同一簇中;(5)各個簇中的核心點對應種子代表物件的選擇;(6)遍歷資料集,根據選擇的代表物件進行區域查詢,將邊界點分入與之對應核心點的簇中。如果資料集合中所有的點都被處理,則演算法結束。

2 AF-DBSCAN聚類演算法細節

2.1 引數Eps與引數MinPts的確定

由於密度衡量指標單一,資料集主要針對簇密度差異不明顯的資料。根據輸入資料集D計算出距離分佈矩陣DISTn×n,如公式(3)所示:

(3)

其中,n為資料集D的物件數目。DISTn×n是一個n行和n列的實對稱矩陣,其中每個元素表示資料集D中物件i和物件j之間的距離。

計算DISTn×n中的每個元素的值,然後逐行按照升序排列。用DISTn×i表示DISTn×n中第i列的的值。對DISTn×i中每一列進行升序排列得到KNN分佈,如圖1所示。

 

圖1 KNN分佈圖

其中,k=1,…,45,根據k-dist分佈曲線可以看出,k=4的dist4曲線可以反映出其他distk曲線的形狀。本文選擇k=4的distk(k-最近鄰距離)的資料進行統計分析,統計dist4的概率分佈,如圖2所示。

 

圖2 distk(k=4)概率分佈圖

由圖1可以發現任何一條曲線都是在平緩變化後急劇上升,Distk中大部分值落在一個比較密集的區域內,因此可以判斷Distk中大部分值應落在一個比較密集的區域內(曲線平緩段),如果可以通過數學方法找出distk中平緩變化到急劇上升處的點或者distk概率分佈最為密集的區域,可確定掃描半徑引數Eps,所以本文選擇圖1中distk拐點處的值為Eps。由圖2可以看到Distk的概率分佈情況,假如能夠通過數學方法找到分佈曲線的峰值,也可以用峰值點所對應的k-最近鄰距離值(橫座標刻度)作為Eps。

對於概率分佈資料,通過分析資料集的統計特性,建立統計模型對資料集進行曲線擬合[12]。本文通過實驗對概率分佈使用傅立葉、高斯和多項式三種典型曲線擬合方法,如圖3所示。其中,Gaussian曲線擬合方法的效果最佳,但是由於概率分佈的擬合精度過低,不可用於全域性引數Eps的估計,SSE:
312.7,R-square: 0.6755,調整R-square: 0.6514,RMSE: 3.403,引數SSE和RMSE越接近0越擬合準確,調整後的R-square和R-square越接近於1越準確,高斯擬合曲線如公式(4)所示:

 (4)

圖3 Gaussian擬合曲線

根據KNN升序排列曲線確定Eps,對dist4曲線進行擬合,對於升序排列得到KNN分佈資料,採用三種擬合方法進行曲線擬合,實驗發現高斯擬合精度高,但擬合階數高,計算複雜度高,傅立葉擬合精度不高,而多項式擬合不僅擬合階數低,而且擬合精度高,計算複雜的低,擬合結果為SSE:0.04636,R-square:
0.9883,調整 R-square: 0.988,RMSE: 0.01788,如圖4所示。多項式曲線擬合如公式(5)所示:

(5)

 

圖4多項式擬合曲線

根據多項式擬合曲線,求解曲線的拐點,對y求二次導可得公式(6)

(6)

求解二次導方程得x的解,見公式(7)

(7)

由於較小的值為靠近邊界的點,取x解中較大的值,捨去較小的值,將其帶入公式(5),可以得到EPS=f(x)。在Eps確定之後,需要確定MinPts的值。首先,根據每個點領域資料點的統計分佈特性,依次計算出每個點的Eps-鄰域的物件數量,然後計算資料物件的數學期望,即MinPts的值,如公式(8)所示,

(8)

其中,pi表示在點i的Eps鄰域的點數。

本文將密度聚類演算法與基於統計模型相結合的方法,基於數理統計理論,假定資料集由統計過程產生,並通過找出最佳擬合模型來描述資料集,自適應計算出最優全域性引數Eps和Minpts。

2.2 種子代表物件的選擇

本文提出一種改進的基於DBSCAN的快速聚類演算法。在通過選用核心物件附近區域包含的所有物件的代表物件作為種子物件來擴充套件類,該演算法減少了區域查詢的次數,減低了聚類時間和I/O開銷。

對於一個給出Eps和MinPts的核心物件P,為了便於闡述,僅考慮2維物件,演算法可用於其他大於兩維的高維物件,代表物件選擇過多則難以發揮演算法效率,選擇過少則容易造成物件丟失,影響演算法聚類質量。本文提出一種以代表物件擴充套件類的方法,針對FDBSCAN[11]演算法在區域查詢後,在第一輪核心點區域查詢時無丟失物件現象,而在以種子物件進行類擴充套件時,產生丟失物件,需要選擇足夠多的代表物件,而I-DBSCAN[5]在二維資料中採用至多8個代表物件,不存在物件丟失的情況。文字結合FDBSCAN與I-DBSCAN,在第一輪區域查詢時採用4個代表物件進行類擴充套件,在繼續擴充套件類的時候,採用選擇8個代表物件進行類擴充套件,在提高查詢效率的基礎上,解決了類擴充套件時丟失物件的問題。

在自適應得出Eps和MinPts後,本文提出的代表物件選擇方式如下:以核心物件p為中心,並以Eps為半徑畫圓,以物件p為原點畫座標系交圓周於A、C、E和G四點,再畫兩條分別與x軸成45度和135度角的兩條直徑交圓周於B、D、F和H四點。在第一輪的代表物件選擇時,以核心點邊界的A、C、E和G點為參照,在P的Eps區域中分別選擇離A、C、E和G點最近的點作為代表物件,當對於不同參照點存在離其距離最近的點為同一點時,此點只能被選擇一次,且屬於第一個參考點的代表物件。如果物件是n維資料,則至多可以選擇2n個代表物件。

在繼續擴充套件類選擇代表物件時,以核心點邊界的A、B、C、D、E、F、G和H點為參照點,代表物件選取原則在P的Eps區域中選擇離參考點物件最近的點作為代表物件,即使一個代表物件到兩個以上的參考點都是最近的,它也只被選一次,且歸入第一個參考點的代表物件。因此,在2維空間範圍內對任一物件的被選代表物件數最多為8個。一般情況下,對n維空間,由於有3n-1個參考點和2n個象限,因此被選種子數最多為3n-1個,按照以上方式實現區域查詢,有效提高聚類效率以及解決物件丟失的問題。

3.實驗與分析

本文演算法採用java語言程式設計實現,並在Windows XP系統和eclipse環境下除錯執行,PC機硬體配置:Pentium(R)
CPU,3G記憶體, 300GB硬碟。

3.1實驗分析

為了驗證本文改進演算法的引數自適應選擇以及區域查詢方式的有效性,根據資料集的維度,資料量以及資料密度分佈三種標準進行資料庫地選擇,選取UCI資料庫中的4種典型資料集Iris、Wine、Glass和cmc。根據聚類準確度和時間特性分析兩項指標對DBSCAN、I-DBSCAN[2]和AF-DBSCAN演算法效能進行比較分析,其中聚類準確度採用F-Measure[3]。DBSCAN中的Eps值得設定依據k-dist曲線,選取Dist4曲線圖進行引數確定,如圖5所示。

圖5 dist4曲線圖

根據圖中平緩變化後急劇上升處對應的k-dist值作為全域性引數Eps的值,且Minpts值設為4。可以得到三種資料集Iris、Wine、Glass和cmc的(Minpts,Eps)分別為(4,0.436)、(4,27.330)、(4,3.700)和(4,1.732)。本文提出的AF-DBSCAN的(Minpts,Eps)分別為(7,0.389)、(6,29.870)、(4,2.695)和(5,1.646)。聚類結果如表1所示。由表1可以看出,本文提出的AF-DBSCAN演算法自適應計算出的全域性引數減少了人為根據k-dist曲線確定全域性引數Eps的誤差及工作量,以及設定MinPts為固定值4,而使聚類結果達不到全域性最優的效果。通過比較分析4種資料集的聚類結果,AF-DBSCAN的F-Measure值均優於其他兩種典型演算法,尤其在Iris和Glass資料集上,聚類精度比DBSCAN演算法分別高12.55%和13.18%。而I-DBSCAN演算法規定資料符合泊松分佈,對於不同資料集其F-Measure值不穩定,不能適應不同統計特性的資料集。由於密度衡量指標單一,AF-DBSCAN演算法適用於簇密度差異不明顯的資料集。經過區域查詢改進後的AF-DBSCAN演算法,演算法執行速度明顯比DBSCAN與I-DBSCAN演算法快,有效減少了密度聚類的時間。

4.結論

針對DBSCAN演算法的引數選取困難,計算效率低以及區域查詢中代表物件選擇後類擴充套件易丟失物件點等問題,提出一種改進的自適應快速AF-DBSCAN聚類演算法,通過分析資料的KNN的數學統計規律,輔助使用者自適應確定全域性引數Eps與MinPts。通過改進的區域查詢方法,有效提高類擴充套件的效率,AF-DBSCAN演算法解決了DBSCAN演算法人工干預,給定全域性引數導致聚類質量惡化以及大資料集計算效率低的問題。

表1實驗比較

資料集

演算法

MinPts

Eps

執行時間(s)

準確度

Iris

DBSCAN

4

0.436

0.342

0.7407

I-DBSCAN

6

0.405

0.335

0.8803

AF-DBSCAN

7

0.389

0.157

0.8662

Wine

DBSACN

4

27.330

0.481

0.5994

I-DBSCAN

6

22.890

0.467

0.5667

AF-DBSCAN

6

29.870

0.172

0.6091

Glass

DBSCAN

4

3.700

0.516

0.6561

I-DBSCAN

4

2.980

0.525

0.6522

AF-DBSCAN

4

2.695

0.188

0.7879

cmc

DBSCAN

4

1.732

3.239

0.4491

I-DBSCAN

6

1.691

3.145

0.4491

AF-DBSCAN

5

1.646

1.266

0.4491

參考文獻

[1]S. Mimaroglu and E. Aksehirli, “Improving DBSCAN’s execution time by using a pruning technique on bit vectors,”Pattern Recognition Letters,vol. 32, pp. 1572-1580, 2011.

[2]H. Zhou, P. Wang, and H. Li, “Research on adaptive parameters determination in DBSCAN algorithm,”Journal of Information and Computational Science,vol. 9, pp. 1967-1973, 2012.

[3]H. Jiang, J. Li, S. Yi, X. Wang, and X. Hu, “A new hybrid method based on partitioning-based DBSCAN and ant clustering,”Expert Systems with Applications,vol. 38, pp. 9373-9381, 2011.

[4]S.-H. Yue, P. Li, J.-D. Guo, and S.-G. Zhou, “Statistical information-based clustering approach in distance space,”Journal of Zhejiang University: Science,vol. 6 A, pp. 71-78, 2005.

[5]B. Borah and D. K. Bhattacharyya, “An Improved Sampling-Based DBSCAN for Large Spatial Databases,” inProceedings of International Conference on Intelligent Sensing and Information Processing, ICISIP 2004, January 4, 2004 – January 7, 2004, Chennai,
India, 2004, pp. 92-96.

[6]B. Liu, “A fast density-based clustering algorithm for large databases,” in2006 International Conference on Machine Learning and Cybernetics, August 13, 2006 – August 16, 2006, Dalian, China, 2006, pp. 996-1000.

[7]M. Yu, G. Yuling, and S. Shaoyun, “The algorithm of DBSCAN based on probability distribution,” in 5th International Symposium on IT in Medicine and Education, ITME 2013, July 19, 2013 – July 21, 2013, Xining, China, 2014, pp. 2785-2792.

[8]S. Jahirabadkar and P. Kulkarni, “Algorithm to determine ε-distance parameter in density based clustering,”Expert Systems with Applications,vol. 41, pp. 2939-2946, 2014.

[9]Z. Xiong, R. Chen, Y. Zhang, and X. Zhang, “Multi-density DBSCAN algorithm based on Density Levels Partitioning,”Journal of Information and Computational Science,vol. 9, pp. 2739-2749, 2012.

[10]D. Kellner, J. Klappstein, and K. Dietmayer, “Grid-based DBSCAN for clustering extended objects in radar data,” in2012 IEEE Intelligent Vehicles Symposium, IV 2012, June 3, 2012 – June 7, 2012, Alcal de Henares, Madrid, Spain, 2012, pp. 365-370.

[11]周水庚,周傲英,曹晶, 胡運發.一種基於密度的快速聚類演算法[J].計算機研究與發展,2000,11:
1287- 1292.

[12]夏魯寧,荊繼武. SA-DBSCAN:一種自適應基於密度聚類演算法[J].中國科學院研究生院學報,2009,04:530- 538.

 

基金專案:國家自然科學基金(61373126);江蘇省產學研聯合創新資金-前瞻性聯合研究專案(BY2013015-33)基金。