李 寒,余 斌,佟 寧,王鑫浩
(1.北方工業(yè)大學 計算機學院,北京 100144;2.大規(guī)模流數(shù)據(jù)集成與分析技術(shù)北京市重點實驗室,北京 100144;3.大連交通大學 軟件學院,遼寧 大連 116052)
隨著電力相關(guān)物聯(lián)網(wǎng)技術(shù)的發(fā)展,大量反映電網(wǎng)實際運行狀況的電力感知數(shù)據(jù)持續(xù)產(chǎn)生且不斷積累?;谶@些電力感知數(shù)據(jù),將有機會提供更精確、更智能及更綜合的電力服務(wù)。所以如何利用好電力感知數(shù)據(jù)已成為電力工程領(lǐng)域一個新興且關(guān)鍵的問題[1]。然而,由于干擾源的影響和數(shù)據(jù)采集及網(wǎng)絡(luò)傳輸異常的存在,電力感知數(shù)據(jù)的質(zhì)量很難保證[1]。因此,檢測并消除數(shù)據(jù)源中的異常在學術(shù)界和工業(yè)界受到普遍關(guān)注。
異常數(shù)據(jù)種類多樣,離群點是一類典型且主要的數(shù)據(jù)異常[2]。以電力為代表的工業(yè)控制領(lǐng)域大多通過設(shè)置閾值發(fā)現(xiàn)離群點。盡管這種基于閾值的方法簡便易行,但卻不能發(fā)現(xiàn)未超出閾值的異常數(shù)據(jù)。文中將離群點定義為超出閾值,或未超出閾值但與相鄰數(shù)據(jù)存在明顯差異的數(shù)據(jù)。近年來,雖然提出了一些離群點檢測方法,但存在方法難以應(yīng)用于大規(guī)模數(shù)據(jù)或不適合電力感知數(shù)據(jù)的情況。離群點檢測是運用各類數(shù)據(jù)處理模型和技術(shù)發(fā)現(xiàn)數(shù)據(jù)資源中的異常數(shù)據(jù)的過程,是發(fā)現(xiàn)數(shù)據(jù)異常,提升數(shù)據(jù)質(zhì)量的前提和必要環(huán)節(jié)。離群點檢測本身是一種能力,如果一個組織將其離群點檢測能力提供給其他組織或個人,這就是離群點檢測服務(wù)。在大數(shù)據(jù)環(huán)境下,數(shù)據(jù)資源不僅體量巨大而且種類繁多,對數(shù)據(jù)處理能力的要求也在不斷提高。在這種情況下,只有少部分機構(gòu)具備獨立處理大數(shù)據(jù)的能力,對于不具備上述能力的機構(gòu),則需要對外尋求數(shù)據(jù)處理服務(wù)。因此,同大數(shù)據(jù)資源一樣,離群點檢測成為一類必不可少的數(shù)據(jù)處理服務(wù)。針對發(fā)現(xiàn)異常電力感知數(shù)據(jù)和以服務(wù)形式提供異常數(shù)據(jù)檢測能力的需求,文中提出一種電力感知數(shù)據(jù)的離群點檢測解決方案,包含異常檢測服務(wù)框架和離群點檢測方法。
近年來,為提高數(shù)據(jù)質(zhì)量,提出一系列數(shù)據(jù)異常處理技術(shù),如缺失數(shù)據(jù)填補、對象重復檢測、離群點檢測、邏輯錯誤檢測和不一致數(shù)據(jù)檢測等[3]。由于離群點會對后續(xù)數(shù)據(jù)處理和分析帶來嚴重負面影響,因此離群點檢測被認為是數(shù)據(jù)質(zhì)量保障環(huán)節(jié)最重要的問題之一[2]。
1887年,F(xiàn). Edgeworth發(fā)表了關(guān)于不一致實驗數(shù)據(jù)的研究成果,從此開啟了離群點檢測研究的序幕[3]。通常,離群點可劃分為五類,分別是基于統(tǒng)計的離群點[4]、基于聚類的離群點[5]、基于分類的離群點[5]、基于距離的離群點[6]和基于密度的離群點[7]。近年來,隨著數(shù)據(jù)資源的重要性提升,針對離群點檢測的研究開始增多。2010年,江峰等提出一種基于邊界和距離的離群點檢測方法[8]。該方法針對不確定和不完整數(shù)據(jù),基于粗糙集理論和基于聚類的離群點檢測方法實現(xiàn)檢測。在臨床診斷數(shù)據(jù)集上的實驗驗證了該方法的有效性,但該方法在其他領(lǐng)域的應(yīng)用效果尚有待驗證。2012年,Z. Yao等提出一種基于臨近圖和PageRank算法的離群點檢測方法[9]。該方法使用離群分數(shù)標記數(shù)據(jù)的離群程度,具有較低的時間復雜度,對高維數(shù)據(jù)的離群點檢測效果較好。2015年,G. Tang等提出一種多維情景的離群點檢測方法[10]。該方法首先對數(shù)據(jù)分類,并將類別作為數(shù)據(jù)領(lǐng)域,再利用群閉包理論檢測情景離群點,是條件離群點檢測方面的新嘗試。
此外,一些針對大規(guī)模數(shù)據(jù)的離群點檢測方法也開始受到關(guān)注。2015年,Y. Diao等提出一種基于動態(tài)離群點檢測的大數(shù)據(jù)在線清洗算法[11]。該算法基于Hadoop平臺實現(xiàn),能大幅提高實時數(shù)據(jù)預(yù)處理的效率,但未與領(lǐng)域特征相結(jié)合。2016年,王習特等提出一種高效的分布式離群點檢測算法(BOD)[12]。該算法將數(shù)據(jù)分塊處理,通過均衡化每個節(jié)點的工作負載,能有效提升離群點檢測的效率并控制網(wǎng)絡(luò)開銷。
由于領(lǐng)域數(shù)據(jù)具有特殊數(shù)據(jù)特性,有必要開展領(lǐng)域相關(guān)的離群點檢測研究。在電力領(lǐng)域,結(jié)合領(lǐng)域知識的離群點檢測方法還十分有限。2015年,程超等提出一種基于離群點算法和用電信息采集系統(tǒng)反竊電研究。該研究將離群點算法與電力應(yīng)用相結(jié)合,探索了離群點與電力業(yè)務(wù)之間的相關(guān)性。然而,該研究側(cè)重竊電分析,離群點算法僅是竊電分析的一個操作步驟[13]。
為更便捷地對外提供大數(shù)據(jù)處理能力,數(shù)據(jù)相關(guān)服務(wù)也開始受到關(guān)注。2014年,張志強等研究了數(shù)據(jù)可視化服務(wù),提出一種基于B/S架構(gòu)的霧霾專題數(shù)據(jù)可視化服務(wù)系統(tǒng)[14],能夠支持霧霾數(shù)據(jù)的實時更新、統(tǒng)計、顯示功能。2017年,夏虹等探討了面向工業(yè)的開放數(shù)據(jù)服務(wù)平臺[15]。提出了一種面向工業(yè)的開發(fā)數(shù)據(jù)服務(wù)平臺的體系結(jié)構(gòu)和工作流程,但未闡述具體技術(shù)和方法。2018年,佟杰等對海洋測繪數(shù)據(jù)服務(wù)保障系統(tǒng)展開研究[16],嘗試將海洋測繪數(shù)據(jù)以服務(wù)的形式對外發(fā)布。該研究尚處于起步階段,有待深入探討和應(yīng)用驗證。總之,目前關(guān)于數(shù)據(jù)處理服務(wù)的研究還十分有限,且不存在針對異常數(shù)據(jù)檢測服務(wù)的相關(guān)研究。
綜上所述,現(xiàn)有的離群點檢測方法大多將注意力集中在數(shù)據(jù)值上,而忽略了領(lǐng)域相關(guān)且能反映數(shù)據(jù)特征的數(shù)據(jù)屬性。此外,共享面向大數(shù)據(jù)的異常數(shù)據(jù)檢測能力的需求已存在。因此,文中提出了一種考慮電力感知數(shù)據(jù)的時間屬性的離群點檢測方法,并設(shè)計了一種電力感知數(shù)據(jù)異常檢測服務(wù)框架。
絕大多數(shù)電力數(shù)據(jù)是由各種電力傳感器產(chǎn)生的。這些電力傳感器屬于不同的電力設(shè)備,分布廣泛。在中國,電網(wǎng)規(guī)模很大,并且正在逐年擴大。隨著電網(wǎng)規(guī)模的擴大,電力感知數(shù)據(jù)量迅速增加。然而,并非所有機構(gòu)都具備大規(guī)模的電力感知數(shù)據(jù)的處理能力。因此,為了有效和方便地對外提供電力感知數(shù)據(jù)異常檢測的能力,有必要探討電力感知數(shù)據(jù)的異常檢測能力的使用模式。
借鑒Web服務(wù)的思想,為了滿足易用的特點,并同時考慮可擴展性,文中融合Web服務(wù)的思想和大數(shù)據(jù)技術(shù),設(shè)計了一種電力感知數(shù)據(jù)的異常檢測服務(wù)框架,如圖1所示。在該框架中,處理對象是由各類電力傳感設(shè)備產(chǎn)生的電力感知數(shù)據(jù),輸出為帶有異常數(shù)據(jù)標記的電力感知數(shù)據(jù)。該框架由四個主要層次構(gòu)成,自頂向下包括應(yīng)用層、服務(wù)層、計算層和存儲。
圖1 電力感知數(shù)據(jù)的異常檢測服務(wù)框架
框架各層次描述如下:
(1)應(yīng)用層。
應(yīng)用層是用戶與系統(tǒng)直接交互的窗口,也是整個系統(tǒng)核心功能的入口。電網(wǎng)業(yè)務(wù)人員在服務(wù)配置模塊中可選擇所需的異常檢測服務(wù)并對其相關(guān)參數(shù)進行配置。數(shù)據(jù)選擇模塊支持待檢測的數(shù)據(jù)的選擇,這些數(shù)據(jù)存儲在存儲層中,用戶選擇后就會將請求發(fā)往服務(wù)層進行進一步的異常檢測。數(shù)據(jù)展示模塊則負責返回部分異常數(shù)據(jù)檢測結(jié)果,供用戶查看。
(2)服務(wù)層。
服務(wù)層用于托管應(yīng)用服務(wù)。首先,服務(wù)層會接收來自應(yīng)用層的請求,處理請求中的配置和數(shù)據(jù)。然后,進入服務(wù)庫,使用相對應(yīng)的異常數(shù)據(jù)檢測服務(wù)在計算層對數(shù)據(jù)實施異常檢測處理。文中提出的考慮時間屬性的離群點檢測方法將作為服務(wù)在服務(wù)庫中提供。最后,部分異常數(shù)據(jù)檢測的結(jié)果將打包返回給應(yīng)用層的數(shù)據(jù)展示模塊,方便用戶定位異常數(shù)據(jù)。
(3)計算層。
計算層是一個混合的計算環(huán)境,用于執(zhí)行異常數(shù)據(jù)檢測方法?;赮ARN,MapReduce和Spark是主要的分布式計算組件。其中,MapReduce在批處理中具有良好的性能,Spark則提供快速的內(nèi)存處理,且Spark的機器學習庫MLlib包含許多算法和實用工具,如分類、決策樹、推薦、聚類等,能夠有效支撐異常數(shù)據(jù)檢測方法的實現(xiàn)。文中提出的離群點檢測方法使用了MLlib庫的聚類算法。
(4)數(shù)據(jù)層。
數(shù)據(jù)層位于最底層,該層采用一個集成的存儲環(huán)境保存數(shù)據(jù),包括關(guān)系數(shù)據(jù)庫(MySQL)、NoSQL數(shù)據(jù)庫(Hbase)和分布式文件系統(tǒng)(HDFS)。MySQL用于保存計算結(jié)果和從原始電力感知數(shù)據(jù)中解析獲得的所有結(jié)構(gòu)化數(shù)據(jù)。HDFS用于電力感知數(shù)據(jù)的保存。Hbase則以電力感知數(shù)據(jù)的時間和空間屬性為依據(jù)保存電力感知數(shù)據(jù)。
電力感知數(shù)據(jù)是持續(xù)產(chǎn)生的,影響電力感知數(shù)據(jù)的因素通常不具有突變性,因此,電力感知數(shù)據(jù)具有明顯的時間相關(guān)性和連續(xù)性。當影響因素發(fā)生突變時,即可能產(chǎn)生離群點,如異常斷電、設(shè)備故障等。這些離群點不由時間因素引起,但卻與正常數(shù)據(jù)同樣具有時間屬性。圖2為光伏電能質(zhì)量數(shù)據(jù)中的無功功率隨著時間的變化趨勢,其中離群點用圓形圈出。這些離群值不超過閾值,但每個離群點和它的鄰居點之間存在明顯的偏差。根據(jù)檢查記錄,這些異常值是由傳輸異
圖2 無功功率隨時間變化的趨勢
?;蛱厥獾沫h(huán)境因素引起的。因此,考慮到電力感知數(shù)據(jù)的時間相關(guān)性,提出了一種考慮時間屬性的離群點檢測方法,用于發(fā)現(xiàn)遠離鄰近點的離群點。
由于電力感知數(shù)據(jù)具有明顯的時間相關(guān)性和連續(xù)性特征,且影響因素突變較少,數(shù)據(jù)常呈規(guī)律性變化且鄰近數(shù)據(jù)之間的偏差不大。鑒于現(xiàn)有電力數(shù)據(jù)聚類及分類算法未考慮數(shù)據(jù)的時間特性的不足,文中將時間屬性引入離群點發(fā)現(xiàn),提出一種考慮時間屬性的離群點檢測方法。該方法先采用基于數(shù)據(jù)值的k-means聚類獲取數(shù)據(jù)值中心,再利用基于時間屬性的數(shù)據(jù)分段識別違背時間連續(xù)性和相關(guān)性的電力感知數(shù)據(jù)離群點。
3.2.1 考慮時間屬性的數(shù)據(jù)分類
考慮時間屬性的數(shù)據(jù)分類由k-means聚類和數(shù)據(jù)分段兩個階段構(gòu)成,其流程如圖3所示。
圖3 考慮時間屬性的數(shù)據(jù)分類流程
在第一階段,由于時間屬性是均勻分布且連續(xù)的,不具有聚類條件,k-means聚類以數(shù)據(jù)值為聚類對象,將生成若干組具有多個數(shù)值聚類中心的簇,并標記簇之間的分界點數(shù)據(jù)。數(shù)據(jù)分類的輸入數(shù)據(jù)是k-means聚類結(jié)果中的最佳者。
如圖3所示,由于k-means聚類的聚類個數(shù)需要預(yù)先確定,提出的方法將依據(jù)設(shè)置的最大聚類個數(shù)Nmax,從2個聚類個數(shù)開始執(zhí)行Nmax-1次聚類。為了從Nmax-1個聚類結(jié)果中選取最佳者,采用MIA指數(shù)(mean index adequacy)評估聚類結(jié)果的質(zhì)量[17]。MIA被描述為每個簇中心和屬于相應(yīng)簇的所有元素之間的平均距離。MIA值越小表明簇內(nèi)元素的緊密度越高,聚類結(jié)果越好。MIA指數(shù)計算方法如式1和式2所示。
(1)
(2)
3.2.2 離群點識別
離群點識別負責發(fā)現(xiàn)數(shù)據(jù)組中與鄰近數(shù)據(jù)存在較大偏差的異常數(shù)據(jù),圖4為離群點識別流程。
圖4 離群點識別流程
首先,為最佳聚類結(jié)果中的每一個簇生成上下限值。然后,判定經(jīng)數(shù)據(jù)分類方法處理后獲得的數(shù)據(jù)組中是否存在超出所屬簇上下限的數(shù)據(jù)值,并將該數(shù)據(jù)標記為離群點。
電力感知數(shù)據(jù)具有大規(guī)模的特性,通常存儲于大數(shù)據(jù)平臺中。以電能質(zhì)量數(shù)據(jù)為例,全國近1萬個監(jiān)測點,各監(jiān)測點每3 s采集2千余指標數(shù)據(jù),每天的數(shù)據(jù)累積量高達2.75 T。因此,文中提出的電力感知數(shù)據(jù)異常檢測服務(wù)框架和離群點檢測方法基于大數(shù)據(jù)技術(shù)實現(xiàn)。具體的,由于Spark不僅具有海量數(shù)據(jù)的處理能力,還具有提供豐富算法的機器學習庫MLlib。該方法以MLlib庫的聚類算法為基礎(chǔ)實現(xiàn),實驗環(huán)境為四臺虛擬機構(gòu)成的并行集群,虛擬機的硬件配置為8核,32 G內(nèi)存,500 G硬盤,軟件平臺為Spark1.6.0。該方法針對具有時間連續(xù)性的電力感知數(shù)據(jù)展開,已在充電樁數(shù)據(jù)和諧波監(jiān)測數(shù)據(jù)上進行驗證。采用充電樁的三相基波電流為數(shù)據(jù)集,通過設(shè)置不同的錯誤率以支持不同的實驗,錯誤率指離群點在數(shù)據(jù)中的占比。鑒于電力感知數(shù)據(jù)的多樣性,該方法還有待應(yīng)用于更豐富的電力感知數(shù)據(jù)集。
該方法采用MIA評估聚類結(jié)果的質(zhì)量,圖5所示為不同聚類結(jié)果的MIA值。由圖5可知,隨聚類個數(shù)(K值)增大,MIA值有減小趨勢。然而,卻不能僅以MIA值為依據(jù)選取較大的K值,因為當聚類的數(shù)量過大時,每個簇的數(shù)據(jù)量會相應(yīng)降低,從而影響后續(xù)的計算和分析。如圖5所示,當K值由3變作4時MIA值存在明顯的變小趨勢,而隨著K值的增加,此趨勢逐漸減緩,所以K值取4,即數(shù)據(jù)分為四類。
圖5 不同聚類結(jié)果的MIA值
召回率指被檢測到的離群點占實際離群點的比例。實驗將錯誤率分別設(shè)置為1%、3%、5%、7%和9%,圖6所示為不同錯誤率情況下的召回率。如圖6所示,當錯誤率從1%增加到10%時,召回率的值略有下降。鑒于召回率的最小值仍接近80%,文中方法能夠發(fā)現(xiàn)大多數(shù)離群值。與基于聚類和基于數(shù)據(jù)分段的離群點檢測方法相比,該方法采用一次聚類疊加數(shù)據(jù)分類的方式,彌補了聚類算法僅實現(xiàn)數(shù)據(jù)歸類卻無法識別離群點,以及數(shù)據(jù)分類無法估計正常數(shù)據(jù)范圍的不足,能夠有效識別具有時間連續(xù)性的離群點。
圖6 不同錯誤率情況下的召回率
并行加速比指在單個機器上的運行時間與在并行集群上的運行時間的比率,主要用于評價并行系統(tǒng)的性能或并行算法的并行度。實驗將錯誤率設(shè)置為5%,數(shù)據(jù)量分別為100 MB、200 MB、300 MB和400 MB,并分別在一臺虛擬機和一個包含四個虛擬機的并行集群上進行實驗。圖7所示為數(shù)據(jù)集規(guī)模與并行加速比之間的關(guān)系。
圖7 數(shù)據(jù)集規(guī)模與并行加速比之間的關(guān)系
如圖7所示,隨著數(shù)據(jù)量的增大,并行加速比逐步提升,說明該方法具有較好的并行性能。
實驗通過分析集群規(guī)模對并行加速比的影響反映該方法的可擴展性。實驗將錯誤率設(shè)置為5%,數(shù)據(jù)量分別為200 MB和400 MB。圖8所示為集群規(guī)模對并行加速比的影響,位于下方的虛線為200 M數(shù)據(jù)集的并行加速比,位于上方的實線為400 M數(shù)據(jù)集的并行加速比。
圖8 集群規(guī)模與并行加速比之間的關(guān)系
如圖8所示,該方法近似線性加速,說明其具有良好的可擴展性。上述實驗驗證了該方法具有良好的并行加速比和擴展性。此外,與基于模型、基于距離和基于密度的離群點檢測算法相比,該方法無需預(yù)知數(shù)據(jù)分布,參數(shù)簡單,且復雜度較低。
為了提高電力感知數(shù)據(jù)的數(shù)據(jù)質(zhì)量,提出了一種電力感知數(shù)據(jù)的離群點檢測解決方案,包括異常數(shù)據(jù)檢測服務(wù)框架和考慮時間屬性的離群點檢測方法。給出的框架由存儲層、計算層、服務(wù)層和應(yīng)用層構(gòu)成,能夠提供電力感知數(shù)據(jù)的異常數(shù)據(jù)檢測服務(wù)。提出的考慮電力感知數(shù)據(jù)的時間屬性的離群點檢測方法,基于電力感知數(shù)據(jù)的時間特性,基于k-means聚類和時間相關(guān)的數(shù)據(jù)分段方法實現(xiàn),彌補了聚類算法僅實現(xiàn)數(shù)據(jù)歸類卻無法識別離群點,以及數(shù)據(jù)分類無法估計正常數(shù)據(jù)范圍的不足,能夠有效識別具有時間連續(xù)性的離群點。實驗結(jié)果表明,該方法具有良好的離群點檢出率,并有良好的并行性能和可擴展性。接下來,將進一步開展更豐富的實驗驗證,以及探索基于電力感知數(shù)據(jù)其他屬性的離群點檢測方法。