李富柏,焦瑞莉,薄宇,李朋
(1.北京信息科技大学 信息与通信工程学院,北京 100101;2.中国科学院 大气物理研究所,北京 100029;3.国网冀北电力有限公司 电力科学研究院,北京 100045)
随着电网智能化建设的高速发展,基础电力数据呈爆发式增长[1]。在电力数据采集过程中,智能电表故障、数据传输信道阻塞等因素会造成电力数据的不规则缺失现象,表现为缺失数量多少和出现的时间点均不明确。当缺失量达到一定规模时,简单删除会造成大量的信息损失[2]。研究电力数据补全方法能有效提升电力数据质量,提高电力数据在电力负荷预测[3]、区域性电力调配[4]等诸多领域的实际应用价值。
传统的缺失补全方法包括:均值法、插值法和回归法等[5-6]。这些传统补全方法只考虑了数据的数值分布形式,如果将其直接用于电力数据的补全工作,会忽视电力数据的时空分布特征,进而导致补全效果不佳。为了更好地提取数据的时空分布特征,学者们在数据补全工作中采取了更精密的方法。如文献[7]提出一种基于深度学习的不完整数据填充方法,通过深度学习模型捕捉数据的时空关系并补全数据,但是该方法构建的是一种浅层模型,难以完全捕捉数据的时空关联性。文献[8]基于改进型生成式对抗网络提出一种缺失数据补全方法,由于采用深层网络模型提取数据的时空关联性,其补全效果更好。文献[9]利用长短期记忆网络以及图卷积层原理,构造了一种具备编码-解码结构的电力数据缺失数据重建模型,提高了电网系统重建数据的精度,但模型较为复杂,且难以满足单一用户的电力数据补全需求。上述深度学习补全方法需要大量的连续数据进行训练,在训练样本不连续和不充分的情况下,无法取得良好的补全效果,从而限制了相关方法的实用性。文献[10]针对低压台区数据缺失问题,通过预补全完成曲线相似聚类,将相同类别用户的电力数据构建数据矩阵,并应用低秩矩阵填补理论二次补全了台区电力缺失数据,但是该方法忽略了电力用户自身的电力差异性,且难以满足单一用户的电力数据补全需求。
针对电力数据随机缺失问题,可以采用k最近邻(k-nearest neighbor,KNN)方法对缺失数据进行补全,该方法的优点在于有效利用缺失类与完整类的关系,且不要求数据具备某种固定数据分布特征。缺点也较为明显,KNN方法在计算时需要遍历整个数据集,时间代价高。如文献[11]在KNN补全方法的基础上提出了基于灰色自适应k最近邻(grey adaptive KNN,GAKNN)补全方法,完成了配电站电力时间序列数据的补全,该方法的主要改进是采用灰色相似度替代传统欧式距离及数据时间序列化方法,提高了配电站数据补全精度,但是时间成本上升。
针对当前补全方法不能有效衡量电力数据相似度的缺点,本文提出了一种基于动态时间规整k最近邻(dynamic time warping KNN,DTWKNN)的数据补全方法。实验结果表明,与其它方法相比,本文方法的补全效果更优。深度学习预测结果表明,应用本文方法补全后的数据集预测的精度更高。DTWKNN方法可以有效提升电力数据的补全精度,并且对电力负荷预测工作具备实际应用价值。
电力大数据系统每天以一定采集周期T采集原始数据,将原始数据整理为适合机器学习方法的数据集。按日尺度构建用电量时间向量,积累若干天的数据,即可得到原始用电数据集:
S=[s1,s2,…,sN]
(1)
式中:N为总天数;si(i=1,2,…,N)为每天不同时刻的用电量组成的向量。依据当日内各时刻是否存在缺失数据,划分为缺失数据集Smiss、完整数据集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分别为两个数据集的样本数。定义Smiss中任意缺失数据样本slack如下:
slack={y1,y2,…,MI,…,y24}
(4)
式中:MI代表缺失值。计算slack与strain_i的欧式距离DE:
(5)
上述方法中,影响补全有效性的因素主要有以下3点:首先,以上述欧式距离为例,欧式距离小,可能只是在数值上较为接近,但是样本相似度不高。此外,缺失值的存在导致样本实际长度不一致,欧式距离计算过程中遗漏了部分数据信息。其次,k值对整体方法影响大,选择较小的k值会导致整体误差较高,对近邻样本的数据较为敏感,容易发生过拟合现象;选择较大的k值时,近邻样本中会包含与缺失样本高度偏差的部分样本,会造成数据补全精度降低。最后,均分k个样本权重的方法会降低方法补全精度。
由于缺失样本与完整样本实际长度不相等,欧式距离无法有效衡量电力数据的相似性,需要一种新的距离计算方法。动态时间规整(DTW)基于动态规整理论,可以实现两个不等长序列的动态匹配,在语音识别领域广泛应用。基于DTW距离能计算不等长序列的优点,本文采取DTW距离替代欧式距离,用于电力样本距离计算,该距离越小表明电力样本相关性越高。
以实例介绍DTW距离的具体计算过程,现假设有两个电能序列E={e1,e2,…,en}和U={u1,u2,…,um}。将电能序列E与U构造距离矩阵D:
(6)
式中:d(i,j)=(ei-uj)2,d(i,j)是两两样本点之间的欧式距离。
DTW理论的出发点是找到一条最优的路径,即找到对应点之间的最优关系,如图1所示,图中黑色部分组成的路径对应于两个时间序列点的最佳对应关系。
将d(1,1)到达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)
当DTW距离得出后,即可用其替代欧式距离,解决了因原缺失数据集存在数据缺失而无法准确计算其与完整数据集之间的序列距离的技术痛点。
上述分析中,依据DTW距离优化了KNN补全方法,但是也忽略了属性之间的影响关系。为了表示电力数据的属性影响关系,定义属性相关性影响参数为x′。主成分分析(principal component analysis,PCA)方法是一种数据降维方法,通过最小化属性间相关性实现降维。降维计算过程中的协方差矩阵可以反映各个属性之间的相关关系。参考PCA算法过程计算x′,具体步骤如下:
第一步计算原始用电数据集S的协方差。协方差是一种衡量两个变量关系的量度,假设有两个长度为n的序列A={a1,a2,…,an}与B={b1,b2,…,bn},其协方差计算公式为
(9)
对原始电力数据集S=[s1,s2,…,sN],计算其中各向量两两之间的协方差,得到协方差矩阵C:
(10)
第二步原始用电数据集S的中心化。由于数据量纲的影响,需要对数据集进行中心化工作,具体过程为对应数据点减去所在列的数值平均值:
(11)
式中:xi为对应样本值;i代表数据所在列;∑si为整个列的数值和;m为该列不为零的数据个数。
第三步对某缺失点计算属性相关性影响参数。依据第二步计算出zi后,乘上第一步对应协方差计算值,就是这个属性对缺失点所在属性的影响大小,对所得数值取平均后,即为综合属性相关性影响参数x′,如式(12)所示。
(12)
式中:r为缺失样本中非缺失值的数量;cov(si,sj)表示zi对应的协方差。
本方法补全流程如图2所示。首先进行原始电力数据的预处理。将电能序列划分为缺失数据集Smiss、完整数据集Strain。
图2 DTWKNN数据补全流程Fig.2 Data completion process based on DTWKNN
输入特定的缺失样本slack,计算其与Strain内所有样本的DTW距离矩阵DDTW,如式(13)所示:
DDTW={DDTW(slack,strain_1),…,DDTW(slack,strain_n)}
(13)
选取与训练样本si最接近的k个数据样本,并得到近邻矩阵Sneighbor:
(14)
依据样本相似性,假设两样本曲线的数值关系为倍数关系,优化权重分配方法。计算权重分布矩阵W,将slack与Sneighbor相除:
(15)
式中:Wk为近邻数据矩阵第k行的权重系数向量,Wk={w1,w2,…,w24};在缺失点,定义wj=0;当分母中的某一样本值为0时,wj=0。
由于在数据缺失点wj=0,将权重分布矩阵W以行统一为行权重分配系数W′,如式(16)所示:
(16)
依据式(17)对缺失值MI进行填补:
(17)
式中:W′为近邻矩阵的行权重分配系数;yI为对应缺失值所在列的k个近邻样本数值;x′是属性相关性影响参数。
重复上述步骤,将Smiss中的所有缺失值全部补充到对应的缺失位置,完成整个数据集缺失填补。
选定河北省某市某企业的2019年全年用电数据为实验数据。数据采样频率为15 min,每天 96个采样点。该数据被处理为日向量形式作为模型的输入,每个向量包含24点(每个小时)电能数据样本,共365条数据。此数据为完整数据,作为补全结果的对比验证。实验过程中,通过随机抽样方法模拟实际缺失情况,随机构建数据缺失率在1%至10%的待补全电力数据集,将不同方法用于补全,对比不同方法补全性能。
为比较补全前后数据的相似程度,采用均方根误差ERMSE以及平均绝对百分比误差EMAPE对补全有效性进行评价,其计算方法如下:
(18)
(19)
ERMSE数值越小表示越接近原始值,在评估两种不同补全方法的优劣时,拥有更小的ERMSE值的补全方法性能更优。EMAPE同理,用于辅助评价。本文实验平台是TensorFlow,实验均在操作系统为Windows 11,处理器为AMD Ryzen 7 5800H 带有Radeon 图形 CPU 3.20 GHz,内存为16 GB的硬件条件下进行。开发源码采用Python 3.8。考虑到每次随机模拟的缺失位置不尽相同,每次的误差都取重复补全实验10次后的平均值。
k应取一个最优值,过大的k值和过小的k值都会影响方法的准确性[12],具体见1.1小节。为探究不同k值下的DTWKNN补全方法与传统KNN补全方法的优劣,本部分实验以网格搜索法探究不同k值下的方法补全性能。依据人工经验设定k值范围为3~10,并设定搜索步长为1,将k作为实验变量。随机构造一个缺失率为10%的数据集,计算补全前后的误差。实验结果如图3所示。
图3 10%缺失率下不同k值的补全误差Fig.3 Completion error of different k values at 10% missing rate
从图3可以看出:在缺失率为定值且k值不同时,本文方法优于传统KNN补全方法;在k值的不同取值下,DTWKNN方法的ERMSE都更小,总体补全效果优于传统KNN补全方法。此外,上述结果直观体现了k值选取对于补全效果的影响,在取值为9时两种方法的补全误差最小且效果最接近,下述实验取k=9进行讨论。
为验证DTWKNN补全方法的优越性,本实验进行了不同补全方法的对比工作,具体对比对象为传统KNN补全方法和灰色k最近邻(gray KNN,GKNN)补全方法。GKNN方法就是将KNN方法的欧式距离替换为灰色系数,其余流程不变,目的是对比两种不同距离替代优劣。本节取k值为9进行讨论,构建缺失率为1%,2%,…,10%的10个缺失数据集,并分别对传统KNN、DTWKNN和GKNN方法补全后的ERMSE与EMAPE进行分析,如表1所示。
表1 不同补全方法的误差Table 1 Error of different completion methods
由表1分析可知,GKNN方法的ERMSE值与EMAPE值在不同缺失率下均大于其余方法,表明简单使用灰色系数作为距离量度不利于补全精度提升。DTWKNN的补全误差ERMSE总体小于传统KNN补全方法,实现了对KNN补全方法的改良,本文补全方法在本次数据补全过程中表现最优。在缺失率小于10%时,本文补全方法可以推广到更多用户的用电数据补全需求中,且补全可靠性高于KNN补全方法。
在实际数据补全过程评估中,时间代价是一个重要的指标。因此本文最后对比了DTWKNN与KNN的补全时间花费,如图4所示。缺失率设置同2.4小节,仍取k值为9。
图 4 不同缺失率下补全时间代价对比Fig. 4 Comparison of completion time costs for different missing rates
由图4可知,DTWKNN补全方法的时间代价是可接受的,在图4中没有出现时间代价高度增长的现象;在缺失率大于5%时,所需时间明显少于KNN方法,有效减少了补全方法的时间花费。
研究数据补全方法目的是更好地使用数据。对于电力数据而言,研究数据补全的关键作用在于后续更准确地进行负荷预测研究。将实验数据集缺失率分别设定为1%,2%,…,10%,k值均取9,分别用KNN方法和DTWKNN方法补全后得到共计20个数据集。分别采用KNN与DTWKNN补全后的数据用长短期记忆(long short-term memory,LSTM)网络[13]进行预测,对比这20个电力负荷数据集的预测误差ERMSE。采取的LSTM模型的结构及参数如表2所示,参数选取原则为在原始数据内构建模型采取交叉验证与网格搜索方法手动调参得出最优参数。
表2 LSTM模型参数表Table 2 Parameters of the LSTM model
20个数据集预测误差ERMSE如图5 所示。结果表明,经DTWKNN方法补全后的10个数据集用作预测的误差ERMSE更小,预测结果更接近真实样本。对于深度学习预测误差而言,预测误差越小表明预测越准确,图中结果进一步证明了本文补全方法对电力负荷预测问题有支撑价值。
针对电力数据缺失现象影响电力负荷预测精度的问题,本文提出了一种基于DTWKNN的电力缺失数据补全方法。该方法在KNN补全方法的基础上,针对数据不等长问题采取了DTW距离计算样本距离,定义了属性相关性影响参数来修正填补值,是一种良好的补全方法。本文补全方法与其它方法相比,具有补全误差低、时间花费小的优点,并且补全数据后有较小的电力负荷预测误差。后续将会对电力负荷预测问题展开研究,进一步验证本文电力数据补全方法价值。