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