楊婧, 宋強(qiáng), 石云輝
(貴州電網(wǎng)有限責(zé)任公司, 貴州, 貴陽 550000)
電力行業(yè)在我國的經(jīng)濟(jì)地位中處于重要地位,而長期存在的竊電現(xiàn)象對國家與電力公司的經(jīng)濟(jì)利益有著巨大的損害,很多非法用戶更改電能表的線路和結(jié)構(gòu),更換電能計(jì)量表的零件,導(dǎo)致電表計(jì)量異常無法準(zhǔn)確計(jì)數(shù),以此減少電力計(jì)量表中電力的能耗數(shù)值。這樣對電能表的改造是十分危險(xiǎn)的,易引發(fā)電力安全事故,對周邊其他居民用戶的生命安全造成了巨大的威脅。因此,需要通過一定的方法檢測電力能耗中的異常值,使非法竊電用戶無法使用惡意手段竊取電力資源。
在現(xiàn)有的相關(guān)研究中,文獻(xiàn)[1]在雙向長短期記憶神經(jīng)網(wǎng)絡(luò)的配電網(wǎng)監(jiān)督下,建立了基于時序的預(yù)測模型,得到了數(shù)序數(shù)據(jù)的雙向特性,在配電網(wǎng)電壓數(shù)據(jù)中提取預(yù)測值檢測電壓的異常數(shù)據(jù),但該方法所得到的預(yù)測值普遍偏高,結(jié)果準(zhǔn)確性較差。文獻(xiàn)[2]檢測了加時窗數(shù)據(jù),探查電力能耗異常數(shù)據(jù),提高檢測結(jié)果的準(zhǔn)確性,設(shè)計(jì)了新的電力數(shù)據(jù)檢測方法,在不同的序列時窗中使用大數(shù)據(jù)分析技術(shù),計(jì)算電力能耗數(shù)據(jù)運(yùn)行的均值,將最大似然估計(jì)作為對異常情況的檢測流程。文獻(xiàn)[3]改進(jìn)了傳統(tǒng)的k-means算法,在初始聚類中心建立一個密集度較大的緊鄰半徑,并將中心的數(shù)據(jù)點(diǎn)全部結(jié)合在實(shí)際簇的節(jié)點(diǎn)中,通過更好的聚類效果檢測電力能耗的異常數(shù)據(jù),并對電力能耗進(jìn)行預(yù)測。但這兩種方法的電力能耗異常檢測準(zhǔn)確性較差。為提高電力異常數(shù)據(jù)檢測結(jié)果以及預(yù)測結(jié)果的準(zhǔn)確性,本文設(shè)計(jì)基于機(jī)器學(xué)習(xí)的檢測與預(yù)測方法,以保證結(jié)果有效。
電力能耗數(shù)據(jù)的清洗在異常檢測中是十分重要的步驟,有一些電力能耗數(shù)據(jù)由于各種原因存在較大的錯誤,如果不將其清理干凈,會影響到后續(xù)數(shù)據(jù)異常檢測結(jié)果的準(zhǔn)確性。在清洗數(shù)據(jù)時,需要注意能耗數(shù)據(jù)中的錯誤、重復(fù)的數(shù)據(jù)以及邏輯不通順的數(shù)據(jù),將錯誤數(shù)據(jù)修正,將重復(fù)數(shù)據(jù)刪除,統(tǒng)一數(shù)據(jù)的規(guī)格,修正數(shù)據(jù)中心錯誤的邏輯,并對數(shù)據(jù)進(jìn)行壓縮處理[4]。其中電力能耗數(shù)據(jù)通常是時間序列的排序方式,一旦被刪除、修正、統(tǒng)一,就會導(dǎo)致數(shù)據(jù)節(jié)點(diǎn)出現(xiàn)向前或向后的位移,數(shù)據(jù)改動的越多,位移的幅度就越大。因此,若一個時間序列中需要被修正的數(shù)據(jù)超出20%,則直接刪除該序列,以免因數(shù)據(jù)缺失過多導(dǎo)致數(shù)據(jù)準(zhǔn)確性變差[5-6]。而需要被修正的數(shù)據(jù)少于20%時,則補(bǔ)全缺失值,通過補(bǔ)差均值、補(bǔ)差眾數(shù)等方式,將一部分缺失的數(shù)據(jù)填充到時間序列中,此時的填充公式為
(1)
式(1)中,di表示被補(bǔ)充在該時間序列中的數(shù)據(jù),da和db分別表示數(shù)據(jù)缺失部位的前端數(shù)據(jù)和后端數(shù)據(jù),Nd表示用電數(shù)據(jù)中缺失段的時間序列[7]。補(bǔ)全缺失的數(shù)據(jù)后,該段時間序列的數(shù)據(jù)才可以被稱為清洗結(jié)束。
在提取電力能耗數(shù)據(jù)前,有很多數(shù)據(jù)的格式不統(tǒng)一,且其中一些數(shù)值較大的數(shù)據(jù)在屬性方面極大地削弱了數(shù)值較小數(shù)據(jù)的影響,導(dǎo)致數(shù)據(jù)無法完成特征計(jì)算,因此需要將其標(biāo)準(zhǔn)化,按照一定的方式縮放[8-9]。經(jīng)過一定的預(yù)處理后,數(shù)據(jù)的大小就會保持在一定的區(qū)間之內(nèi),通過計(jì)算二值化特征的方式,將數(shù)據(jù)轉(zhuǎn)化成0與1的形式,以便之后的數(shù)據(jù)提取,此時可以通過式(2)計(jì)算被轉(zhuǎn)換后的數(shù)據(jù)。

(2)
式(2)中,xi表示經(jīng)過數(shù)據(jù)轉(zhuǎn)換的數(shù)據(jù)形式,通常為0或1,xp表示未經(jīng)過轉(zhuǎn)換的電力能耗數(shù)據(jù),ad表示用電數(shù)據(jù)中的一個隨機(jī)數(shù),gi表示原始的用電量。通過式(2)轉(zhuǎn)換用電數(shù)據(jù),并將其進(jìn)行類別特征編碼,尤其是一些標(biāo)簽項(xiàng),需要直接應(yīng)用于機(jī)器學(xué)習(xí)算法中,成為有序且連續(xù)的數(shù)值。當(dāng)統(tǒng)計(jì)不同時間序列中經(jīng)過轉(zhuǎn)換的數(shù)據(jù)格式時,可以通過式(3)判斷是否轉(zhuǎn)換完全。
(3)
式(3)中,fh表示電力能耗數(shù)據(jù)的轉(zhuǎn)換標(biāo)準(zhǔn)差,mp表示用戶使用電量的差值,xi表示為轉(zhuǎn)換前的格式,Ri表示經(jīng)過轉(zhuǎn)換的數(shù)據(jù)數(shù)量[10]。若fh大于0,則表示轉(zhuǎn)換成功,若fh小于0,則表示轉(zhuǎn)換失敗。
通過統(tǒng)計(jì)性的特征指標(biāo)計(jì)算用戶用電量的平均值,以提取時間序列中的周期數(shù)據(jù),此時計(jì)算平均值的公式為
(4)
式(4)中,meu表示某時間序列中周期型數(shù)據(jù)的平均值,xi表示第i個電力能耗數(shù)據(jù),np表示所提取數(shù)據(jù)的總數(shù)量[11]。得到周期性數(shù)據(jù)的平均值后,需要計(jì)算用電量的極差,公式為
(5)
式(5)中,Ran表示某時間序列中用電能耗數(shù)據(jù)的極差,xmin與xmax分別表示電力數(shù)據(jù)的最小值與最大值。最后通過計(jì)算標(biāo)準(zhǔn)差的方式,獲得新的提取序列:
(6)
式(6)中,sd表示經(jīng)過數(shù)據(jù)提取形成的新的序列,Nm表示序列中被提取的用戶總量。ETL是將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)經(jīng)過清洗、轉(zhuǎn)換、提取之后加載到數(shù)據(jù)倉庫的過程,目的是將分散、零亂、標(biāo)準(zhǔn)不統(tǒng)一的數(shù)據(jù)整合到一起。因此,通過以上清洗、轉(zhuǎn)換以及提取后,將所得到的電力能耗數(shù)據(jù)存儲到ETL數(shù)據(jù)倉庫中,可用于后續(xù)的電力能耗異常檢測與預(yù)測。
使用機(jī)器學(xué)習(xí)的方法檢測狀態(tài)異常的區(qū)域,需要計(jì)算電網(wǎng)中電表的差值:
(7)
式(7)中,ΔRt0表示t0時刻電網(wǎng)中電能總量與電表記錄數(shù)據(jù)的差值,elvg和etlt0分別表示電力能耗的技術(shù)損失和異常損失,ei(t0)表示某用戶在t0時刻的用電量[12-13]。通過式(7)計(jì)算某片區(qū)域內(nèi)電網(wǎng)的獨(dú)立狀態(tài),此時可以以此記錄區(qū)域狀態(tài)的轉(zhuǎn)換序列,并將其作為閾值判斷的準(zhǔn)則。區(qū)域狀態(tài)轉(zhuǎn)換的規(guī)則如圖1所示。

圖1 區(qū)域狀態(tài)轉(zhuǎn)換規(guī)則
在圖1中,狀態(tài)A為正常狀態(tài),狀態(tài)B為異常狀態(tài)。在滑動窗口的集合中,將新的用電記錄接收并更新,同時將新的元素添加到記錄的狀態(tài)機(jī)中,使之成為一個獨(dú)立的個體區(qū)域[14]。此時即可計(jì)算序列中的能耗差值,將對應(yīng)的閾值完全轉(zhuǎn)化,變成電力能耗異常檢測的個體,并得到檢測結(jié)果。
同樣使用機(jī)器學(xué)習(xí)方法,對電力能耗數(shù)據(jù)進(jìn)行預(yù)測,可以使用如圖2所示的算法結(jié)構(gòu)。

圖2 算法流程
如圖2所示,首先需要使用狀態(tài)包絡(luò)擬合以及平均值計(jì)算等方式提取狀態(tài)數(shù)據(jù),若數(shù)據(jù)達(dá)到提取條件,則可以繼續(xù)計(jì)算白噪聲。在分解模態(tài)經(jīng)驗(yàn)時,需要首先計(jì)算殘余分量fi(t):
(8)
式(8)中,pi(t)表示第i組噪聲在經(jīng)驗(yàn)分解過程中的分量集合,hi(t)表示同樣時段內(nèi)經(jīng)平均處理后的殘余集合[15]。分別使用以上方法,判斷此時得到的數(shù)據(jù)是否能夠滿足終止條件,若滿足條件,則需要提取電力能耗的預(yù)測值。
為驗(yàn)證本文方法的有效性,將其與雙向長短期記憶神經(jīng)網(wǎng)絡(luò)算法、大數(shù)據(jù)分析方法、改進(jìn)k-means方法進(jìn)行比較。使用某居民區(qū)的用電記錄作為本實(shí)驗(yàn)的數(shù)據(jù)集,列舉智能電表所采集的實(shí)測數(shù)據(jù),每3天計(jì)算一個相鄰點(diǎn),將所有用電記錄分為10 000份,其中包含10%(即1000份)竊電樣本,另外90%(即9000份)為正常用電記錄。對10 000份樣本進(jìn)行分層采樣,60%作為訓(xùn)練集,20%作為驗(yàn)證集,剩余的20%作為測試集。比較實(shí)驗(yàn)數(shù)據(jù)集中的數(shù)據(jù),為消除數(shù)據(jù)集中的錯誤樣本,使用歸一化的方法,其計(jì)算公式為
(9)
式(9)中,fi表示將任意一個數(shù)據(jù)集中的數(shù)據(jù)歸一化后所得數(shù)據(jù),hi表示未歸一化的數(shù)據(jù),hmin和hmax分別表示樣本數(shù)據(jù)集中的最小值和最大值。經(jīng)過規(guī)劃化后得到居民區(qū)用電能耗圖,該居民區(qū)在1月(冬季)、4月(春季)、7月(夏季)、10月(秋季)的用電能耗,如圖3所示。

圖3 居民區(qū)用電能耗
由圖3可知,冬季與夏季所需要的能耗相對較高,春季與秋季的用電能耗相對較低。
比較4種電力能耗異常檢測方法,使用工作特征曲線(ROC曲線)作為異常檢測結(jié)果的評價指標(biāo),將ROC曲線下的面積量化,得到計(jì)算公式:
(10)


圖4 電力能耗異常值檢測方法比較
如圖4所示,4種電力在春季的ROC值分別為0.74、0.70、0.64、0.66,其中本文算法的結(jié)果最接近1.0,表明本文方法檢測結(jié)果最好。在夏季、秋季與冬季的電力能耗異常值檢測中,本文算法的ROC值仍然大于其他3種方法。通過以上數(shù)據(jù)可知,本文設(shè)計(jì)的機(jī)器學(xué)習(xí)方法較其他幾種方法的檢測效果更好。
為測試機(jī)器學(xué)習(xí)方法在電力預(yù)測中的有效性與優(yōu)越性,選取某居民區(qū)的用電記錄作為實(shí)驗(yàn)的數(shù)據(jù)集,采用滑動窗口提取與分解數(shù)據(jù),并區(qū)分低頻的趨勢分量。將時間展開的數(shù)量設(shè)置為50,輸出向量神經(jīng)元數(shù)量設(shè)置為80,分別設(shè)置3個網(wǎng)絡(luò)層,每一批次的預(yù)測樣本數(shù)量為50,學(xué)習(xí)率為0.01,算法運(yùn)行后,得到如圖5所示的居民區(qū)電力能耗預(yù)測結(jié)果。

圖5 居民區(qū)電力能耗預(yù)測
由圖5可知,4種預(yù)測方法對電力的預(yù)測結(jié)果與實(shí)際數(shù)據(jù)存在一定的差距,使用RMSE以及MAE計(jì)算預(yù)測值與實(shí)際值之間的誤差,計(jì)算公式為
(11)
(12)
式(11)、式(12)中,RMSEi與MAEi分別表示第i種預(yù)測方法與實(shí)際數(shù)據(jù)之間的誤差指標(biāo),其數(shù)值越小表明誤差值越小,ni表示電力數(shù)據(jù)的樣本數(shù)量,gk與hk分別表示第k個測試樣本的實(shí)際值與預(yù)測值。基于式(11)、式(12),計(jì)算4種算法的預(yù)測誤差,如表1所示。

表1 不同算法預(yù)測誤差
由表1可知,無論是RMSE的誤差指標(biāo),還是MAE誤差,本文算法所得數(shù)值均為4種算法的最小值,可見該方法在預(yù)測電力能耗時所得誤差最小。
本文基于機(jī)器學(xué)習(xí)設(shè)計(jì)了一種電力能耗異常檢測以及預(yù)測的方法,將最初始的數(shù)據(jù)經(jīng)過數(shù)據(jù)清洗、轉(zhuǎn)換,并以時間序列提取有用數(shù)據(jù),以此減少電力能耗異常檢測以及預(yù)測的誤差,然后設(shè)計(jì)相應(yīng)的檢測和預(yù)測算法。在實(shí)驗(yàn)中,本文方法的ROC值以及RMSE與MAE誤差指標(biāo)均小于其他算法,可見該方法優(yōu)于其他方法。但是,在進(jìn)行電力能耗異常檢測以及預(yù)測時,沒有考慮預(yù)測時間的問題,致使預(yù)測效率較低,為此在接下來的研究中將改進(jìn)本文算法,縮短運(yùn)算時間,旨在提升電力能耗異常檢測以及預(yù)測效率。