,2*
(1.山東科技大學測繪科學與工程學院,山東青島 266590;2.山東省基礎地理信息與數(shù)字化技術重點實驗室(山東科技大學),山東青島 266590)
隨著互聯(lián)網(wǎng)、社交網(wǎng)絡等技術的迅猛發(fā)展,數(shù)據(jù)源的多樣化使數(shù)據(jù)量呈現(xiàn)爆炸式的增長,如何在大規(guī)模數(shù)據(jù)集中進行有效的分析并挖掘背后的價值已經(jīng)成為了眾多行業(yè)面臨的首要問題。聚類分析[1]作為一種重要的數(shù)據(jù)挖掘技術,能夠在無監(jiān)督的條件下探索數(shù)據(jù)背后潛在的數(shù)據(jù)結構。依據(jù)聚類算法原理的不同,可將現(xiàn)有的聚類算法大致分為五類[2-3]:劃分聚類[4]、層次聚類[5]、密度聚類[6]、網(wǎng)格聚類[7]以及模型聚類[8]。k-means 算法[9]是著名的劃分聚類算法,具有操作簡單、效率高等優(yōu)點,但需要預先指定聚類個數(shù);基于密度的噪聲應用空間聚類(Density-Based Spatial Clustering of Application with Noise,DBSCAN)算法[10]對密度估計使用了索引結構,在處理大規(guī)模數(shù)據(jù)集時,有效地提高了聚類速度,但容易受鄰域半徑和閾值這兩個參數(shù)的影響;Ankerst 等[11]提出了OPTICS(Ordering Points To Identify the Clustering Structure)算法,該算法解決了DBSCAN 對輸入?yún)?shù)敏感的問題;Frey 等[12]提出了一種與k-means 同屬于劃分聚類的近鄰傳播(Affinity Propagation,AP)聚類算法,該算法不需要指定聚類個數(shù),但所得的聚類個數(shù)受“preference”的影響。
2014 年6 月,Rodriguez 等[13]首次提出了密度峰值聚類(Density Peaks Clustering,DPC)算法。該算法簡單高效、無須迭代,能夠檢測任意形狀的類簇,且不需要提前設定類簇的數(shù)量,目前在圖像分割、醫(yī)學影像處理、社區(qū)發(fā)現(xiàn)[14-17]等領域具有潛在的應用價值。但該算法也存在缺陷:1)采用歐氏距離進行距離度量,無法正確反映復雜數(shù)據(jù)集的分布情況;2)對截斷距離異常敏感,微小的變化就會導致不同的聚類結果;3)在確定聚類中心時需要根據(jù)決策圖手動選擇聚類中心,效率低下。為了解決DPC存在的問題,Du等[18]將流形學習的測地距離引入距離度量中,很好地解決了包含有多流行結構的數(shù)據(jù)處理問題;Mehmood 等[19]引入熱擴散理論提出了一種從數(shù)據(jù)集中自動提取截斷距離的方法,解決了DPC 算法中參數(shù)難以確定的問題;吳斌等[20]將基尼系數(shù)引入提出了一種自適應截斷距離的方法,以獲得最優(yōu)的截斷距離值;馬春來等[21]根據(jù)簇中心權值的變化趨勢來搜索“拐點”,并將“拐點”之前的點作為各簇中心,該算法避免了通過決策圖判斷簇中心的方法所帶來的誤差;丁志成等[22]利用KL(Kullback-Leibler)散度的差異性度量準則劃分聚類中心點和非聚類中心點,根據(jù)散度排序圖中的拐點實現(xiàn)對聚類中心的自動選取。
基于現(xiàn)有研究,本文設計了一種自動確定聚類中心的比較密度峰值聚類算法(Comparative density Peaks Clustering algorithm with Automatic determination of clustering center,ACPC)。ACPC根據(jù)決策圖中數(shù)據(jù)的分布特征,采用了基于統(tǒng)計分析的二維區(qū)間估計方法來自動地識別決策圖中聚類中心點。距離比較量主要集中對第二個假設的定量建模上,使聚類中心點在決策圖中更明顯地區(qū)別于非聚類中心點。實驗結果說明,新算法有較高的準確性且適應性更好。
密度峰值聚類算法是一種可以發(fā)現(xiàn)非凸簇類的新型聚類算法。其核心思想建立在對聚類中心點的兩個重要假設之上。
假設1 聚類中心的局部密度大于其周圍鄰近點的密度。
假設2 聚類中心與比其密度高的數(shù)據(jù)點的距離相對較遠。
根據(jù)這兩個設定,聚類中心應該是同時具備較大局部密度和較大相對距離。要確定數(shù)據(jù)集的聚類中心,對于每一個數(shù)據(jù)點,都需要計算兩個屬性:數(shù)據(jù)點i的局部密度pi和相對距離δi。令待聚類的數(shù)據(jù)集S={x1,x2,…,xn},IS={1,2,…,n}為相應的指標集。
定義1局部密度pi(Cut-off kernel 和Gaussian kernel 兩種計算方式)。
Cut-off kernel:
其中函數(shù):
式(1)中:i和j分別為第i個數(shù)據(jù)點、第j個數(shù)據(jù)點;rij=,rij為數(shù)據(jù)點xi和xj之間的歐氏距離;參數(shù)rc為截斷距離,其作為密度峰值聚類算法的唯一參數(shù),實際起著距離閾值的作用。
Gaussian kernel:
式(1)為數(shù)據(jù)集規(guī)模較大時數(shù)據(jù)i的局部密度計算方式;當數(shù)據(jù)集的規(guī)模較小,為減小截斷距離的選擇對算法的影響,DPC 算法采用高斯核函數(shù)來估計數(shù)據(jù)i的局部密度,如式(3)所示。
定義2相對距離δi:
計算pi和δi之后,密度峰值聚類算法通過構造決策圖選擇pi和δi都較大的數(shù)據(jù)點作為聚類中心。
圖1(a)展示了原始數(shù)據(jù)點集的分布。圖1(b)為該數(shù)據(jù)集的決策圖,其包含每個數(shù)據(jù)點的局部密度pi和相對距離δi。從決策圖中可以容易發(fā)現(xiàn),灰色圓形點和菱形點標記的數(shù)據(jù)點為聚類中心點,因為這兩個點同時具有較大的pi值和δi值。
圖1 原始數(shù)據(jù)點分布和決策圖的實例Fig.1 Examples of original data point distribution and decision graph
在選定聚類中心后,密度峰值聚類算法按照密度從大到小的順序將剩余數(shù)據(jù)點依次歸入比它密度大且與其距離最近的數(shù)據(jù)點的類簇,僅一步就可以高效地完成數(shù)據(jù)點的分配。
依據(jù)密度峰值聚類算法第二個假設的描述,即聚類中心與比其密度高的數(shù)據(jù)點的距離相對較遠可知,聚類中心點的δi值一定相對較大。原算法對于“相對較大”的概念只是讓用戶在決策圖的可視化分析中進行比較,然而決策圖中不是所有的聚類中心點都能體現(xiàn)出來,并且有時聚類中心點與非聚類中心點在決策圖中顯示不夠清晰。借鑒文獻[23]思想,本文采用比較量d來替代δ,實現(xiàn)定量比較的方式來顯示相對距離,從而凸顯聚類中心。
本文用τi作為數(shù)據(jù)點i與其密度更低點的最短距離,具體定義如下:
式(5)中當數(shù)據(jù)點i的局部密度為最小值時,它的τi值為δi值。τi值的定義作為與δi值正好相反的一個距離屬性,為了描述其差值,用d來表示,其定義如下:
di為δi與τi的比較數(shù)量,有助于識別潛在的聚類中心。如圖2(b)所示,當di值較大時,表明該數(shù)據(jù)點距離低密度區(qū)域的數(shù)據(jù)點很近而距離更高密度的數(shù)據(jù)點更遠,符合聚類中心的選擇特征。當di的值在零附近,表明該數(shù)據(jù)點既有密度更大的數(shù)據(jù)點也有密度更小的點,說明該數(shù)據(jù)點處于某個類簇中。若di遠小于零,該數(shù)據(jù)點距離密度高的數(shù)據(jù)點較近而距離密度低的點較遠,這類點為類簇邊緣點。
圖2 決策圖對比Fig.2 Decision diagram comparison
DPC 算法在選取聚類中心時設計了一種啟發(fā)式方法,在決策圖上手動選擇同時具備高密度和高距離的數(shù)據(jù)點作為聚類中心。這種方法雖然可以人為地在決策圖上可視化地識別聚類中心,但只是在數(shù)據(jù)集分布清晰的條件下能有較好的識別效果,當處理大規(guī)模數(shù)據(jù)并且具有復雜的決策圖時,人為的方式就難以保證聚類結果較高的準確性。針對該問題,借鑒文獻[24]思想,本文采用特定統(tǒng)計量來實現(xiàn)聚類中心點的自動識別。
根據(jù)數(shù)據(jù)點在決策圖中的分布特征,用高斯核函數(shù)來估計特定密度值pi處的概率密度ρy(pi,y),其定義如下:
其中:y表示特定密度值pi處可能的距離值。數(shù)值n為數(shù)據(jù)點的總數(shù),參數(shù)a、b為核寬度值。分母是一個歸一化的因子,可以確保(pi,y)=1。核寬度a和b作為概率密度估計重要的參數(shù),通過pi和di的標準差估計得到,rp和rd設置為0.5,具體定義如下:
根據(jù)式(8)得到的概率密度估計,然后在特定密度值pi對最小距離值y的期望值和方差值進行估計,其定義如下:
通過化簡可以得到:
式(11)、(12)中,n為數(shù)據(jù)點總數(shù),pi表示數(shù)據(jù)點i的局部密度,參數(shù)a、b表示核寬度值,dj表示比較量。
完成在特定密度值pi處最小距離y的期望值和方差值的計算后,利用以下公式進行聚類中心的自動化識別:
根據(jù)式(13)可知:μy(pi)表示y的期望值,σy(pi)表示y的標準差。如果數(shù)據(jù)點的最小距離值di>THd(pi),它將會自動識別為聚類中心點。為了便于了解自動化識別聚類中心算法,圖3 進行了直觀描述,其中黑色圓形點為聚類中心,菱形為期望值,正方形為標準差。
圖3 用于聚類中心點自動識別的統(tǒng)計量Fig.3 Statistics for automatic recognition of clustering center points
ACPC算法的具體實現(xiàn)步驟如下:
ACPC 算法的時間復雜度主要有4部分[25]構成:1)計算相似度矩陣,其時間復雜度為O(n2);2)求每個數(shù)據(jù)點的比較量d,其中距離δ的時間復雜度為O(n2),對比量τ的時間復雜度為O(n),比較量d時間復雜度為O(n2),所以計算每個數(shù)據(jù)點的比較量d的整體時間復雜度為O(n2);3)對特定密度值pi處最小距離值y的期望值和方差值估計,時間復雜度為O(n2);4)分配樣本的時間復雜度與DPC 中相應操作的時間復雜度相同,為O(n2)。因此,ACPC算法的整體時間復雜度為O(n2)。
選用人工數(shù)據(jù)集和UCI(University of California lrvine)[26]公開數(shù)據(jù)進行實驗驗證,數(shù)據(jù)集的詳細信息如表1 所示,并將其與DPC、基于KL 散度的密度峰值聚類算法(Density Peaks Clustering based on Kullback-Leibler divergence,KLDPC)、改進的快速搜索與發(fā)現(xiàn)密度峰值聚類(Clustering by Fast Search and Find of Density Peaks,CFSFDP)、APC(density-based Clustering using Automatic density Peaks detection)、自動確定聚類中心的快速搜索和發(fā)現(xiàn)密度峰值的聚類算法(AUTOmatic determination of clustering center for CFSFDP,AUTO-CFSFDP)算法[27]進行比較,各算法在不同數(shù)據(jù)集上的參數(shù)取值如表2 所示。實驗開發(fā)環(huán)境Matlab2014a,硬件條件為:Intel Core i5-3470 CPU,主頻3.20 GHz,內存4.00 GB。
表1 數(shù)據(jù)集信息Tab.1 Information of datasets
本文采用4 個人工數(shù)據(jù)集驗證ACPC 的聚類效果,圖4 為實驗數(shù)據(jù)的二維圖形展示,圖5~8 為各算法分別對DS1~DS4的聚類結果。
圖5 為DS1 在五種算法中得到的聚類結果。DPC 算法、APC算法、ACPC算法都可以準確確定聚類個數(shù)且聚類效果都很好。KLDPC 算法、改進的CFSFDP 算法、AUTO-CFSFDP 算法不能正確聚類,錯誤地將多個球形數(shù)據(jù)聚為一個類簇。
圖4 實驗數(shù)據(jù)的二維圖形展示Fig.4 2D shapes of experimental data
圖6 為DS2 在五種算法中得到的聚類結果。DPC 算法、KLDPC 算法、APC 算法、AUTO-CFSFDP 算法、ACPC 算法對數(shù)據(jù)集都有很好的聚類效果。改進的CFSFDP 算法對環(huán)形數(shù)據(jù)集聚類結果不理想,錯誤地將兩個類簇的數(shù)據(jù)點聚類成一類。
表2 各算法在11個數(shù)據(jù)集上的參數(shù)取值Tab.2 Parameters of different algorithms on 11 datasets
圖7 為DS3 在五種算法中得到的聚類結果。DPC 算法、改進的CFSFDP 算法、ACPC 算法能準確確定聚類個數(shù),但在兩個離得近的球形數(shù)據(jù)上沒能正確分配。KLDPC 算法得不到數(shù)據(jù)集聚類中心點的準確個數(shù),將五個類簇劃分為兩個類簇。APC 算法錯誤地將一個簇類分成多個類簇。AUTOCFSFDP算法不能正確確定聚類個數(shù),錯誤地將數(shù)據(jù)密集的類簇識別為多個類簇。
圖8 為DS4 在五種算法中得到的聚類結果。ACPC 算法對DS2 簡單流形數(shù)據(jù)能很好聚類,對于DS4 數(shù)據(jù)錯誤地將一類聚成兩類。DPC 算法、KLDPC 算法、改進的CFSFDP 算法、APC算法、AUTO-CFSFDP算法在聚類效果上很不理想。
為了進一步驗證ACPC 算法的性能,采用準確率(Accuracy,ACC)與標準互信息(Normalized Mutual Information,NMI)兩類聚類指標對本文算法和現(xiàn)有算法進行了性能對比,加粗的數(shù)據(jù)為數(shù)據(jù)的最優(yōu)聚類結果。表3 為聚類結果的性能對比。
已知真實類劃分U={U1,U2,…,UT},V={V1,V2,…,VT}為聚類結果。
定義3準確率(ACC):
其中,ncorrect代表分類正確的記錄個數(shù),ntatol代表全部測試數(shù)據(jù)的個數(shù)。當預測結果與真實結果完全相符時準確率為1,兩者越不相符準確率越低。
定義4標準互信息(NMI):
其中:H(U)和H(V)是U和V兩種分布的熵,MI(U,V)是U與V之間的互信息,NMI 取值范圍為[0,1],值越大意味著聚類結果與真實情況越吻合。每一部分的計算見文獻[28]。
由表3 可知,ACPC 算法在準確率上,除了在Sonar 數(shù)據(jù)集上聚類效果差一些,在其他數(shù)據(jù)集上都達到了最優(yōu)。在標準互信息上,ACPC在Iris和Wine數(shù)據(jù)集上要優(yōu)于其他算法,在其他數(shù)據(jù)集上略差一點。綜合這兩種聚類指標來看,ACPC算法優(yōu)于DPC、KLDPC、改進的CFSFDP、APC、AUTO-CFSFDP算法。
圖5 五種算法在DS1數(shù)據(jù)集上的聚類結果Fig.5 Clustering results of five algorithms on DS1 dataset
圖6 五種算法在DS2數(shù)據(jù)集上的聚類結果Fig.6 Clustering results of five algorithms on DS2 dataset
針對DPC 需要手動選取聚類中心,以及在處理密度變化較大的數(shù)據(jù)集時生成的決策圖聚類中心和非聚類中心不夠清晰的問題,實現(xiàn)了一種無須人工交互選擇聚類中心的比較密度峰值聚類算法。該算法通過統(tǒng)計分析的二維區(qū)間估計方法實現(xiàn)對聚類中心的自動選取,同時采用距離的比較量di來代替原算法的δi,使?jié)撛诘木垲愔行脑跊Q策圖中更加突出。通過對人工和UCI 數(shù)據(jù)集的實驗驗證,并與其他算法的對比分析,本文算法不僅能夠自動選取聚類中心,實現(xiàn)了聚類過程的自動化,并且具有更好的準確性以及適用性。如何自動地確定最佳的截斷距離以及將DPC 算法應用于實際問題將是下一步的研究重點。
圖7 五種算法在DS3數(shù)據(jù)集上的聚類結果Fig.7 Clustering results of five algorithms on DS3 dataset
圖8 五種算法在DS4數(shù)據(jù)集上的聚類結果Fig.8 Clustering results of five algorithms on DS4 dataset
表3 聚類結果對比Tab.3 Comparisin of clustering results