李富柏,焦瑞莉,薄宇,李朋
(1.北京信息科技大學(xué) 信息與通信工程學(xué)院,北京 100101;2.中國科學(xué)院 大氣物理研究所,北京 100029;3.國網(wǎng)冀北電力有限公司 電力科學(xué)研究院,北京 100045)
隨著電網(wǎng)智能化建設(shè)的高速發(fā)展,基礎(chǔ)電力數(shù)據(jù)呈爆發(fā)式增長[1]。在電力數(shù)據(jù)采集過程中,智能電表故障、數(shù)據(jù)傳輸信道阻塞等因素會造成電力數(shù)據(jù)的不規(guī)則缺失現(xiàn)象,表現(xiàn)為缺失數(shù)量多少和出現(xiàn)的時間點均不明確。當(dāng)缺失量達(dá)到一定規(guī)模時,簡單刪除會造成大量的信息損失[2]。研究電力數(shù)據(jù)補全方法能有效提升電力數(shù)據(jù)質(zhì)量,提高電力數(shù)據(jù)在電力負(fù)荷預(yù)測[3]、區(qū)域性電力調(diào)配[4]等諸多領(lǐng)域的實際應(yīng)用價值。
傳統(tǒng)的缺失補全方法包括:均值法、插值法和回歸法等[5-6]。這些傳統(tǒng)補全方法只考慮了數(shù)據(jù)的數(shù)值分布形式,如果將其直接用于電力數(shù)據(jù)的補全工作,會忽視電力數(shù)據(jù)的時空分布特征,進(jìn)而導(dǎo)致補全效果不佳。為了更好地提取數(shù)據(jù)的時空分布特征,學(xué)者們在數(shù)據(jù)補全工作中采取了更精密的方法。如文獻(xiàn)[7]提出一種基于深度學(xué)習(xí)的不完整數(shù)據(jù)填充方法,通過深度學(xué)習(xí)模型捕捉數(shù)據(jù)的時空關(guān)系并補全數(shù)據(jù),但是該方法構(gòu)建的是一種淺層模型,難以完全捕捉數(shù)據(jù)的時空關(guān)聯(lián)性。文獻(xiàn)[8]基于改進(jìn)型生成式對抗網(wǎng)絡(luò)提出一種缺失數(shù)據(jù)補全方法,由于采用深層網(wǎng)絡(luò)模型提取數(shù)據(jù)的時空關(guān)聯(lián)性,其補全效果更好。文獻(xiàn)[9]利用長短期記憶網(wǎng)絡(luò)以及圖卷積層原理,構(gòu)造了一種具備編碼-解碼結(jié)構(gòu)的電力數(shù)據(jù)缺失數(shù)據(jù)重建模型,提高了電網(wǎng)系統(tǒng)重建數(shù)據(jù)的精度,但模型較為復(fù)雜,且難以滿足單一用戶的電力數(shù)據(jù)補全需求。上述深度學(xué)習(xí)補全方法需要大量的連續(xù)數(shù)據(jù)進(jìn)行訓(xùn)練,在訓(xùn)練樣本不連續(xù)和不充分的情況下,無法取得良好的補全效果,從而限制了相關(guān)方法的實用性。文獻(xiàn)[10]針對低壓臺區(qū)數(shù)據(jù)缺失問題,通過預(yù)補全完成曲線相似聚類,將相同類別用戶的電力數(shù)據(jù)構(gòu)建數(shù)據(jù)矩陣,并應(yīng)用低秩矩陣填補理論二次補全了臺區(qū)電力缺失數(shù)據(jù),但是該方法忽略了電力用戶自身的電力差異性,且難以滿足單一用戶的電力數(shù)據(jù)補全需求。
針對電力數(shù)據(jù)隨機(jī)缺失問題,可以采用k最近鄰(k-nearest neighbor,KNN)方法對缺失數(shù)據(jù)進(jìn)行補全,該方法的優(yōu)點在于有效利用缺失類與完整類的關(guān)系,且不要求數(shù)據(jù)具備某種固定數(shù)據(jù)分布特征。缺點也較為明顯,KNN方法在計算時需要遍歷整個數(shù)據(jù)集,時間代價高。如文獻(xiàn)[11]在KNN補全方法的基礎(chǔ)上提出了基于灰色自適應(yīng)k最近鄰(grey adaptive KNN,GAKNN)補全方法,完成了配電站電力時間序列數(shù)據(jù)的補全,該方法的主要改進(jìn)是采用灰色相似度替代傳統(tǒng)歐式距離及數(shù)據(jù)時間序列化方法,提高了配電站數(shù)據(jù)補全精度,但是時間成本上升。
針對當(dāng)前補全方法不能有效衡量電力數(shù)據(jù)相似度的缺點,本文提出了一種基于動態(tài)時間規(guī)整k最近鄰(dynamic time warping KNN,DTWKNN)的數(shù)據(jù)補全方法。實驗結(jié)果表明,與其它方法相比,本文方法的補全效果更優(yōu)。深度學(xué)習(xí)預(yù)測結(jié)果表明,應(yīng)用本文方法補全后的數(shù)據(jù)集預(yù)測的精度更高。DTWKNN方法可以有效提升電力數(shù)據(jù)的補全精度,并且對電力負(fù)荷預(yù)測工作具備實際應(yīng)用價值。
電力大數(shù)據(jù)系統(tǒng)每天以一定采集周期T采集原始數(shù)據(jù),將原始數(shù)據(jù)整理為適合機(jī)器學(xué)習(xí)方法的數(shù)據(jù)集。按日尺度構(gòu)建用電量時間向量,積累若干天的數(shù)據(jù),即可得到原始用電數(shù)據(jù)集:
S=[s1,s2,…,sN]
(1)
式中:N為總天數(shù);si(i=1,2,…,N)為每天不同時刻的用電量組成的向量。依據(jù)當(dāng)日內(nèi)各時刻是否存在缺失數(shù)據(jù),劃分為缺失數(shù)據(jù)集Smiss、完整數(shù)據(jù)集Strain:
Smiss=[smiss_1,smiss_2,…,smiss_l]
(2)
Strain=[strain_1,strain_2,…,strain_q]
(3)
式中:strain_i={y1,y2,…,y24},為完整的日時刻用電向量,i=1,2,…,q;l、q分別為兩個數(shù)據(jù)集的樣本數(shù)。定義Smiss中任意缺失數(shù)據(jù)樣本slack如下:
slack={y1,y2,…,MI,…,y24}
(4)
式中:MI代表缺失值。計算slack與strain_i的歐式距離DE:
(5)
上述方法中,影響補全有效性的因素主要有以下3點:首先,以上述歐式距離為例,歐式距離小,可能只是在數(shù)值上較為接近,但是樣本相似度不高。此外,缺失值的存在導(dǎo)致樣本實際長度不一致,歐式距離計算過程中遺漏了部分?jǐn)?shù)據(jù)信息。其次,k值對整體方法影響大,選擇較小的k值會導(dǎo)致整體誤差較高,對近鄰樣本的數(shù)據(jù)較為敏感,容易發(fā)生過擬合現(xiàn)象;選擇較大的k值時,近鄰樣本中會包含與缺失樣本高度偏差的部分樣本,會造成數(shù)據(jù)補全精度降低。最后,均分k個樣本權(quán)重的方法會降低方法補全精度。
由于缺失樣本與完整樣本實際長度不相等,歐式距離無法有效衡量電力數(shù)據(jù)的相似性,需要一種新的距離計算方法。動態(tài)時間規(guī)整(DTW)基于動態(tài)規(guī)整理論,可以實現(xiàn)兩個不等長序列的動態(tài)匹配,在語音識別領(lǐng)域廣泛應(yīng)用?;贒TW距離能計算不等長序列的優(yōu)點,本文采取DTW距離替代歐式距離,用于電力樣本距離計算,該距離越小表明電力樣本相關(guān)性越高。
以實例介紹DTW距離的具體計算過程,現(xiàn)假設(shè)有兩個電能序列E={e1,e2,…,en}和U={u1,u2,…,um}。將電能序列E與U構(gòu)造距離矩陣D:
(6)
式中:d(i,j)=(ei-uj)2,d(i,j)是兩兩樣本點之間的歐式距離。
DTW理論的出發(fā)點是找到一條最優(yōu)的路徑,即找到對應(yīng)點之間的最優(yōu)關(guān)系,如圖1所示,圖中黑色部分組成的路徑對應(yīng)于兩個時間序列點的最佳對應(yīng)關(guān)系。
將d(1,1)到達(dá)d(i,j)的最短累計距離記作r(i,j),其定義如下:
(7)
式中:在邊界上,r(0,0)=0,r(i,0)=r(j,0)=+∞,滿足所有點的計算條件。
定義E與U的DTW距離如下:
DDTW(E,U)=r(n,m)
(8)
當(dāng)DTW距離得出后,即可用其替代歐式距離,解決了因原缺失數(shù)據(jù)集存在數(shù)據(jù)缺失而無法準(zhǔn)確計算其與完整數(shù)據(jù)集之間的序列距離的技術(shù)痛點。
上述分析中,依據(jù)DTW距離優(yōu)化了KNN補全方法,但是也忽略了屬性之間的影響關(guān)系。為了表示電力數(shù)據(jù)的屬性影響關(guān)系,定義屬性相關(guān)性影響參數(shù)為x′。主成分分析(principal component analysis,PCA)方法是一種數(shù)據(jù)降維方法,通過最小化屬性間相關(guān)性實現(xiàn)降維。降維計算過程中的協(xié)方差矩陣可以反映各個屬性之間的相關(guān)關(guān)系。參考PCA算法過程計算x′,具體步驟如下:
第一步計算原始用電數(shù)據(jù)集S的協(xié)方差。協(xié)方差是一種衡量兩個變量關(guān)系的量度,假設(shè)有兩個長度為n的序列A={a1,a2,…,an}與B={b1,b2,…,bn},其協(xié)方差計算公式為
(9)
對原始電力數(shù)據(jù)集S=[s1,s2,…,sN],計算其中各向量兩兩之間的協(xié)方差,得到協(xié)方差矩陣C:
(10)
第二步原始用電數(shù)據(jù)集S的中心化。由于數(shù)據(jù)量綱的影響,需要對數(shù)據(jù)集進(jìn)行中心化工作,具體過程為對應(yīng)數(shù)據(jù)點減去所在列的數(shù)值平均值:
(11)
式中:xi為對應(yīng)樣本值;i代表數(shù)據(jù)所在列;∑si為整個列的數(shù)值和;m為該列不為零的數(shù)據(jù)個數(shù)。
第三步對某缺失點計算屬性相關(guān)性影響參數(shù)。依據(jù)第二步計算出zi后,乘上第一步對應(yīng)協(xié)方差計算值,就是這個屬性對缺失點所在屬性的影響大小,對所得數(shù)值取平均后,即為綜合屬性相關(guān)性影響參數(shù)x′,如式(12)所示。
(12)
式中:r為缺失樣本中非缺失值的數(shù)量;cov(si,sj)表示zi對應(yīng)的協(xié)方差。
本方法補全流程如圖2所示。首先進(jìn)行原始電力數(shù)據(jù)的預(yù)處理。將電能序列劃分為缺失數(shù)據(jù)集Smiss、完整數(shù)據(jù)集Strain。
圖2 DTWKNN數(shù)據(jù)補全流程Fig.2 Data completion process based on DTWKNN
輸入特定的缺失樣本slack,計算其與Strain內(nèi)所有樣本的DTW距離矩陣DDTW,如式(13)所示:
DDTW={DDTW(slack,strain_1),…,DDTW(slack,strain_n)}
(13)
選取與訓(xùn)練樣本si最接近的k個數(shù)據(jù)樣本,并得到近鄰矩陣Sneighbor:
(14)
依據(jù)樣本相似性,假設(shè)兩樣本曲線的數(shù)值關(guān)系為倍數(shù)關(guān)系,優(yōu)化權(quán)重分配方法。計算權(quán)重分布矩陣W,將slack與Sneighbor相除:
(15)
式中:Wk為近鄰數(shù)據(jù)矩陣第k行的權(quán)重系數(shù)向量,Wk={w1,w2,…,w24};在缺失點,定義wj=0;當(dāng)分母中的某一樣本值為0時,wj=0。
由于在數(shù)據(jù)缺失點wj=0,將權(quán)重分布矩陣W以行統(tǒng)一為行權(quán)重分配系數(shù)W′,如式(16)所示:
(16)
依據(jù)式(17)對缺失值MI進(jìn)行填補:
(17)
式中:W′為近鄰矩陣的行權(quán)重分配系數(shù);yI為對應(yīng)缺失值所在列的k個近鄰樣本數(shù)值;x′是屬性相關(guān)性影響參數(shù)。
重復(fù)上述步驟,將Smiss中的所有缺失值全部補充到對應(yīng)的缺失位置,完成整個數(shù)據(jù)集缺失填補。
選定河北省某市某企業(yè)的2019年全年用電數(shù)據(jù)為實驗數(shù)據(jù)。數(shù)據(jù)采樣頻率為15 min,每天 96個采樣點。該數(shù)據(jù)被處理為日向量形式作為模型的輸入,每個向量包含24點(每個小時)電能數(shù)據(jù)樣本,共365條數(shù)據(jù)。此數(shù)據(jù)為完整數(shù)據(jù),作為補全結(jié)果的對比驗證。實驗過程中,通過隨機(jī)抽樣方法模擬實際缺失情況,隨機(jī)構(gòu)建數(shù)據(jù)缺失率在1%至10%的待補全電力數(shù)據(jù)集,將不同方法用于補全,對比不同方法補全性能。
為比較補全前后數(shù)據(jù)的相似程度,采用均方根誤差ERMSE以及平均絕對百分比誤差EMAPE對補全有效性進(jìn)行評價,其計算方法如下:
(18)
(19)
ERMSE數(shù)值越小表示越接近原始值,在評估兩種不同補全方法的優(yōu)劣時,擁有更小的ERMSE值的補全方法性能更優(yōu)。EMAPE同理,用于輔助評價。本文實驗平臺是TensorFlow,實驗均在操作系統(tǒng)為Windows 11,處理器為AMD Ryzen 7 5800H 帶有Radeon 圖形 CPU 3.20 GHz,內(nèi)存為16 GB的硬件條件下進(jìn)行。開發(fā)源碼采用Python 3.8??紤]到每次隨機(jī)模擬的缺失位置不盡相同,每次的誤差都取重復(fù)補全實驗10次后的平均值。
k應(yīng)取一個最優(yōu)值,過大的k值和過小的k值都會影響方法的準(zhǔn)確性[12],具體見1.1小節(jié)。為探究不同k值下的DTWKNN補全方法與傳統(tǒng)KNN補全方法的優(yōu)劣,本部分實驗以網(wǎng)格搜索法探究不同k值下的方法補全性能。依據(jù)人工經(jīng)驗設(shè)定k值范圍為3~10,并設(shè)定搜索步長為1,將k作為實驗變量。隨機(jī)構(gòu)造一個缺失率為10%的數(shù)據(jù)集,計算補全前后的誤差。實驗結(jié)果如圖3所示。
圖3 10%缺失率下不同k值的補全誤差Fig.3 Completion error of different k values at 10% missing rate
從圖3可以看出:在缺失率為定值且k值不同時,本文方法優(yōu)于傳統(tǒng)KNN補全方法;在k值的不同取值下,DTWKNN方法的ERMSE都更小,總體補全效果優(yōu)于傳統(tǒng)KNN補全方法。此外,上述結(jié)果直觀體現(xiàn)了k值選取對于補全效果的影響,在取值為9時兩種方法的補全誤差最小且效果最接近,下述實驗取k=9進(jìn)行討論。
為驗證DTWKNN補全方法的優(yōu)越性,本實驗進(jìn)行了不同補全方法的對比工作,具體對比對象為傳統(tǒng)KNN補全方法和灰色k最近鄰(gray KNN,GKNN)補全方法。GKNN方法就是將KNN方法的歐式距離替換為灰色系數(shù),其余流程不變,目的是對比兩種不同距離替代優(yōu)劣。本節(jié)取k值為9進(jìn)行討論,構(gòu)建缺失率為1%,2%,…,10%的10個缺失數(shù)據(jù)集,并分別對傳統(tǒng)KNN、DTWKNN和GKNN方法補全后的ERMSE與EMAPE進(jìn)行分析,如表1所示。
表1 不同補全方法的誤差Table 1 Error of different completion methods
由表1分析可知,GKNN方法的ERMSE值與EMAPE值在不同缺失率下均大于其余方法,表明簡單使用灰色系數(shù)作為距離量度不利于補全精度提升。DTWKNN的補全誤差ERMSE總體小于傳統(tǒng)KNN補全方法,實現(xiàn)了對KNN補全方法的改良,本文補全方法在本次數(shù)據(jù)補全過程中表現(xiàn)最優(yōu)。在缺失率小于10%時,本文補全方法可以推廣到更多用戶的用電數(shù)據(jù)補全需求中,且補全可靠性高于KNN補全方法。
在實際數(shù)據(jù)補全過程評估中,時間代價是一個重要的指標(biāo)。因此本文最后對比了DTWKNN與KNN的補全時間花費,如圖4所示。缺失率設(shè)置同2.4小節(jié),仍取k值為9。
圖 4 不同缺失率下補全時間代價對比Fig. 4 Comparison of completion time costs for different missing rates
由圖4可知,DTWKNN補全方法的時間代價是可接受的,在圖4中沒有出現(xiàn)時間代價高度增長的現(xiàn)象;在缺失率大于5%時,所需時間明顯少于KNN方法,有效減少了補全方法的時間花費。
研究數(shù)據(jù)補全方法目的是更好地使用數(shù)據(jù)。對于電力數(shù)據(jù)而言,研究數(shù)據(jù)補全的關(guān)鍵作用在于后續(xù)更準(zhǔn)確地進(jìn)行負(fù)荷預(yù)測研究。將實驗數(shù)據(jù)集缺失率分別設(shè)定為1%,2%,…,10%,k值均取9,分別用KNN方法和DTWKNN方法補全后得到共計20個數(shù)據(jù)集。分別采用KNN與DTWKNN補全后的數(shù)據(jù)用長短期記憶(long short-term memory,LSTM)網(wǎng)絡(luò)[13]進(jìn)行預(yù)測,對比這20個電力負(fù)荷數(shù)據(jù)集的預(yù)測誤差ERMSE。采取的LSTM模型的結(jié)構(gòu)及參數(shù)如表2所示,參數(shù)選取原則為在原始數(shù)據(jù)內(nèi)構(gòu)建模型采取交叉驗證與網(wǎng)格搜索方法手動調(diào)參得出最優(yōu)參數(shù)。
表2 LSTM模型參數(shù)表Table 2 Parameters of the LSTM model
20個數(shù)據(jù)集預(yù)測誤差ERMSE如圖5 所示。結(jié)果表明,經(jīng)DTWKNN方法補全后的10個數(shù)據(jù)集用作預(yù)測的誤差ERMSE更小,預(yù)測結(jié)果更接近真實樣本。對于深度學(xué)習(xí)預(yù)測誤差而言,預(yù)測誤差越小表明預(yù)測越準(zhǔn)確,圖中結(jié)果進(jìn)一步證明了本文補全方法對電力負(fù)荷預(yù)測問題有支撐價值。
針對電力數(shù)據(jù)缺失現(xiàn)象影響電力負(fù)荷預(yù)測精度的問題,本文提出了一種基于DTWKNN的電力缺失數(shù)據(jù)補全方法。該方法在KNN補全方法的基礎(chǔ)上,針對數(shù)據(jù)不等長問題采取了DTW距離計算樣本距離,定義了屬性相關(guān)性影響參數(shù)來修正填補值,是一種良好的補全方法。本文補全方法與其它方法相比,具有補全誤差低、時間花費小的優(yōu)點,并且補全數(shù)據(jù)后有較小的電力負(fù)荷預(yù)測誤差。后續(xù)將會對電力負(fù)荷預(yù)測問題展開研究,進(jìn)一步驗證本文電力數(shù)據(jù)補全方法價值。