黃 林,常 健,楊 帆,李 憶,牛新征
1) 國網(wǎng)四川省電力公司信息通信公司,四川成都 610015; 2)電子科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,四川成都 611731
電力信息系統(tǒng)負(fù)責(zé)監(jiān)控電網(wǎng)各平臺(tái)的狀態(tài),保障電網(wǎng)各平臺(tái)穩(wěn)定運(yùn)行. 面向電力信息系統(tǒng)數(shù)據(jù)設(shè)計(jì)精準(zhǔn)高效的異常檢測方案,有助于運(yùn)維人員快速定位故障,提高運(yùn)維效率.
異常點(diǎn)與正常發(fā)生的事件具有較大差異,極大可能是由非正常機(jī)制產(chǎn)生的數(shù)據(jù)點(diǎn)造成的. 傳統(tǒng)基于規(guī)則的異常檢測方法根據(jù)專家經(jīng)驗(yàn)設(shè)置規(guī)則,檢測系統(tǒng)的異常,依賴于預(yù)先定義好的數(shù)據(jù)指標(biāo)特征. 但隨著電力基礎(chǔ)設(shè)施的升級、電力信息系統(tǒng)監(jiān)控指標(biāo)及主機(jī)數(shù)量的不斷增長[1],當(dāng)面對大量的主機(jī)以及多樣的采集指標(biāo)時(shí),閾值設(shè)置復(fù)雜,工作量呈指數(shù)增加. 因此,人工智能技術(shù)被更多應(yīng)用于異常檢測.k-means算法作為一種經(jīng)典的數(shù)據(jù)挖掘方法,被廣泛用于數(shù)據(jù)的異常檢測[3-13].根據(jù)檢測思想的不同,可分為兩類. 一是將數(shù)據(jù)空間聚類,每一類別由人工標(biāo)記為正常類或異常類,檢測異常. 如馬雪君[4]通過自適應(yīng)遺傳算法進(jìn)行聚類,動(dòng)態(tài)識(shí)別異常類,獲取異常模式. 閆義涵[5]根據(jù)標(biāo)準(zhǔn)差與信息熵動(dòng)態(tài)分裂簇進(jìn)行聚類,識(shí)別異常. 該類方法的優(yōu)點(diǎn)是能快速定位異常類別,但是由于異常類別難以枚舉,異常類別可能增加,需要海量數(shù)據(jù)的支撐. 二是將數(shù)據(jù)空間聚類,識(shí)別數(shù)據(jù)空間中正常模式,然后判斷樣本點(diǎn)到正常模式的距離是否超過設(shè)置的閾值來檢測異常. 如蔣華等[6-7]采用基于密度和距離的方法選擇初始聚類中心,進(jìn)行聚類,挖掘正常模式,然后以3倍方差準(zhǔn)則識(shí)別異常. 除此之外,YIN等[8-13]改進(jìn)k-means算法,提高k-means算法全局搜索能力,提高異常檢測的準(zhǔn)確性,但其聚類過程中均以最近鄰分配準(zhǔn)則劃分類別,未考慮各模式的差異性. 本研究采用上述第2類異常檢測思想,提出一種新的異常檢測框架,首先采用網(wǎng)格映射的方法壓縮數(shù)據(jù),提高異常檢測模型建立效率,然后以BDk-means(border dividek-means)算法識(shí)別系統(tǒng)中的正常模式,為提高電力信息系統(tǒng)數(shù)據(jù)異常檢測的精確度提供參考.
基于BDk-means聚類的電力信息系統(tǒng)異常檢測方法主要分為模式挖掘和異常識(shí)別兩個(gè)過程(圖1).
1)模式挖掘:電力信息系統(tǒng)監(jiān)控?cái)?shù)據(jù)經(jīng)壓縮后,使用BDk-means算法對歷史監(jiān)控?cái)?shù)據(jù)進(jìn)行聚類,挖掘系統(tǒng)存在的正常模式.
2)異常識(shí)別:計(jì)算樣本點(diǎn)與正常模式的偏離程度,將偏離程度高于閾值的樣本點(diǎn)視為異常點(diǎn).
圖1 異常檢測框架Fig.1 Framework for anomaly detection
為便于描述本研究提出的異常檢測方法,表1對參數(shù)進(jìn)行了說明.
表1 參數(shù)說明
模式挖掘的目的是從眾多的歷史數(shù)據(jù)中,識(shí)別出系統(tǒng)的正常模式. 由于電力信息系統(tǒng)單位時(shí)間采集一次數(shù)據(jù),采集頻率高、時(shí)間跨度大,具有眾多相似或重復(fù)數(shù)據(jù),在特征提取過程中將進(jìn)行大量重復(fù)計(jì)算. 所以,模式挖掘過程分為數(shù)據(jù)壓縮和模式特征提取兩個(gè)步驟.
1.1.1 基于網(wǎng)格的數(shù)據(jù)壓縮
考慮到數(shù)據(jù)各維度的度量存在不同數(shù)量級問題,數(shù)據(jù)壓縮前,本研究基于minmax準(zhǔn)則,將數(shù)據(jù)各維度統(tǒng)一規(guī)范化,如式(1).
(1)
然后,在數(shù)據(jù)空間中劃分網(wǎng)格,以各網(wǎng)格內(nèi)樣本點(diǎn)的均值及其權(quán)重因子(各網(wǎng)格內(nèi)樣本點(diǎn)的數(shù)量)作為新的數(shù)據(jù)集合. 如圖2,各網(wǎng)格的均值點(diǎn)及其權(quán)重組成的數(shù)據(jù)集{(m1,w1), (m2,w2), (m3,w3), (m4,w4)}表示壓縮后的數(shù)據(jù)集. 其中,mi為regioni內(nèi)樣本點(diǎn)均值,wi為regioni內(nèi)樣本點(diǎn)數(shù).
圖2 數(shù)據(jù)壓縮示例Fig.2 Data compression example
1.1.2 基于BDk-means的模式特征提取
BDk-means算法在傳統(tǒng)k-means算法的基礎(chǔ)上,引入聚類邊界再分配機(jī)制(當(dāng)邊界密度大于簇密度時(shí),每次迭代使聚類邊界向密度小的方向移動(dòng)),使邊界密度逐步向下收斂,得到邊界清晰的聚類劃分,準(zhǔn)確提取正常模式,主要包含初始聚類中心選擇、模式更新和聚類中心更新等3個(gè)步驟.
為便于描述本研究提出的BDk-means算法,給出以下定義.
定義1簇邊界區(qū)間:給定任意兩個(gè)簇i、j和邊界范圍參數(shù)s, 簇邊界區(qū)間(edgei, j)表示處于直線L1和直線L2之間的平面空間,其中,L1(a1x+b1y+c1)和L2(a2x+b2y+c2=0)分別表示線段CiCj的垂直平分線L0前后平移s的直線,如圖3.
圖3 邊界劃分示意Fig.3 Edge demarcation
定義2邊界樣本:給定任意兩個(gè)簇i和j, 其邊界樣本ePointi, j表示處于平面空間edgei, j內(nèi)的樣本點(diǎn)(x,y), 如圖3中介于直線L1和直線L2之間的樣本點(diǎn)P(x,y), 滿足約束:
(2)
1) 初始聚類中心選擇
傳統(tǒng)k-means算法初始聚類中心選擇過程具有隨機(jī)性,選擇不同的初始聚類中心,算法陷入的局部最優(yōu)解不同,可能得到不理想的局部最優(yōu)解. 因此,本研究提出一種改進(jìn)的初始聚類中心選擇算法,首先對于給定數(shù)據(jù)集建立如圖4所示的坐標(biāo)空間,然后確定坐標(biāo)空間中與原點(diǎn)距離的最大樣本點(diǎn)maxP和最小樣本點(diǎn)minP,并以原點(diǎn)為圓心將坐標(biāo)空間切分為圖4所示的k個(gè)等寬圓環(huán)空間,每個(gè)圓環(huán)空間Ci表示為
Ci={in_ri, out_ri}
(3)
其中, in_ri和out_ri分別代表圓環(huán)空間的外環(huán)和內(nèi)環(huán), 具體定義為
(4)
(5)
其中,dist(o, minP)和dist(o, maxP)分別表示原點(diǎn)o到樣本點(diǎn)maxP和minP的距離.
圖4 初始聚類Fig.4 Initial clustering
本研究將各圓環(huán)內(nèi)樣本點(diǎn)的集合視為初始簇,并基于加權(quán)均值更新聚類中心:
(6)
(7)
其中, |Pi|為Pi集合中樣本點(diǎn)的個(gè)數(shù);wl為經(jīng)數(shù)據(jù)壓縮后樣本點(diǎn)Pi[l]的權(quán)重.
2) 模式更新
一般來說,電力信息系統(tǒng)數(shù)據(jù)模式分布具有差異性(圖3),模式C1中樣本離中心距離較小,模式C2中樣本離中心距離較大.
傳統(tǒng)k-means算法以最近鄰準(zhǔn)則標(biāo)記樣本點(diǎn)類別,以圖3中C1C2的垂直平分線L0劃分兩種模式,將L0至L2中的樣本點(diǎn)劃分為模式C1, 然而L0兩側(cè)樣本點(diǎn)分布類似,均為模式C2中的樣本點(diǎn). 因此,本研究提出一種邊界再分配策略,首先以最近鄰準(zhǔn)則劃分初始簇,分配樣本點(diǎn)為其最近鄰簇Pm,獲得初步聚類劃分P1,P2,P3, … ,Pk,樣本點(diǎn)所屬類別由式(8)確定:
(8)
計(jì)算每一樣本點(diǎn)與最近鄰簇心Ci和次近鄰簇心Cj垂直平分線的距離,當(dāng)其小于給定的邊界范圍s, 則視該樣本點(diǎn)為邊界edgei, j的邊界樣本點(diǎn)ePointi, j. 通過比較邊界樣本點(diǎn)密度bDensi, j與簇i、j相對聚類邊界edgei, j的密度cDensi, j和cDensj, i, 當(dāng)邊界密度bDensi, j>cDensi, j或cDensj, i時(shí),劃分邊界樣本點(diǎn)到簇相對密度更大的簇,否則以最近鄰準(zhǔn)則標(biāo)記樣本點(diǎn)類別.
邊界密度bDensi, j為
(9)
其中, |ePointi, j|為邊界edgei, j樣本點(diǎn)數(shù)量;s為給定的邊界范圍參數(shù). 簇i相對聚類邊界edgei, j的簇相對密度為
(10)
ri, j=dist(ci,cj)/2
(11)
其中, |Pi|表示簇i的樣本點(diǎn)數(shù)量.
3) 聚類中心更新
(12)
(13)
異常識(shí)別過程基于已挖掘出電力信息系統(tǒng)的正常模式,通過設(shè)置各模式的異常閾值,識(shí)別異常[14]. 鑒于電力監(jiān)控?cái)?shù)據(jù)中未記錄歷史故障數(shù)據(jù)以及各簇分布不服從正態(tài)分布,本研究以各正常模式箱型圖的上限作為異常閾值thresholdi. 根據(jù)正常模式聚類中心及各模式異常閾值進(jìn)行實(shí)時(shí)數(shù)據(jù)的異常識(shí)別步驟為:
1)電力信息系統(tǒng)監(jiān)控?cái)?shù)據(jù)實(shí)時(shí)采集;
2)計(jì)算實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)與各聚類中心的距離D_CP0, D_CP1, …, D_CPk;
3)當(dāng)實(shí)時(shí)監(jiān)控樣本點(diǎn)與各正常模式中心的距離D_CPi均大于異常距離thresholdi時(shí),則識(shí)別其為異常數(shù)據(jù),進(jìn)行異常預(yù)警.
基于BDk-means聚類的電力信息系統(tǒng)異常檢測實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)選取某電力信息系統(tǒng)某一主機(jī)網(wǎng)絡(luò)流入量和網(wǎng)絡(luò)流出量兩個(gè)維度近1年所產(chǎn)生的約6萬條數(shù)據(jù),實(shí)驗(yàn)環(huán)境為python3.6、win10 64位、主頻2.3 GHz,內(nèi)存8 Gbyte.
實(shí)驗(yàn)中將本研究提出的異常檢測方法與基于傳統(tǒng)k-means、PSO-k-means[9]和Minmax-k-means[15]聚類算法的異常檢測方法相比較.
2.2.1 模式挖掘評價(jià)指標(biāo)
本實(shí)驗(yàn)使用聚類內(nèi)部評價(jià)指標(biāo)輪廓系數(shù)(SilCoe)和S_Dbwnew[16-17]評估模式挖掘的準(zhǔn)確性.
1) 輪廓系數(shù).以樣本點(diǎn)為單位評估聚類的準(zhǔn)確性,其取值在-1~1,計(jì)算公式為
(14)
其中,a表示樣本點(diǎn)與其所屬簇其他樣本點(diǎn)的平均距離;b表示樣本點(diǎn)與其所屬簇的最近鄰簇樣本點(diǎn)的平均距離.
2) S_Dbwnew. 以簇為單位評估聚類的準(zhǔn)確性,其取值為0到正無窮,計(jì)算公式為
S_Dbwnew=Dens_bwnew+Scatnew
(15)
其中, Dens_bwnew為聚類邊緣密度與數(shù)據(jù)簇心密度之比;Scatnew為簇標(biāo)準(zhǔn)差與數(shù)據(jù)空間整體標(biāo)準(zhǔn)差之比.
通常,輪廓系數(shù)越接近1, S_Dbwnew越小,表明挖掘的模式越準(zhǔn)確.
2.2.2 異常識(shí)別評價(jià)指標(biāo)
本研究提出異常距離(abnormal distance, AbnDst)評估異常檢測結(jié)果的有效性,計(jì)算公式為
(16)
其中, dist(AP,P)表示異常樣本點(diǎn)AP至正常樣本點(diǎn)P的距離, |AbnS|表示異常數(shù)據(jù)集AbnS中元素的數(shù)量. 一般來說,異常距離大小與異??赡苄猿烧嚓P(guān).
異常檢測算法對比實(shí)驗(yàn)統(tǒng)一采用未壓縮的數(shù)據(jù),將本研究所提方法與其他3種方法相比較,以保證對比實(shí)驗(yàn)的可靠性. 首先,對比4種算法的聚類圖,不同類別的樣本點(diǎn)在圖中以不同的灰度顯示,如圖5.
圖5 聚類結(jié)果對比Fig.5 Comparison of cluster results
傳統(tǒng)k-means及PSO-k-means算法的各模式邊界處樣本點(diǎn)數(shù)量較多,說明該部分樣本點(diǎn)屬于兩種模式的可能性相似,無法準(zhǔn)確確認(rèn)其所屬模式. 而Minmax-k-means與本研究提出的BDk-means挖掘的各模式邊界處樣本點(diǎn)數(shù)量更少,模式區(qū)分更加明顯,挖掘的模式準(zhǔn)確率更高.
為進(jìn)一步驗(yàn)證BDk-means算法的有效性,對比基于BDk-means和Minmax-k-means異常檢測的各指標(biāo)值,如表2.
表2 算法性能對比
BDk-means算法比Minmax-k-means算法聚類結(jié)果的輪廓系數(shù)更接近1,具有更小的S_Dbwnew和更大的異常距離. 另外,BDk-means算法運(yùn)行時(shí)間為Minmax-k-means執(zhí)行時(shí)間的50%,原因是Minmax-k-means算法每次迭代均需先后兩次對每一樣本點(diǎn)進(jìn)行類別劃分,第1次計(jì)算各類別的權(quán)重,第2次確定模式,而本研究算法第2次僅需對邊界處樣本點(diǎn)統(tǒng)一劃分模式,使得模式挖掘效率有明顯提升.
考慮到電力信息系統(tǒng)數(shù)據(jù)的特色,增加數(shù)據(jù)壓縮步驟后,異常檢測模型的運(yùn)行時(shí)間由8.32 s降低至0.55 s,進(jìn)一步提高了效率,且各指標(biāo)基本保持不變. 可見,本研究提出的數(shù)據(jù)壓縮方法能有效提高異常檢測效率.
綜上,本研究提出的基于BDk-means聚類的異常檢測方法對電力信息系統(tǒng)的異常檢測具有一定參考價(jià)值.
提出一種基于BDk-means聚類的異常檢測方法. 該方法基于網(wǎng)格映射進(jìn)行數(shù)據(jù)壓縮,有效提高了異常檢測效率,并改進(jìn)k-means算法,解決了傳統(tǒng)k-means算法聚類中心敏感、無法準(zhǔn)確挖掘分布差異過大模式的問題. 實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有算法相比,本研究異常檢測方法在準(zhǔn)確度及效率方面有了較大提升,對電力信息系統(tǒng)的異常檢測具有重要的指導(dǎo)意義.