黃莉雅 倪凡 舒彧 楊耀
(貴州電網有限責任公司信息中心 貴州省貴陽市 550000)
利用、分析電網積累的大量用電數據可知用戶側的漏電、竊電等異常行為研究與監控具有重大意義。用戶的用電信息可以存儲在智能電表,并且反映用戶日常用電信息和用電習慣。結合用電信息和線損信息,可以尋找到正常用戶與異常用戶之間的不同之處[1,2]。事實上,還是很難區分普通用戶和竊電用戶。比如,文獻[3]提出由于不能簡單直接地計算或測量非技術性損耗(NTL),因此需要從其它初步結果對它進行估計,即從總損耗中減去技術性損耗。文獻[4]提出了將無監督學習用于非正常行為用電模式檢測,適用于電力用戶數據集不足,訓練樣本較少的情況。然而,另一方面,在實際情形下,對異常用電的成功檢測率會隨著時間的推進而下降。文獻[5]提出每當引入新方法時,檢測率最初可能很高,但是隨著欺詐者改變方法以避免檢測,其有效性會隨時間變化而減少。文獻[6,7]提出傳統的檢測方法大多通過人工的現場調查,或者臨時增加校驗用的電能計量設備,這些工作大大提高了檢測的成本,無法進行大規模的應用,對異常用電行為的覆蓋也非常有限。文獻[8]提出基于稀疏隨機森林算法的異常用電行為監測方法,此算法利用時間窗和Bootstrap重采樣,建立行為模型信息簇,然后利用監督學習獲取隨機森林模型,最后對模型進行稀疏化,并以此來判斷樣本是否異常。文獻[9,10]中,提出了基于LSTM(Long Short Term Memory Network)神經網絡提取特征,對異常用電數據利用網絡提取出的特征數據提取。以上這些方法,都不能從根源上去識別竊漏電用戶,并且是分析歷史用電數據,不能達到實時監測異常用電用戶,而且準確度不高。本文提出了構建物聯網[11,12]的基于邊緣計算的異常用電監測算法來對用電用戶進行實時分析用電情況。
具體地,先將電量采集節點數據實時傳給邊緣計算節點[13-15]進行是否竊漏電判斷可疑,可疑的用戶,云平臺再進行通過建立客戶用電行為數據集,建立日用電量趨勢指標形成功耗梯度模型,進而準確反映每個用戶的短期用電趨勢,其次再提取用電行為中的線損特征,再利用機器學習中的混合深度神經網絡模型[16-18]對用電客戶的各個特征進行分析,從而檢測、定位異常用電行為。本文的主要貢獻以下幾點:
(1)用電數據的收集與整理。對不同區域用電客戶產生的數據進行抽取、轉換和清理,建立該區域客戶用電行為的數據集;
(2)線損特征的提取。不同用戶擁有其特有用電行為數據,通過分析正常、非正常用電串損數據不同特征,建立以提取特征為相關指標的線損分析指數化體系。
(3)功耗梯度模型的建立。具體地,它通過建立客戶用電行為數據集,建立日用電量趨勢指標形成功耗梯度模型,進而準確反映每個用戶的短期用電趨勢,形成功耗梯度指標。
(4)以邊緣計算網絡[19]與混合深度神經網絡[20]為基礎,建立神經網絡模型。構建邊緣計算網絡和判斷可疑指標選取模型,并利用用電用戶的功耗梯度指標、線損指標和告警類指標等構建對用戶進行竊漏電準確檢測的模型。
本文剩余的結構如下:第二小節描述得是竊電行為的特征提取,包括用電數據的處理,線損指標和功耗指標的計算;第三小節描述得是神經網絡模型的建立;第四小節是對全文的一個總結。
異常用電行為的檢測可分為六大步驟:數據的抽取,對數據的探索,數據預處理,邊緣計算,訓練模型的構建,結果反饋等步驟。在所有客戶群體中,有些大用戶是不可能存在異常用電行為的,例如公立醫院、公立學校、政府和國有銀行等非居民用戶,因此在數據預處理時,將不可能存在異常用電行為的客戶的數據樣本刪除。由于異常用電的發生不能直接由用戶用電量曲線反映,且一些噪聲被包含在告警信息中,因此探究總結異常用電行為相關的數據屬性,并提取以相關且具有代表性的特征為指標,利用專家主觀經驗,對指標的設置進行調整,組成專家樣本。
為了能夠更好地建立異常用電用戶識別模型[21],不能直接對原始數據建模,而需要遵循一定的數據挖掘流程。機器學習算法得出的數據挖掘[22]效果主要的影響因素為數據集大小和特征,因此各個分析步驟間未必呈一個線性過程,而很可能相互之間形成一個迭代關系。數據庫的知識發現[23](knowledge discovery in database,KDD)一直是學者熱門的研究,有效的數據探索和數據預處理,可以使得建模分析的效果大為提高,能夠更快、更準確地辨識和描述預期的特定模式,而不受不正常事件或者過多噪音的影響。
在所有客戶群體中,有些大用戶是不可能存在異常用電行為的,例如公立醫院、公立學校、政府和國有銀行等非居民用戶,因此可以在對數據進行預處理操作時可以將上述樣本數據剔除。由于用戶用電量告警信息中會包含一定的噪音點數據,有必要在對源數據清洗之后進行數據探索,探索數據特征中與異常用電行為呈某種關系的特征或組合特征,從而構成指標。最后利用專家的相關經驗[24],對指標的設置進行調整,從而組成專家樣本。
竊漏電用戶識別的具體過程如圖1所示,以下為主要步驟:

圖1:竊漏電用戶實時監測流程
(1)從電量采集系統和電力繳費營銷系統存儲了用戶用電信息,從中挑選部分用戶用電信息;
(2)剔除絕對不會存在異常用電行為的樣本數據,即公立醫院、公立學校、政府和國有銀行等非居民用戶;
(3)對數據樣本進行概要的etl處理、預處理;
(4)同時構建專家樣本集[24];
(5)構建實時邊緣計算網絡[25]模型;
(6)實現構建識別竊漏電異常用戶模型[26]并診斷功能。
異常用電數據集主要包括用電量數據、線損數據、線路預警及用戶相關信息等特征。因此,在建立竊漏電預測模型時,需從源數據提取如下數據:
1. a.從電量采集系統抽取的數據;
b.用戶基本信息;
c.異常用電記錄數據。
2. a.獲取的用電原始信息;
b.實時負荷信息;
c.終端報警數據。
由于建模模型的分類預測能力在很大程度上與測試集的特征高度相關,為了預測各類異常用電行為,訓練集數據要包含各個種類的異常用電用戶以及一定數量的正常用戶。對于異常用電用戶,其非法用電行為的前后時間點,是用電量數據和告警信號發生顯著變化的關鍵時期,因此異常用電用戶在正常用電時期的數據較為重要,需要被包含在訓練集數據中。實驗過程中每隔15分鐘對采集的負荷數據進行求和,得出當天的總用電量,公式如下。

其中,fl是第一天的耗電量,mi是從第一天起每15分鐘的總有功功率,并計算每天的能耗。
本文抽取了南方某城市5年內的竊漏電相關數據及不同用電類別用戶共20800個用戶數據,此外還提取了包含每天是否有竊漏電情況的標識。對3年間的數據分析,從竊漏電用戶分布可以發現非居民類別(包含政府、醫院、學校等用戶)沒有這種異常用電行為,故不考慮非居民類別。
分析近五年所有漏電用戶分布,計算每種用電量的漏電用戶分布情況,從圖2可以發現非居民類別(包含政府、醫院、學校等用戶)不存在竊漏電情況,因此可以排除非居民類別的用電數據。

圖2:用電類別異常用電情況圖
在數據預處理時主要進行如下操作。
(1)對原始數據進行過濾,將不可能有異常用電行為發生的用戶相關數據進行刪除。
(2)由于假期用電量相對而言會顯著偏低,可能影響到用電量發展趨勢的判斷,因此去除各個假期的數據。
雖然初始用電量能耗數據及報警數據可以反映一些異常能耗行為,但不能將其作為絕大多數異常用電行為的特征的代表。
正常用電量特征電量表現曲線比較緩平,波動不是很大。異常用電用戶的負荷曲線就經常出現大幅度下降的行為,規律比較雜亂無章,這是異常用電特征行為。
初始收集系統的負荷信息及預警信息,雖然可以在一定程度上反映少量異常行為的趨勢,但要作為覆蓋大部分情況下的特征,這顯然是不夠的,必須變換創造新的更有效的指標。異常用電行為評價指標如下:
2.4.1 電量趨勢下降指標
由數據探索部分的周期性分析可以發現,正常用戶的用電曲線趨于穩定,異常用戶的用電量就是大幅下降趨勢,最后趨于一個很低的值。因此考慮使用電量下降斜率作為評定衡量。
以連續5天作為計算斜率的窗口,對待評估的日期,統計前后5天共11天內,用電量的斜率變化[27],得到第i天的用電量趨勢,即:

異常竊電行為會導致這11天內的電能消耗趨勢出現下滑,因此需要統計趨勢為下降的天數,即:

則在監測期內,電量趨勢的下降指標可表示為:

2.4.2 線損指標
線損率可以用來衡量供電線路的損失比例。假設第i天的線路供電量為si,線路所有的總用電量為線路的線損率公式為:

異常用電行為發生時,相關線路的線損率會有顯著提升,可以以此作為表征相關用戶線損率的特征。另一方面,用戶每天的用電量并非保持在同一個水平,因此線損率會有上下波動的現象??梢杂嬎憔€損率的增長水平推斷是否有異常用電行為的發生。

2.4.3 告警類指標
篩選與異常用電行為相關的告警信息,統計這些告警信息在特定時間段內的發生次數。
針對所有已知是否具有竊漏電行為的異常用電用戶及正常用戶,選取用電負荷、線損數據及保護告警相關的原始數據,在數據清洗之后按照異常用電行為評估指標來進行轉換,得到29100組樣本數據,組成專家樣本庫,部分數據如表1所示。

表1:專家數據樣本
由邊緣計算為主要技術的物聯網監測系統如圖3所示。具體分為三個部分組成:無線傳感器監測節點、路由轉換節點、邊緣計算節點(樹莓派)和云計算平臺。

圖3:邊緣計算監測網絡
邊緣計算節點層在總體框架上處于一個中間層的位置,通過與各個無線傳感器節點交互而提高系統的實時性。
在提出的竊漏電監測方法中,邊緣計算節點有著承上啟下的功能,系統剛開始運行時,作為中轉路由器將數據傳送到云中心平臺[28,29]。系統時刻監測著采集的數據,當監測出現異常,邊緣計算節點會把問題報告給云平臺和控制中心。邊緣計算節點的功能如圖4所示。

圖4:邊緣計算節點功能
邊緣計算網絡計算規則:
(1)以連續7天每天對應時刻的采集功率作為功率斜率窗口,統計每天斜率變化,記錄斜率下降的天數。

(2)對待評估的時刻,計算它與之前7天對應時刻的功率的平均值和它加之前7天的功率的平均值若比大5%,則該用戶該時刻很可能發生竊漏用電行為。

當P(i)=1或者∑d(i)≥4,則判斷該時刻可能發生竊漏電行為,則給云計算平臺反饋,提取該用戶之前的數據進行模型判別,調用2.2的混合深度神經網絡進行判別。
專家數據樣本準備完成,總取得29100條樣本數據。變量特征A包含三種屬性:線損類指標、電量趨勢下降指標以及告警類指標。決策特征Y為異常用戶的標識。取人工選取數據樣本,其中80%作為訓練集,20%作為測試集。
深度神經網絡模型采用訓練樣本和TensorFlow庫構建,且使用測試數據集進行驗證。依據3個變量屬性,將神經網絡的輸入節點數數目設置為3。決策屬性為是否異常用電,屬于二分類問題[30],因此神經網絡的輸出節點數為1,且分類模式可設為二分模式binary。隱含層節點數設為5和2,使用Adam方法求解,訓練迭代次數設為1000。激活函數使用Relu(x)=max(x,0),實驗表明模型準確率因使用該激活函數能大幅提高。輸出層使用sigmoid激活函數。圖5為本文構建的模型。

圖5:混合深度神經網絡
使用python自帶的Matplotlib工具可視化預測結果。預測結果如圖6、圖7所示。

圖6:訓練集預測結果的混淆矩陣

圖7:測試集預測結果的混淆矩陣
根據訓練集預測結果的混淆矩陣可知,分類正確率:

分類精度:

召回率:

正常用戶被誤認為是盜竊和泄漏用戶700/(700+18100)=3.7%,竊漏電用戶被錯誤地判為正常用戶占竊漏電用戶的400/(400+4000)=9.1%。
從上面的結果可以得出,該異常用電用戶識別模型是有效的,過擬合發生的可能性較低。
圖8是使用了邊緣計算節點的云平臺負責率和傳統模型對比,從圖8可以看出,基于邊緣計算的模型始終使用云平臺負載較少,且不隨數據增加而增加,而傳統模型造成云平臺負載過大。

圖8:模型對云平臺負載能力影響對比圖
本文利用北方某省用戶用電數據,通過本文第二節處理方法處理成給模型的數據。分別用SVM,隨機森林,本文提出的混合深度神經網絡模型進行試驗,結果如圖9。

圖9:模型對比圖
通過以上發現,當數據集比較小,SVM和隨機森林模型優于本文提出的混合深度神經網絡模型,但是當數據集大小高于某一數據集大小,混合深度神經網絡模型明顯優于SVM和隨機森林模型。
本文提出了以邊緣計算為主要技術,由邊緣計算節點、無線傳感器監測節點及云平臺等組成的異常用電檢測網絡模型。并且在此基礎上提出了基于混合深度神經網絡的異常用電用戶識別模型。通過邊緣計算節點實時對用電數據進行可疑性分析,大大減少了云平臺的計算負載和數據交互壓力。實驗結果證明,基于使用邊緣計算異常用電檢測網絡模型及所提檢測算法檢測用電異常是有效的。