梁 捷,梁廣明,黃水蓮
(1.廣西電網(wǎng)有限責任公司,南寧 530023;2.南寧百會藥業(yè)集團有限公司,南寧 530003)
在電力系統(tǒng)中,配電網(wǎng)的線損可分為技術線損和管理線損,其中管理線損是指除去變壓器等電力系統(tǒng)部件的功耗后無法用技術解釋的部分[1]。產(chǎn)生管理線損的原因多數(shù)與竊電有關。竊電是通過各種手段減少或消除電力用戶的電表讀數(shù),以達到少計或不計電費目的的一種非法行為[2]。它不僅對電網(wǎng)公司造成經(jīng)濟損失,而且可能會影響電網(wǎng)的供電質(zhì)量和安全穩(wěn)定運行。為了提高電網(wǎng)公司對竊電行為的現(xiàn)場稽查效率、規(guī)范用戶用電行為,采用信息化、智能化的手段提高竊電行為的識別能力受到日益關注。
傳統(tǒng)的竊電識別方法是通過人員現(xiàn)場稽查的方式對可疑用戶進行排查,人力成本高且效率低下。隨著智能電網(wǎng)的發(fā)展,計量自動化系統(tǒng)采集了大量高時間密度的電力用戶用電數(shù)據(jù),使開展基于數(shù)據(jù)驅(qū)動的用電異常診斷、準確識別用電異常用戶成為可能[3]。隨著電力計量的高級計量架構(advanced metering infrastructure, AMI)體系的快速發(fā)展,使利用電能表的大數(shù)據(jù)進行竊電識別成為更加高效的識別途徑[4]。
文獻[5]對沒有歷史竊電標記的用戶數(shù)據(jù),采用基于聚類的機器學習方法對竊電行為進行識別,通過分析用戶之間的用電關系查找離群點,以此作為依據(jù)對竊電行為進行識別,但該方法無法達到較高的識別準確度。文獻[6]對有歷史竊電標記的用戶數(shù)據(jù),采用boost方法進行竊電識別,該方法是一種可擴展的提升樹模型,基本原理是根據(jù)一定的特征屬性設置分割點對輸入的離散或連續(xù)樣本進行逐步劃分,然后根據(jù)分割增益對劃分結(jié)果進行各方面逐步調(diào)整,即模型的學習過程,最后得到一個樹形的分類結(jié)果,其擴展性體現(xiàn)在可將各單一學習器提升為強學習器,以實現(xiàn)準確的分類及識別效果。然而該方法內(nèi)存空間消耗較大,而且遍歷分割點時,需進行分割增益的計算,故時間消耗大。此外,若數(shù)據(jù)集中包含數(shù)據(jù)缺失等噪聲,則識別效果不理想。
對此,提出一種以決策樹為基學習器的輕量級提升決策樹方法,并采用Histogram算法、按葉生長策略等對算法進行改進,最后通過廣西電網(wǎng)的實際數(shù)據(jù)分別對該方法的識別準確性和效率進行驗證。
輕量級提升決策樹算法由Boosting算法發(fā)展而來,采用分布式的分級推進決策樹算法架構,支持高效率并行訓練,具有訓練速度快、內(nèi)存消耗低和準確度高等特點。Boosting算法數(shù)據(jù)處理時需把特征的所有取值進行排序,內(nèi)存空間消耗巨大,而且遍歷分割點時,需進行分割增益的計算,時間消耗大。輕量級提升決策樹算法針對有歷史竊電標記的用戶數(shù)據(jù),通過基于直方圖的決策樹算法、帶縱向生長程度限制的按葉生長策略、基于梯度的單邊采樣算法對Boosting算法進行改進。
Histogram算法的基本思想是先把連續(xù)的浮點特征值離散化成k個整數(shù),同時構造一個寬度為k的直方圖,其原理如圖1所示。在遍歷數(shù)據(jù)時,將離散化后的值作為索引在直方圖中累積統(tǒng)計量,在遍歷一次數(shù)據(jù)后,直方圖累積了需要的統(tǒng)計量,然后根據(jù)直方圖的離散值,遍歷尋找最優(yōu)的分割點。該方法不需要額外存儲預排序結(jié)果,而且可以只保存特征離散化后的值,內(nèi)存消耗較小。

圖1 Histogram算法原理Fig.1 Principle of Histogram algorithm
傳統(tǒng)Boosting算法中,決策樹使用按層生長策略,即同一層的葉子節(jié)點生長時,每次都一起分裂,但實際上一些葉子節(jié)點的分裂增益較低,這樣分裂會增加巨大的開銷,如圖2所示。

圖2 按層生長策略Fig.2 Growth strategy by layer
輕量級提升決策樹使用按葉生長策略,如圖3所示。每次在當前葉子節(jié)點中,尋找出分裂增益最大的葉子節(jié)點進行分裂,而其他結(jié)點不再分裂,這樣可提高精度,但可能會長出較深的決策樹,產(chǎn)生過擬合現(xiàn)象。因此,該文通過參數(shù)設置對該策略的最大生長深度進行限制,以控制模型的復雜度,防止過擬合風險。

圖3 按葉生長策略Fig.3 Growth strategy by leaf
單邊梯度采樣算法通過對樣本采樣的方法減少計算分裂增益目標函數(shù)時的復雜度。梯度更大的樣本數(shù)據(jù)點在計算分割增益時有更重要的作用,當對樣本進行下一輪采樣時,保留梯度較大的樣本點,并隨機去除梯度較小的樣本點。具體做法是:首先把樣本按照梯度排序,選出梯度較大的a個樣本,然后在剩下的小梯度數(shù)據(jù)中隨機選取b個樣本。為保持樣本規(guī)模不變,在計算分割增益時,將選出來的b個小梯度樣本的分割增益擴大(1-a/b)倍。
電能表采集的用戶用電原始數(shù)據(jù)可能會含有一些偏離用電曲線較遠的異常數(shù)據(jù)或空缺數(shù)據(jù),故需對空缺數(shù)據(jù)進行填補。采用Newton插值法對空缺值進行處理,該方法通過建立差商,實現(xiàn)多個存在時序關系的插值節(jié)點的快速計算。已知n個數(shù)據(jù)點(x1,y1),(x2,y2),…,(xn,yn)的各階差商計算式如式(1)~(4):
(1)
(2)
(3)
……
f[xn,xn-1,…,x1,x]=
(4)
聯(lián)立式(1)~(4)建立極差多項式f(x),如式(5):
f(x)=f(x1)+(x-x1)f[x2,x1]+(x-x1)(x-x2)f[x3,x2,x1]+
(x-x1)(x-x2)(x-x3)f[x4,x3,x2,x1]+…+(x-x1)(x-x2)…(x-xn-2)
f[xn-1,xn-2,…,x2,x1]+(x-x1)(x-x2)…(x-xn-1)f[xn,xn-1,…,x2,x1]=P(x)+R(x)
(5)
式中:R(x)為截斷誤差;P(x)為Newton插值逼近函數(shù)。將缺失點x代入f(x)可求得缺失值。
此外,對原始數(shù)據(jù)中用戶i的用電數(shù)據(jù)Xi={x1,…,xi}中的異常數(shù)據(jù),根據(jù)由切比雪夫不等式推導所得的統(tǒng)計學3σ定律,在非正態(tài)分布的情形下,測量值的分布范圍在±3個標準差的范圍內(nèi)的概率不少于88.8%。故據(jù)此對離群值進行修復,修復后的值為G(xi)。
(6)
式中:σ(Xi)表示Xi的標準差。
由于用戶異常用電的表現(xiàn)和特征復雜多樣,不能使用簡單的算法一次識別出所有的異常用電用戶,故采用第1節(jié)所提的決策樹算法和BP神經(jīng)網(wǎng)絡建立雙層識別模型。
1)建立特征庫
根據(jù)專家經(jīng)驗和實際應用需求,從采集到的各種異常用電現(xiàn)象及其引起的可量化特征量中選擇典型特征,提取出若干用電特征指標和特征曲線,建立異常用電專家特征庫。
2)特征分割
對月用電量曲線等連續(xù)浮點型的特征值,根據(jù)第1節(jié)Histogram法將其離散化并與其他離散特征一起構造直方圖。接著,根據(jù)直方圖的離散值構建決策樹,并通過按葉生長策略,以異常用電特征指標或特征曲線的匹配度指標作為分裂增益目標函數(shù),對每個子節(jié)點進行分裂,直到不能分裂為止,再遍歷各葉節(jié)點尋找最優(yōu)的特征分割點,將原始數(shù)據(jù)按不同的特征進行多維度分割,形成若干多維度特征集合。葉節(jié)點分裂過程中,通過單邊梯度采樣算法減少計算分裂增益目標函數(shù)時的復雜度。
3)提取特征識別結(jié)果
在步驟2確定的多維度特征集合基礎上,根據(jù)專家經(jīng)驗和應用需要構建提取策略,建立基于BP神經(jīng)網(wǎng)絡的識別結(jié)果提取模型,綜合考慮多維度特征,提取一定量指標值突出的用戶數(shù)據(jù)作為識別結(jié)果。基于文獻[7],由于BP神經(jīng)網(wǎng)絡是由各層以權重向量為計算核心的神經(jīng)元節(jié)點組成,其權重參數(shù)用于在指定的輸入量下調(diào)節(jié)網(wǎng)絡的輸出量,對最終的特征提取結(jié)果有重要影響。而神經(jīng)網(wǎng)絡初始化時的節(jié)點權重參數(shù)初始值是隨機獲得的,根據(jù)該初始參數(shù)通常并不會得到預想的輸出,即與特征庫匹配且滿足應用需求的樣本分類結(jié)果。為便于優(yōu)化算法的實現(xiàn),理想的輸出數(shù)值通常表現(xiàn)為使神經(jīng)網(wǎng)絡的傳遞函數(shù)最小化。故神經(jīng)網(wǎng)絡訓練的過程就是通過輸入大量訓練樣本,經(jīng)過神經(jīng)網(wǎng)絡逐層傳遞根據(jù)傳遞函數(shù)計算輸出值,再將其與預期值比較,計算其偏差,然后依據(jù)梯度下降等數(shù)值步進算法,在每一次迭代更新該權重參數(shù),逐步減小神經(jīng)網(wǎng)絡輸出和輸入數(shù)據(jù)之間的偏差。
算法完成用戶分類后,還需要對識別方法的準確性進行評價。為了衡量方法的優(yōu)劣,首先定義表1所示的混淆矩陣。
如表1,該矩陣將所有被識別用戶按照其實際歸屬和檢測結(jié)果歸屬分為TP(ture positive)、FN(false negative)、FP(false positive)和TN(ture negative)四類,TP和TN為模型識別后正確分類的部分,其比例越高,說明識別效果越好。定義命中率(true positive rate,TPR)和誤檢率(false positive rate,F(xiàn)PR),分別如式(7)、式(8)所示。

表1 竊電行為識別中的混淆矩陣Table 1 Confusion matrix in identification of stealing electricity
(7)
(8)
由式(7)和式(8)可知,TPR越接近1,F(xiàn)PR越接近0,說明識別效果越好。通過表3的混淆矩陣定義準確率(accuracy,ACC),如式(9)所示。
(9)
式中:ACC表示基于混淆矩陣的準確率。其值越高,則識別效果越好。
為了對竊電識別算法的效果進行進一步評價,引入受試者工作特性(receiver operating characteristic,ROC)曲線[8]。ROC曲線是用多個測試樣本對同一個訓練好的識別模型進行多次識別后,以模型的誤檢率為橫坐標、命中率為縱坐標,將測試結(jié)果繪制而成的一條曲線。曲線的位置越靠近坐標軸左上,意味著在同樣的識別命中率下造成的誤檢率越低,識別效果越好。定義AUC(area under ROC curve)為ROC曲線下部分與坐標軸及邊界所圍成的面積,其數(shù)值的大小一定程度上反應了模型的綜合能力。
圖4為基于輕量級提升決策樹法對竊電行為識別的主要流程。首先,從AMI系統(tǒng)中獲取用戶檔案和用電數(shù)據(jù),進行數(shù)據(jù)預處理,并根據(jù)營銷稽查人員的實際業(yè)務需求生成訓練和驗證數(shù)據(jù)集,并配置模型參數(shù);然后,根據(jù)專家經(jīng)驗和數(shù)據(jù)源情況,從各種異常用電現(xiàn)象以及在由各種異常用電行為引起的可量化特征量中選擇典型特征,如用電量最值、月同比或環(huán)比偏差、平均值以及歷史異常值個數(shù)等,建立異常用電專家特征庫;接著,基于2.2節(jié)方法,對包含多個典型特征的訓練集進行基于輕量級提升決策樹的多維度特征分割,并輸入訓練樣本對識別提取模型進行訓練;最后,用訓練好的模型對驗證數(shù)據(jù)集進行竊電行為識別,輸出疑似竊電用戶并進行所建立模型的識別效果評價。

圖4 竊電行為識別流程圖Fig.4 Flow chart of stealing electricity behavior identification
為了驗證所提算法的有效性,測試數(shù)據(jù)采用廣西電網(wǎng)某網(wǎng)區(qū)用戶歷史用電數(shù)據(jù)集,該數(shù)據(jù)集包含從2017年1月至2018年10月,約90周30 832個用戶每天的用電量。該數(shù)據(jù)集中已標記出正常用戶和歷史竊電用戶,其中竊電用戶大約占比7.89%,竊電用戶的竊電標記為1,正常或不確定用戶標記為0。對該測試數(shù)據(jù)集根據(jù)測試需求建立訓練集和驗證集,在數(shù)據(jù)集中按比例選取訓練集和驗證集,分別用于訓練模型和模型效果評價。
為了對測試數(shù)據(jù)集進行深入觀察,選取某正常用戶和竊電用戶,分別繪制其在50日內(nèi)的日和周用電量曲線,如圖5和圖6所示。

圖5 正常用戶用電量曲線Fig.5 Power consumption curve of normal users

圖6 竊電用戶用電量曲線Fig.6 Power consumption curve of power stealing users
對圖5(a)和圖6(a), 僅通過觀察以日為單位的用電量曲線難以發(fā)現(xiàn)正常用戶和竊電用戶的用電規(guī)律,但從圖5(b)和圖6(b)中以周為單位的日用電量可觀察到正常用戶日用電量曲線形狀類似,一周的用電峰值通常在周三, 規(guī)律性較明顯。 而竊電用戶隨著時間變化,用電量在周末(周六和周日)呈下降趨勢,周電量曲線數(shù)據(jù)規(guī)律性較弱,且存在負荷曲線離群異常點等用電異常特征。
但通過觀察圖5和圖6仍然無法量化竊電和正常用戶的區(qū)別。為此,進行相關系數(shù)矩陣進行分析,結(jié)果如圖7,其中圖7(a)和圖7(b)分別為正常和竊電用戶的相關系數(shù)矩陣。由圖可見,正常用戶的相關系數(shù)大多數(shù)為正,即各周之間的電量曲線變化趨勢為正相關,而竊電用戶相反,其相關系數(shù)大多數(shù)為負。

圖7 兩種用戶的相關系數(shù)矩陣Fig.7 Correlation coefficient matrix of two users
為了驗證所提算法的有效性,將該方法與FCM聚類[9]和局部異常因子(簡稱LOF)[10]兩種識別方法進行比較和驗證。對測試數(shù)據(jù)集總體樣本,隨機選取50%、60%以及70%作為訓練集(對應50%、40%以及30%數(shù)據(jù)作為驗證集),并進行三組試驗,表2為測試結(jié)果。由表2可見,輕量級提升決策樹竊電識別方法的命中率TPR,準確率ACC和AUC指標較高,誤檢率FPR較低。綜合可見,在該測試數(shù)據(jù)集下所提方法的各項識別評價指標均優(yōu)于其他兩種方法。

表2 不同竊電識別方法的測試結(jié)果Table 2 Test results of different power theft identification methods
為了進一步對此文竊電識別方法的有效性進行驗證,在訓練集比例為60%的情況下,采用ROC曲線展示上述三種方法的測試結(jié)果,如圖8。由圖8可知,所提方法ROC曲線包圍的下平面的面積較大,說明所提方法的AUC指標優(yōu)于其他兩種方法。

圖8 不同方法的ROC曲線Fig.8 ROC curves of different methods
為了對所提方法的實時性進行驗證,在訓練集比例為60%的情況下,對不同方法的模型訓練時間進行比較,結(jié)果如圖9所示。

圖9 三種方法識別模型訓練用時Fig.9 Three methods to identify the training time of model
由圖可見,所提方法的訓練時間為9.069 s,計算效率高于其他兩種方法。這是由于所提方法在特征分割過程中通過直方圖離散化原始數(shù)據(jù)得到時間序列數(shù)據(jù),以此作為索引在直方圖中累積統(tǒng)計量,內(nèi)存占用率較低,有利于提高計算效率。此外,所提方法對識別模型的訓練方式與其他兩種方法不同,它采用按葉生長方式,支持并行算法集成,而其他兩種方法采用串行方式,測試結(jié)果體現(xiàn)出所提方法多線程并行計算的速度優(yōu)勢。
提出了基于輕量級提升決策樹算法的竊電行為識別方法,通過廣西電網(wǎng)某網(wǎng)區(qū)實際數(shù)據(jù)對所提方法進行實例驗證,結(jié)果表明,相比于其他兩種學習方法,所提方法采用深度限制的按葉生長策略算法可以在保證計算效率的同時防止過擬合,降低算法的識別誤差。該方法的應用有助于提高電網(wǎng)公司的用電稽查效率,為電網(wǎng)公司在對用戶非法竊電行為進行現(xiàn)場稽查取證時提供有效依據(jù)和可靠目標。隨著計量自動化系統(tǒng)的發(fā)展和電力AMI體系的完善,電能表可采集的用戶數(shù)據(jù)將更加豐富。利用多源數(shù)據(jù)融合方式提高竊電行為識別準確率與識別效率,值得進一步研究。