武亞光,張才俊,程飛飛
(國家電網有限公司客戶服務中心,天津 300309)
隨著各種現代化技術不斷滲透到人們的工作、學習和生活中,對電力能源的需求也隨之不斷增加,因此電力消耗量不斷增加[1]。電力由電力公司提供,通過收取電費來維持公司運營。電費的收取一般以家庭、單位、團體或者組織等為單位進行收費,因此客戶量十分龐大,這使得客戶管理工作量十分龐大。在客戶管理中,發現用電異常行為是最難的部分。用戶在使用電力時,會通過電表記錄下來,以此來作為收費標準,然而部分用戶為了一時貪念,隨意搭接線路、篡改電表等,進行電力竊取。這種異常用電行為屬于犯罪行為,且隨著高科技的更新,異常用電更難以發現[2]。
基于上述背景,關于用電異常行為檢測研究有很多,如嚴勤等人[3]以采集到的用電量數據為基礎,提取其時序特征,將特征輸入到深度循環神經網絡當中進行分類檢測,尋找存在異常行為的用戶。鄭思達等人[4]在其研究中從智能電表中采集數據,然后提取四個特征指標,將提取到的特征構成數據集,基于聚類技術計算樣本之間的相似性,以此區分異常和正常。冉哲等人[5]在其研究中采集用戶用電數據,然后利用RFE 算法提取用電特征,得到五個代表性特征,利用CatBoost 模型進行分類識別,完成異常用電檢測。
前人研究面對一些表現不明顯的小用戶竊電行為檢測結果差強人意,因此提出基于FP-growth 算法的多尺度用電異常行為檢測。通過該研究以期提高小用戶異常用電行為排查準確性,保證用電可靠性。
隨著各種竊電技術的層出不窮,異常用電行為更加難以察覺和發現,尤其是單個居民用戶竊電規模不大,且不是持續竊電,很難檢查出用電數據異常[6]。針對上述問題,提出一種基于FP-growth 算法的多尺度用電異常行為檢測方法,該方法利用FP-growth 算法挖掘異常用電行為與特征之間的關聯規則,通過計算二者之間的支持度和置信度來判斷竊電行為是否發生。
對用戶用電異常行為檢測的實質是一個數據挖掘過程,而數據挖掘的前提是有大量的樣本數據[7]。基于此,用電數據采集至關重要,具體過程如下:
步驟1:遠程采集檢測中心發布采集任務;
步驟2:HTTP 服務器對用電數據采集任務進行解析;
步驟3:將解析結果存入數據庫;
步驟4:返回入庫結構給HTTP 服務器,并轉發給監控中心;
步驟5:遍歷數據庫,獲取滿足條件的采集任務;
步驟6:將任務進行分解,得到若干子任務,并將其存入數據庫;
步驟7:輪詢數據庫,獲取需要執行的子任務;
步驟8:通過消息總線轉發給協議棧;
步驟9:解析消息并轉發給協議模塊;
步驟10:組成相應報文,并發送給集中器;
步驟11:集中器獲取用電數據;
步驟12:轉化集中器上報的數據報文為JSON 格式的執行結果;
步驟13:通過消息總線將結果發送給任務執行模塊;
步驟14:在任務執行模塊當中將結果轉換為DB文件;
步驟15:將DB 文件反饋給檢測中心。
上述步驟為采集器采集用電數據的具體流程,為后續異常檢測提供可利用和可挖掘的基礎數據[8]。
基于上述采集到的用電數據,進行預處理,以提高數據質量。
1)缺失數據填補
采集到的用電數據中難以避免地會出現部分缺失的情況,若是該數據是關鍵數據,一旦缺失將直接影響異常檢測的準確性[9]。面對這一情況,通過下述插值公式進行填補:
式中,Xi代表缺失的用電數據;Xj代表樣本中第j個數據;n代表樣本中數據數量。
2)數據標準化
數據標準化的作用是方便不同量綱數據之間可以進行同一運算而進行的處理[10]。計算公式如下:
最后的異常行為檢測與識別是以用戶用電數據特征作為輸入的,因此選取的特征越具有代表性,檢測結果越準確[11]。基于此,進行多尺度特征選取研究,具體過程如下:
步驟1:列舉所有用電數據特征,包括用電量標準差、負荷、線損、用電模式、不平衡率等,具體如表1所示[12];

表1 用電數據特征表
步驟2:對指標進行向量化;
步驟3:計算每個特征向量的重要性指數,計算公式如下:
式中,Pi代表第i個特征向量的重要性指數;wi代表權重;Si代表第i個特征向量;m代表特征向量數量,在這里取值m=14;
步驟4:按照重要性指數從大到小的順序進行特征向量排序;
步驟5:選取重要性指數排名前K的特征向量組成新的特征集合;
步驟6:按照下述公式計算特征集合中每個特征的貢獻率,計算公式如下:
式中,Ri代表第i個特征向量的貢獻率;Qi代表i個特征向量的排名;K代表特征集合中特征向量的數量。
步驟7:根據貢獻率選取大于1.0 的特征向量作為最優特征指標[13]。
基于上述過程完成多尺度特征選取工作,為后續研究奠定基礎。
將上一節選出的特征參量作為基礎,利用FP-growth 算法挖掘關聯規則,實現用電異常行為檢測[14]。
FP-growth 算法中涉及兩個關鍵概念,即支持度和置信度。
1)支持度
支持度是指項集A和項集B同時出現的概率[15]。計算公式如下:
式中,Support(A?B)代表支持度;Num(A?B)代表A和B同時出現的次數;Num(Z)代表總事務集中事務數量。
2)置信度
置信度是指同時包含A和B的事務占包含A的事務的比例[16]。計算公式如下:
式中,Confidence(A|B)代表置信度;Num(A) 代表包含A的事務數量。
基于FP-growth 算法進行關聯多尺度用電異常行為檢測,具體過程如下:
步驟1:掃描事務數據庫Z;
步驟2:設置最小支持度閾值,記為φ為最小置信度閾值;
步驟3:從Z中挖掘滿足條件的頻繁項集,具體過程如下:
1)按照式(5)計算Z中每個項的支持度Support(A?B);
2)判斷Support(A?B)是否不小于φ?若是,將該項加入頻繁項集;否則,刪除該項;
步驟4:再次掃描事務數據庫,生成項頭表。
1)按照式(6)計算Z中每個項的置信度;
2)判斷每個項的置信度是否不小于φ。若大于,將該項加入項頭集;否則,刪除該項;
3)按照置信度大小進行降序排列,生成項頭表。步驟5:構造FP-tree 結構。
1)創建根節點;
2)遍歷頻繁項集中的每項事務;
3)把每項事務一一映射到FP-tree 結構中。
步驟6:構造條件FP-tree;
步驟7:基于條件遞歸挖掘,產生頻繁項集;
步驟8:從頻繁項集中產生關聯規則,即挖掘特征與用電行為之間的關聯規則。
基于以上分析可知,基于關聯規則實現用電異常行為檢測,即當特征與用電行為之間的支持度大于1 時,則認為存在用電異常。
以基于深度循環神經網絡的檢測方法、基于模糊聚類的檢測方法以及基于RFE+CatBoost 的檢測方法為對比項,進行用電異常行為檢測分析與測試。
該測試中所使用的樣本來自愛爾蘭社會科學數據檔案館,該樣本分布情況如圖1 所示。

圖1 樣本分布圖
檢測方法的評價指標為F1 指標,計算公式如下:
式中,P代表查準率;R代表查全率,其余指標來自混淆矩陣,如表2 所示。

表2 混淆矩陣
相同測試條件下,利用所研究方法、基于深度循環神經網絡的檢測方法、基于模糊聚類的檢測方法以及基于RFE+CatBoost 的檢測方法進行用電異常行為檢測,根據檢測結果計算F1 值,結果如圖2 所示。

圖2 方法異常檢測結果
從圖2 可以看出,該文方法的F1 值大于基于深度循環神經網絡的檢測方法、基于模糊聚類的檢測方法以及基于RFE+CatBoost 的檢測方法檢測結果的F1 值,說明該方法的檢測更為準確。
該文研究了基于FP-growth 算法的多尺度用電異常行為檢測方法,通過測試證明了該研究方法的檢測準確性,即F1 值更大。后續工作中,在測試環節需要進一步將方法應用到實際當中,以測試方法的實際應用性。