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