王建元,張少鋒
(現代電力系統仿真控制與綠色電能新技術教育部重點實驗室(東北電力大學),吉林省吉林市 132012)
電能的非技術性損失(non-technical loss,NTL)是指用戶消費電能后,電力公司卻未收到電費的這部分電能[1]。這些損失中,除少部分由電表自身故障產生,大部分是由電力用戶的竊電行為導致的[2]。據統計,中國因竊電造成的損失超過總供電損失的6%[3]。除經濟上的損失以外,NTL 的存在還會干擾電網運行參數的測算,進而危及電力系統運行的可靠性[4-5]。異常用電檢測工作可以找出故障電表和竊電用戶,但早期的檢測方法仍依賴于現場篩查,耗時耗力。智能電表的普及為電力公司收集了大量細粒度的電力負荷數據[6],為基于數據驅動的異常用電檢測提供了數據來源。
按照是否需要數據標簽,可以將電力負荷異常檢測算法分為有監(jiān)督和無監(jiān)督2 類。有監(jiān)督算法通過訓練集學習異常用戶的特征從而獲得辨識異常用戶的能力,如支持向量機[7-8]、神經網絡[9-10]等,其準確度較高,但需要足夠量的含標簽的樣本數據作為支撐。然而,電力負荷數據存在數據類別不平衡的問題,異常用戶比例較小,容易使訓練過程欠擬合[11],最終可能降低檢測結果的準確度。相比之下,無監(jiān)督算法的優(yōu)勢是檢測過程不需要數據標簽,且由于沒有訓練過程,受數據類別不平衡的影響較小。
目前,基于深度學習的無監(jiān)督算法多作為有監(jiān)督檢測算法的輔助算法[9,12],以減少類別不平衡數據對檢測結果的負面影響;基于離群因子的無監(jiān)督算法不適合檢測多種用電模式的電力用戶負荷[13]。而基于聚類的無監(jiān)督算法可以實現異常檢測全過程(不包括模型評估)的無監(jiān)督,并且能夠實現對多類別電力負荷的異常檢測。K均值(K-means)聚類[14]、基于密度的帶有噪聲的空間聚類(density based spatial clustering of applications with noise,DBSCAN)[15]、近鄰傳播聚類[16]、離群聚類[17]等在電力負荷異常檢測中都有不錯的成效。然而,聚類算法用于異常檢測存在的問題是參數選取往往基于經驗[18],而無監(jiān)督算法缺乏異常用戶標簽,無法評估所選參數的優(yōu)劣,故難以獲取最優(yōu)參數。
電力負荷異常檢測模型通常包含特征構造和異常檢測兩大模塊[19-20]。本文電力負荷異常檢測模型流程為:特征構建—維度規(guī)約—聚類—異常檢測。由于不同類型的電力用戶(如城市居民用戶、農村居民用戶、工商業(yè)用戶等)往往具有不同類別的用電模式,因此,檢測模型選用密度峰值(density peaks,DPeaks)聚類算法,使模型可以檢測多種類別的電力用戶。此外,考慮到位置信息(電力用戶的臺區(qū)號、小區(qū)號等)相同的電力用戶往往有著相似的用電模式,且這些信息比較容易獲取,本文在維度規(guī)約中使用線性判別分析(linear discriminant analysis,LDA)方法計及了電力用戶的位置信息。最后,為降低參數的選取難度,設置了電力負荷異常檢測的雙判據。使用本模型對愛爾蘭智能電表數據進行了檢測,驗證了該方法的有效性。
DPeaks 聚 類 算 法 由 Alex Rodriguez 和Alessandro Laio 于2014 年提出[21],是一種基于密度的聚類算法,可以識別任意簇型且聚類過程所需參數較少[22]。對于每一個數據點i,DPeaks 聚類算法需要計算2 個量:點i的局部密度(下文簡寫為密度)ρi和點i與最相鄰的更高密度點的距離(下文簡寫為距離)δi。點i的密度定義為:
密度最高點的距離取兩點之間的最大距離。
基于各個點的密度ρ和距離δ,采用DPeaks 聚類算法繪制出δ-ρ決策圖并將所有點分為3 種類型:密度峰值點(即聚類中心)、正常點和異常點。算法原理見附錄A 圖A1。密度峰值點位于決策圖的右上方,ρ和δ均較大,鄰域內有很多點但沒有比其密度更大的點;正常點位于決策圖的下方,δ較小,鄰域內有比其密度更大的點;異常點位于決策圖左上方,ρ較小且δ較大,鄰域內沒有除自身以外的點存在。算法流程見附錄A。
基于LDA 和DPeaks 聚類算法的無監(jiān)督電力負荷異常檢測模型整體框架如圖1 所示。
圖1 所提模型的整體框架Fig.1 Overall framework of proposed model
特征構造可以挖掘原負荷數據的深層信息,提高異常檢測模型的準確度。本模型基于用戶的日、月用電量數據構造了其形態(tài)、波動性、趨勢性和相關性指標。
2.1.1 形態(tài)指標
1)日、月平均用電量;
2)日、月用電量率,即平均用電量與最大用電量的比值;
3)月用電量峰谷差率[23],即最大最小用電量的差值與最大用電量的比值;
4)每季度用電量占全年用電量的比例。
2.1.2 波動性指標
1)日、月用電量離散系數[24],即日、月用電量標準差與日、月用電量均值的比值;
2)日、月用電量離散系數與行業(yè)日、月用電量離散系數的比值[24](用所有用戶用電量的平均值代表行業(yè)用電量);
3)前后m個月用電量的首尾差值。
2.1.3 趨勢性指標
1)日用電量序列線性擬合的斜率k;
2)月用電量序列的上升趨勢和下降趨勢[13]。
2.1.4 相關性指標每戶日用電量序列與典型日用電量序列(用所有用戶日均值序列表示)的皮爾遜相關系數。
構造的特征數量較多且可能包含相關性強的特征,為方便數據可視并提高算法效率,有必要對特征集降維處理。常用的降維方法有主成分分析(principal component analysis,PCA)和LDA。本文選用LDA 對原特征集降維,LDA 是一種有監(jiān)督方法,即需要已知數據的類別信息。需要特別指出的是,本文模型中LDA 輸入的數據類別信息是電力用戶臺區(qū)標簽,而非異常用戶標簽,因此,本文整個電力負荷異常檢測模型依然是無監(jiān)督模型。利用數據標簽,可以使降維后同一類別的數據更緊湊[25],使聚類算法傾向于將相同臺區(qū)的用戶歸為一類。
為確定新特征的維度,使用累積貢獻率來反映降維數據中所包含的原始數據信息的多少。累積貢獻率通常要達到85%才能較為全面地表達出原始數據信息[26]。需要注意的是,PCA 降維后的維度可以達到原數據的維度,而LDA 降維后的維度最多為標簽類別數減1。單個特征的貢獻率和累積貢獻率的計算公式如下:
式中:εi為第i個特征值的貢獻率;λi為第i個特征值;P為新特征值的總個數;εci為前i個特征值的累積貢獻率。
聚類算法多用于解決分類問題,對于異常檢測問題,有必要明確異常值的判定標準。DPeaks 聚類算法在異常檢測時,往往只設置單個異常值判據[27-28]。本文根據DPeaks 聚類算法原文異常值的識別原理,分別基于δ-ρ決策圖和數據點的實際坐標設置了識別異常值的2 個判據。
位于δ-ρ決策圖左上方的點為異常點,由此給出第1 個異常點的判據。
判據1:如果某個數據點的密度ρi小于基準密度ρ0且距離δi大于基準距離δ0,那么這個點是異常點。各個簇的基準密度和基準距離的計算公式如下:
式中:ρ(c)0、δ(c)0分別為第c個簇的基準密度、基準距離;α、β為經驗常數;N(c)為第c個簇包含的數據點的總個數;M(c)為第c個簇包含的數據點集合。
實際坐標越遠離聚類中心的點越可能是異常點,由此給出第2 個異常點的判據。
判據2:如果某個數據點的密度ρi小于這個點所屬簇的邊界密度ρb,那么這個點是異常點。
本文定義分別屬于不同簇且歐氏距離小于ω倍的dc的2 個點分別為這2 個簇的邊界點(有很多組邊界點)。由邊界點可以求取各個簇的邊界密度ρ(c)b(上標c表示簇號),求取過程如下:
步驟1:令所有簇的邊界密度ρ(c)b的初值為0;
步驟2:將滿足邊界點條件的2 個點的平均密度作為這2 個點所屬簇的邊界密度;
步驟3:重復步驟2 得到所有簇的多個邊界密度;
步驟4:取每個簇中的最大邊界密度作為這個簇最終的ρ(c)b。
參數α、β決定判據1 的嚴格程度,α越小、β越大則模型依據判據1 檢測出的異常值越少;參數ω決定判據2 的嚴格程度,ω越小則模型依據判據2 檢測出的異常值越少。雙判據模型將同時滿足上述2 個單一判據的點判定為異常點。
為方便對檢測結果進行評估,本文給出數據點基于判據1、判據2 的異常概率P1、P2和基于雙判據的異常概率P:
式中:ρmax為所有數據點的最大密度;δmax為所有數據點的最大距離。
異常概率僅在用戶間才有相對意義,只用于計算模型的曲線下方包圍的面積(area under curve,AUC)指標,不作為異常數據的檢出依據。
本質上,電力負荷的異常檢測是一個類別不平衡的二分類問題,不能使用以準確度為依據的評價指標,因為即使分類器將全部用戶識別為正常用戶,也可以獲得較高的評價。電力負荷異常檢測模型的優(yōu)劣常用受試者工作特征(receiver operating characteristic,ROC)的AUC 指標來評價。AUC 的求取需要先獲取二分類器的混淆矩陣。
2.4.1 混淆矩陣
混淆矩陣包含了一個二分類器所有可能的分類結果,如表1 所示。
表1 用于電力負荷異常檢測的混淆矩陣Table 1 Confusion matrix applied in anomaly detection for power load
式中:ATP表示分類器預測為異常實際也是異常的用戶數量;AFN表示分類器預測為正常而實際是異常的用戶數量;R表示正確檢測出的異常數據個數占異常數據總數的比例。召回率R越大,分類器性能越好。
2)精確率P:
式中:AFP表示分類器預測為異常而實際是正常的用戶數量;P表示正確檢測出的異常數據個數占全部檢測出的異常數據個數的比例。精確率P越高則誤檢率越低,分類器性能越好。
2.4.2 ROC 曲線和AUC 指標
根據混淆矩陣可以計算分類器的真陽率(true positive rate,TPR)和假陽率(false positive rate,FPR),分別用于反映檢出率和誤檢率,不同的閾值對應不同的TPR 和FPR 數值。ROC 曲線以FPR為橫軸、TPR 為縱軸,反映了不同閾值下檢出率和誤檢率之間的權衡[29]。
AUC 指標的取值范圍為[0,1],AUC 數值越大,ROC 曲線就越靠近最佳分類點(0,1),分類效果越好。
本文數據使用愛爾蘭智能電表數據集[30],包含6 445 個電力用戶536 d 的用電量數據(單位為kW ?h),采樣頻率為每30 min 一次。存在異常用電行為的用戶已被標出,共計205 戶。異常用戶標簽僅作為模型評估的依據,不在檢測過程中使用。所有用戶來自5 個臺區(qū)(記為1~5 號),臺區(qū)號將作為LDA 方法的類別標簽。
將每個用戶的用電量按天累加,得到536 d 的日用電量數據;為構造能反映長時間跨度下的用電特征,將每30 d 的日用電量數據進行累加,得到18 個月的月用電量數據。數據集中包含一整天用電量為0 的數據點,這在實際中是正常的,但這些數據點會在特征構造時使某些特征值無法求取。本實驗將一天用電量為0 的數據點均修改為0.01,用一個很小的值表示用戶一天內沒有用電的情況。
3.2.1 用戶位置信息對模型性能的影響
LDA-DPeaks 模型的檢測流程見附錄B 圖B1。
由用戶日、月用電量序列構造的18 個特征分別是:平均日、月用電量F1、F2;日、月用電量序列的離散系數F3、F4;日、月用電量率F5、F6;月用電量序列的峰谷差率F7;第1 年前3 個月和第2 年前3 個月的用電量差值F8;用戶日、月用電量離散系數與行業(yè)日、月用電量離散系數的比值F9、F10;第1 年中春夏秋冬4 個季度用電量分別占全年用電量的比例F11~F14;用戶日用電量與典型日用電量的相關系數F15;日用電量序列線性擬合的斜率F16;上升趨勢指標和下降趨勢指標F17和F18。
由于以上特征的數量級不盡相同,為平衡各特征對結果的影響,按式(12)對以上特征進行歸一化處理。
式中:xi、Xi分別為第i個用戶的某特征歸一化前、后的數值;xmin、xmax分別為該特征的最小、最大值。
考慮到特征F11~F14共同表示全年的用電量形態(tài),將它們乘以權重系數0.25。
18 個特征的相關性分析矩陣見附錄C 圖C1,其中,F1與F2、F3與F9、F4與F10完全相關,因此將F2、F9、F10刪去,保留剩下的15 個特征。
分別采用PCA 和LDA 模型(分別代表忽略位置信息和計及位置信息)將15 個用電特征進行降維處理得到若干新特征,所有新特征根據貢獻率依次從大到小排列,表2 截取了貢獻率較高的前8 個新特征。當新特征的個數為3 時,PCA 和LDA 降維方法的累積貢獻率分別為92.80%、99.48%,均能較好地表示原特征的信息。因此,本實驗所取新特征的個數為3。
表2 采用PCA 和LDA 模型所得新特征的貢獻率和累積貢獻率Table 2 Contribution rate and cumulative contribution rate of new features obtained by PCA and LDA models
采用DPeaks 聚類算法對PCA 和LDA 模型得到的新特征數據進行異常檢測,檢測標準均為雙判據。為對比2 類數據的異常檢測效果,調整判據的參數使兩者檢出數量大致相同。PCA 和LDA 模型的α、β、ω參數分別取為0.32、5.0、2.5 和0.35、3.5、38.0。檢測結果如表3 所示,2 種新特征均被DPeaks聚類算法分為3 類,兩者的異常用戶檢出總數大致相同,但每一類異常用戶數相差較大。檢測結果見附錄D 圖D1、圖D2。
表3 PCA 和LDA 模型的檢測結果Table 3 Detection results of PCA and LDA models
一個簇的聚類中心可以表示簇內所有樣本的總體特征[31],因此,將各類別聚類中心用戶的用電量曲線作為對應類別的典型用電量曲線。調取PCA和LDA 模型所確定的聚類中心用戶的日用電量數據,如圖2 所示。PCA 模型確定的第2、3 類別用戶的典型日用電量曲線在大部分時間內相互交叉,不利于聚類算法的分簇;LDA 模型的相應曲線大部分時間不存在交叉,2 類用戶的類別屬性較為明確,有利于聚類算法的分簇。
圖2 不同類別典型用戶的用電量曲線Fig.2 Electricity consumption curves of different types of typical users
調用數據集的異常用戶標簽信息,將檢測結果與實際異常用戶進行對比,見附錄D 圖D3、圖D4??梢钥闯?,LDA 模型比PCA 模型的檢出率更高,誤檢率更低。
在不考慮模型計算速度和可視化的情況下,增加一組PCA 模型取前6 個新特征(PCA 取前6 維和LDA 取前3 維的累積貢獻率非常接近)的對比實驗,以消除2 種降維方法對原數據的還原程度差異對實驗結果的干擾。3 種模型的ROC 曲線如圖3 所示(圖中括號內的3D、6D 分別表示3 維、6 維),可見LDA 模型具有更高的AUC 指標。
圖3 3 種模型的ROC 曲線Fig.3 ROC curves of three models
為消除不同降維方法對實驗結果的影響,增加一組以PCA-DPeaks 模型的聚類結果為標簽的LDA-DPeaks 模型的實驗,表示不考慮位置信息的情況;為測試位置信息對其他聚類算法的影響,增加了3 組DBSCAN 聚類算法的對比實驗(DBSCAN算法的ε參數為鄰域距離,T參數為ε鄰域內所包含的數據點個數的閾值,若某個數據點ε鄰域內點的個數小于T,則被DBSCAN 算法識別為異常點)。各模型評價指標如表4 所示??梢园l(fā)現,考慮用戶的位置信息后,DPeaks 和DBSCAN 兩種算法的異常用戶檢出率和精確度都有不同程度的提升。
表4 LDA 和PCA 模型性能對比Table 4 Performance comparison between LDA and PCA models
綜上所述,考慮用戶位置信息的DPeaks 聚類模型可以減少聚類過程中不同類別用戶之間的相互干擾,有利于提高模型的檢出率和精確度。
3.2.2 參數對模型性能的影響
分別采用基于判據1、判據2 的LDA 模型進行用電量數據異常檢測。在決策圖中選取了3 個聚類中心,如附錄E 圖E1 所示。將檢測結果按不同類別分別在決策圖和實際坐標上標出,2 個單一判據同時檢測出的用戶為雙判據的檢測結果,如圖4所示。
圖4 不同判據下模型的檢測結果Fig.4 Detection results of models with different criteria
可以看出,判據1 可以準確識別出決策圖基準線左上方的異常用戶(圖4(a)、(b)、(c)),在決策圖上表現良好;而在實際坐標上,判據1 檢測第2 類用戶時會將靠近簇中心的正常用戶誤認為異常(圖4(e))。判據2 識別出的異常用戶大多是用戶所屬簇邊緣的點(圖4(d)、(e)、(f)),說明判據2 在實際坐標上的表現較好;而對于決策圖左上方的異常點,判據2 表現不佳,在檢測第1、2 類用戶時誤檢率較高(圖4(a)、(b)),在檢測第3 類用戶時(圖4(c))檢出率較低。也就是說,2 個單一判據各有利弊。雙判據識別出的異常用戶為圖4 中2 個單一判據同時標記的用戶,兼具2 個單一判據的優(yōu)勢。
將檢測為異常用戶的異常概率記為1,其余按式(7)—式(9)計算。各判據下模型的基準參數α0、β0、ω0均設為0.35、3.5、38.0,評估指標如表5 所示,3 種判據的AUC 指標均大于0.9,說明3 個判據下模型的異常檢測效果都較好。雙判據的召回率略低于單個判據,但其精確度遠高于單個判據,結合其AUC 指標說明:雙判據模型的整體性能優(yōu)于單個判據模型。
表5 基于不同判據的LDA 模型性能對比Table 5 Comparison of LDA model performance based on different criteria
在α0、β0、ω0的基礎上,改變其中一個參數,保持另外2 個參數不變,計算不同參數下模型的AUC 指標。如圖5 所示,不合理的β、ω參數分別會導致判據1 模型、判據2 模型的AUC 遠低于最佳值,α參數對判據1 模型的AUC 也有輕微影響;但3 個參數的變動對雙判據模型的AUC 影響均很小。
圖5 各參數對不同判據模型性能的影響Fig.5 Influence of various parameters on performance of models with different criteria
綜上所述,雙異常值判據的設置使檢測結果受參數變化的影響變小,增大了各參數的合理值區(qū)間,降低了參數的選取難度(仍需參考經驗)。此外,雙判據模型異常檢測的綜合性能也優(yōu)于單判據模型。
本文提出了一種考慮用戶位置信息的無監(jiān)督異常用電檢測模型。模型基于聚類算法,可以檢測多類別的電力用戶;使用LDA 計及了用戶的臺區(qū)信息,使檢測出的異常用戶更全面、準確;針對不合理參數對模型檢測效果的不利影響,設置異常檢測的雙判據標準,增加了參數的合理取值范圍。
本文所提模型的局限性是DPeaks 聚類算法計算復雜度較高(為O(n2)),面對海量負荷數據,計算時間可能過長。后續(xù)將針對算法計算效率問題進行改進。
附錄見本刊網絡版(http://www.aeps-info.com/aeps/ch/index.aspx),掃英文摘要后二維碼可以閱讀網絡全文。