文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.180780
中文引用格式: 曾瑛,李星南,劉新展. 電力通信大數(shù)據(jù)并行化聚類算法研究[J].電子技術應用,2018,44(5):1-4,24.
英文引用格式: Zeng Ying,Li Xingnan,Liu Xinzhan. Research on parallelization clustering algorithm for power communication[J].Application of Electronic Technique,2018,44(5):1-4,24.
0 引言
隨著電力通信網(wǎng)絡以功能為中心持續(xù)性發(fā)展,產(chǎn)生了大量分專業(yè)、分功能和分管理域的運維管理系統(tǒng),進而導致大量電力數(shù)據(jù)孤島的產(chǎn)生。如何利用分布式系統(tǒng)更好地處理這些數(shù)據(jù)量巨大且類型復雜的電力通信運維數(shù)據(jù)已成為研究的熱點問題。聚類分析作為數(shù)據(jù)處理的一個有效手段,支持對大量無序分散數(shù)據(jù)進行整合分類從而進行更深層次的關聯(lián)性分析或者數(shù)據(jù)挖掘,在電力通信網(wǎng)絡中得到越來越廣泛的應用。同時,分布式系統(tǒng)中并行化處理機制因其優(yōu)秀的靈活性和高效性逐漸成為數(shù)據(jù)挖掘的一個重要研究方向。
國內(nèi)外學者也越來越對這方面加大關注,文獻[1]提出了一種基于DBSACN算法的并行優(yōu)化的聚類算法。文獻[2]中通過計算距離選擇最中心的k個數(shù)據(jù)點作為初始聚類中心,然后用k-medoids算法進行迭代聚類,提高了聚類效果,但不適合處理大規(guī)模數(shù)據(jù);文獻[3]提出了一種蟻群 k-medoids 融合聚類算法,該算法不需要人為確定類簇數(shù)目和初始聚類中心,提高了聚類效果,但也僅只適用于小型數(shù)據(jù)集;文獻[4]采用基于粒計算的聚類算法,該算法在初始聚類中心的選取過程中的計算量較大,且在處理大規(guī)模數(shù)據(jù)時存在時延問題;文獻[5]提出了將局部搜索過程嵌入到迭代局部搜索過程中的方法,顯著減少了計算時間。文獻[6]在Hadoop平臺上實現(xiàn)了傳統(tǒng)k-medoids聚類算法的并行化處理,減少了聚類時間,但在初始聚類中心的選取機制上沒有進行改進,沒有提高聚類效果;文獻[7]采用基于核的自適應聚類算法,克服了k-medoids 的初值敏感問題,但是沒有降低算法的時間復雜度。
綜上所述,k-medoids聚類算法存在初始值敏感、運行速度慢、時間復雜度較高等問題,需要對k-medoids算法中初始點選取以及并行化方式進行算法優(yōu)化設計。
1 k-medoids聚類初始點選取改進機制
k-medoids算法是一種基于劃分的聚類算法,具有簡單、收斂速度快以及對噪聲點不敏感等優(yōu)點,因此在模式識別、數(shù)據(jù)挖掘等領域都得到了廣泛的應用。k-medoids算法初始中心點的選取十分重要,如果初始中心點選擇的是離群點時,就會導致由離群點算出的質(zhì)心會偏離整個簇,造成數(shù)據(jù)分析不正確;如果選擇的初始中心點離得太近,就會顯著增加計算的時間消耗。因此本文算法首先對初始中心點的選取進行優(yōu)化。基于密度的聚類可以很好地分離簇和環(huán)境噪聲,所以本文采用基于密度的聚類思想,盡量減少噪聲數(shù)據(jù)對選取初始點的影響。
定義1:點密度是對于數(shù)據(jù)集U中的數(shù)據(jù)集的樣本點x,以x為球心,某一正數(shù)r為半徑的球形域中所包含樣本點的個數(shù),記作Dens(x)。其中:
本文算法中,首先對每個數(shù)據(jù)點并行計算點密度,并將點密度作為該數(shù)據(jù)點的一個屬性。選取初始聚類中心的具體步驟如下:
(1)計算數(shù)據(jù)集中m個數(shù)據(jù)點之間的距離。
(2)計算每個樣本點的點密度Dens(xi)以及均值點密度AvgDens,將點密度大于AvgDens的點即核心點存入集合T中,并記錄其簇中所包含的數(shù)據(jù)點。
(3)合并所有具有公共核心點的簇。
(4)計算各個簇的類簇密度CDens(ci),選擇其中k個較大密度的簇,計算其中心點,即為初始聚類中心。
類簇中心點的計算方法如下:假設有一個類簇ci包含m個數(shù)據(jù)點{x1,x2,…,xm},則其中心點ni按如式(5)計算:
經(jīng)過上述步驟,可以優(yōu)化初始聚類中心點的選取,使之后的聚類迭代運算更加有效,降低搜索范圍,大大減少搜索指派的時間。
2 k-medoids聚類算法并行化設計策略
本文針對k-medoids算法具有初始點選取復雜、聚類迭代時間久、中心點選取消耗資源過多等缺點,使用Hadoop平臺下的MapReduce編程框架對算法進行初始點的點密度計算選取并行化、非中心點分配并行化和中心點更新并行化等方面的改進。MapReduce分為Map(映射)和Reduce(化簡)兩部分操作,使用MapReduce實現(xiàn)算法并行化關鍵在于Map函數(shù)和Reduce函數(shù)的設計。其中Map函數(shù)將可并行執(zhí)行的多個任務映射到多個計算節(jié)點,多個計算節(jié)點對各自被分派的任務并行進行處理,Reduce函數(shù)則是在各計算節(jié)點處理結束后,將計算結果返回給主進程進行匯總。
2.1 點密度計算并行化策略
在點密度的計算中,由于一個數(shù)據(jù)點的點密度對其他數(shù)據(jù)點的點密度沒有影響,所以該計算過程是可以并行化的。使用MultithreadedMapper在一個JVM進程里以多線程的方式同時運行多個Mapper,每個線程實例化一個Mapper對象,各個線程并發(fā)執(zhí)行。主進程把數(shù)據(jù)點分派給若干個不同的計算節(jié)點進行處理,計算節(jié)點將數(shù)據(jù)平均分成k份,且有k個線程,每個線程中的數(shù)據(jù)點都與數(shù)據(jù)集中所有點進行距離計算,進而計算出點密度,最后通過Reduce函數(shù)將計算結果匯總并輸出。并行處理使得點密度計算所用時間大大減少,提高了算法的執(zhí)行效率。
2.2 非中心點分配及中心點更新并行化策略
非中心點分配階段的主要工作是計算各數(shù)據(jù)點到每個中心點的距離,由于每個數(shù)據(jù)點跟各個中心點距離的計算互不影響,所以該計算過程也是可并行化的。此階段的MapReduce化過程中,Map函數(shù)主要負責將數(shù)據(jù)集里除中心點外的每一個樣本點分配給與其距離最近的聚類中心,Reduce函數(shù)則負責通過計算更新每一個簇的中心點,按照這個原則迭代下去一直到達到設定閾值。主進程利用Map函數(shù)把非中心點分配的任務分派給若干個計算節(jié)點,每個計算節(jié)點采用基于Round-Robin的并行化分配策略。首先把每一個數(shù)據(jù)點看作一個請求,輪詢地分配給不同的線程,對非中心點和每一個中心點的距離進行計算,找出最小的距離,然后把該非中心點指派給最小距離所對應的中心點。
因為輪詢調(diào)度算法是假設所有服務器中的處理性能都是相同,并不關心每臺服務器當前的計算速度和響應速度。因此當用戶發(fā)出請求時,如果服務間隔的時間變化較大的時候,那么Round-Robin調(diào)度算法是非常容易導致服務器之間的負載發(fā)生不平衡表現(xiàn)。而本文中所運用的每個數(shù)據(jù)點都是平等的,所以不會造成服務器分配任務不均的問題。因此基于Round-Robin的策略是可行的。
本文算法在實現(xiàn)聚類的過程中經(jīng)歷了兩次并行化劃分,分別是非中心點分配和中心點更新過程。這兩次并行化過程是周而復始的,直到滿足程序退出的條件才會終止循環(huán)。
3 仿真實驗與結果分析
仿真實驗分別使用本文算法、DBSCAN并行化算法[1]和k-medoids并行化算法[8]進行對比試驗,證明各個算法的優(yōu)劣性。為了證明本文算法的有效性,實驗將分析不同算法的聚類時間、聚類準確度以及增加線程數(shù)之后的時間消耗。實驗將在兩種類型的數(shù)據(jù)集上進行測試:
(1)電力數(shù)據(jù)集。電力通信數(shù)據(jù)的屬性有設備狀態(tài)、設備資產(chǎn)、網(wǎng)絡拓撲等,其數(shù)據(jù)量約為1 GB。
(2)公有數(shù)據(jù)集。分別為200數(shù)量級的Northix、1 000數(shù)量級的DSA、5 000數(shù)量級的SSC和10 000數(shù)量級的GPSS。
3.1 電力數(shù)據(jù)集實驗結果分析
實驗首先設置6個線程對數(shù)據(jù)集進行處理,三種算法對電力數(shù)據(jù)進行聚類的結果見表1。其中k-medoids并行化算法[8]采用標簽共現(xiàn)原則對初始點選取進行改進,但沒有考慮線程的分配方式,因此其執(zhí)行效率最差;DBSCAN算法考慮到了初始點的選取,并采用動態(tài)分配策略實現(xiàn)并行化,但在計算動態(tài)分配過程中增加了一定消耗,因此聚類準確度和執(zhí)行效率都略有提升;本文所提出的算法,既考慮了初始點的合理選取,同時采用簡單有效的并行化分配策略,以減少計算和過多資源占用,因此相對于k-medoids并行化算法和DBSCAN并行化算法執(zhí)行效率大幅提升,準確度也有所提高。
然后增加線程處理器的數(shù)量至8個,得到下表的聚類結果,見表2。
由表2可得,使用8個線程時,本文算法比k-medoids并行化算法執(zhí)行時間快了42.64%,比DBSCAN并行化算法快了24.70%。
各類算法增加線程后所用時間相比原算法減少的百分比如圖1。
由圖1可知,k-medoids并行化算法減少了10.20%,DBSCAN并行化算法減少了1.68%,本文算法減少了16.13%,說明本文算法在線程數(shù)增加時,可以更有效地減少運算時間,提高執(zhí)行效率。
3.2 公有數(shù)據(jù)集實驗結果分析
基于Northix、DSA、SSC和GPSS數(shù)據(jù)集使用5個線程實現(xiàn)算法的聚類準確度比較見表3。
本文算法的聚類準確度均高于k-medoids并行化算法和DBSCAN并行化算法,并且在處理較大數(shù)量級的數(shù)據(jù)集時,本文算法準確度更占優(yōu)勢。不同數(shù)據(jù)集上各算法的執(zhí)行時間如圖2。
根據(jù)圖2,隨著數(shù)據(jù)量的增大,三種算法執(zhí)行效率差異逐漸增大,本文算法性能明顯優(yōu)于k-medoids并行性算法和DBSCAN并行算法。接著對三個算法使用7個線程時的執(zhí)行時間進行比較,如圖3所示。
從圖3中可以看出,使用7個線程在1 000、5 000、10 000數(shù)據(jù)級時,本文算法執(zhí)行時間明顯優(yōu)于其他兩個算法。
3.3 實驗小結
仿真實驗可知,在同一線程數(shù)時,本文算法比對比算法聚類準確率高,執(zhí)行時間短;在線程數(shù)增加時,本文算法執(zhí)行時間顯著降低;隨著數(shù)據(jù)量的增長,本文算法在保證更高準確度的基礎上,執(zhí)行時間優(yōu)勢逐漸凸顯。
4 結論
本文針對電力通信數(shù)據(jù)的聚類處理問題,提出基于密度的聚類思想對k-medoids算法初始點的選取策略進行優(yōu)化,并利用MapReduce編程框架實現(xiàn)了算法的并行化處理。通過仿真實驗表明本文提出的優(yōu)化算法可行有效,并具有較好的執(zhí)行效率。在接下來的研究中可以考慮線程數(shù)小于聚類數(shù)時的優(yōu)化分配策略,進一步提高算法性能。
參考文獻
[1] 蔡永強,陳平華,李惠.基于云計算平臺的并行DBSCAN算法[J].廣東工業(yè)大學學報,2016,33(1):51-56.
[2] PARK H S,JUN C H.A simple and fast algorithm for k-medoids clustering[J].Expert System with Applications,2009,36(2):3336-3341.
[3] 趙燁,黃澤君.蟻群K-medoids融合的聚類算法[J].電子測量與儀器學報,2012,26(9):800-804.
[4] 馬菁,謝娟英.基于粒計算的k-medoids聚類算法[J].計算機應用,2012,32(7):1973-1977.
[5] 吳景嵐,朱文興.基于k中心點的迭代局部搜索聚類算法[J].計算機研究與發(fā)展,2004,41(Z):246-252.
[6] Jiang Yaobin,Zhang Jiongmin.Parallel k-medoids clustering algorithm based on Hadoop[C].Proceedings of the IEEE International Conference on Software Engineering and Service Sciences,2014:649-651.
[7] 孫勝,王元珍.基于核的自適應k-medoid聚類[J].計算機工程與設計,2009,30(3):674-677.
[8] 馬曉慧.一種改進的可并行的K-medoids聚類算法[J].智能計算機與應用,2015:874-876.
作者信息:
曾 瑛,李星南,劉新展
(廣東電網(wǎng)公司 廣東電網(wǎng)電力調(diào)度控制中心,廣東 廣州510600)