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