
1.本发明属于电力数据分析处理领域,涉及一种基于用户聚类扩展数据的用电预测方法。
背景技术:2.用电量短期预测的准确性,既决定了批发电力和容量市场参与者的财务业绩,也决定了电力系统运行的可靠性。随着当前计算机技术的发展,更多的引入了人工神经网络(ann)来提升电荷预测的准确性。学界普遍认为,使用神经网络解决预测问题是有效的,这当中自然也包括用电负荷时间序列预测问题。
3.由于深度学习模型能够在数据中捕获隐藏的、非线性的特征,许多类型的神经网络已用于用电负荷预测,例如,前馈神经网络、径向基函数网络、尖峰神经网络和循环神经网络等,其中,最流行的学习方法是反向传播算法。然而,与经典方法相比,这类方法在短期负荷预测问题上的应用研究还比较少,而且大多数工作只给出了模型框架及其结果的一般描述,这使得它们的实现相当困难。
4.此外,为了提高电荷预测模型的准确性,一些研究考虑了时间序列的逼近和分解。时间序列的分解是对趋势、周期性和随机波动的提取。这个过程中通常需要用到聚类方法来识别出时间序列的时差,k-means算法是一个很常用的聚类算法,而dtw(dynamic time warping)则是一种很常用的时间序列相似度衡量方法。融合dtw和k-means是一种经典的时间序列聚类方法,虽然这种融合方法能够成功识别时间序列之间的时差,带来较好的分类结果,但是其时间开销大,复杂度高。融合pca和k-means的方法虽然计算速度快,但聚类效果没有融合dtw和k-means的方法好,如果能够在该融合pca和k-means方法基础上,提升效率的同时,避免样本数据受到时差影响,则可以更有利于聚类效果。
5.除此以外,所考虑的时间序列组件不一定存在于每个时间序列中。这些时间序列中可能没有存在趋势或周期性波动的组件,或两者兼而有之。有些文献考虑了时间序列本身,但没有考虑其他数据特征,在用电预测领域中,一般会对天气、交通等特征进行扩充,并以扩充后的数据特征来完成训练过程,但是这种方式缺乏用电用户之间关系的特征,导致模型训练能力不足,且因为没有多个特征依赖,也会使得模型预测随机性比较高。
技术实现要素:6.有鉴于此,本发明的目的在于提供一种基于用电时间序列用户聚类扩展数据的用电预测方法,其包含基于eemd(经验模态分解法)、pca(主成分分析)、cnn(卷积神经网络)和lstm(长短期记忆人工神经网络)等技术,能够解决神经网络用电解数据不够、数据之间关联性、分开随机性序列和非随机性序列、小区用电预测的问题的问题。
7.传统技术中在获取的数据集基础上进行预测,一般只是将eemd分解结果直接输入到预测模型中,而不考虑其他特征。而本发明认为同类用户有一定行为相似度,能够互相补充缺少的数据,所以本发明考虑了使用同类用户数据作为预测模型输入,本发明主要是通
过对eemd分解结果使用两次k-means聚类,第一次是用于获取用户的imf序列的聚类结果,第二次是用于获取用户本身的聚类结果。根据第二次的用户聚类结果来对第一次聚类后的imf序列进行扩展,将扩展后的结果作为cnn-lstm模型的输入来训练该模型,从而提升该模型的预测效果;同时,本发明还为每类用户创建自己的数据帧,因而可以按照数据帧的格式来扩展用户数据,无论是训练阶段还是测试阶段,只需要对数据进行一次eemd分解处理,能够节约相应的程序运行时间。
8.为达到上述目的,本发明提供如下技术方案:
9.一种基于用户聚类扩展数据的用电预测方法,该方法包括以下步骤:
10.s1:获取用户数据集,所述用户数据集包括各个时段的用户用电数据;并对所述用户的用电数据进行预处理,得到用户用电时间序列;
11.s2:利用经验模态分解法对所述用户用电时间序列进行分解,得到用户的imf序列;
12.s3:对用户的imf序列采用基于主成分分析的k-means聚类方法降维,获取用户imf序列的聚类结果,并将其作为更新后的用户数据集;
13.s4:对所述用户imf序列的聚类结果采用基于主成分分析的k-means聚类方法,获取用户聚类结果;
14.s5:根据所述用户聚类结果,对属于同类用户的imf序列进行扩展,将同类用户的用电时间序列加到用户的imf序列中;
15.s6:将扩展后的imf序列作为再次更新后的用户数据集输入到卷积神经网络融合长短期记忆人工神经网络模型中,训练网络模型;
16.s7:将用户在当前时段的imf序列及其同类用户在当前时段的用电时间序列输入到训练后的网络模型中,得到用户在下一时段的用电预测结果。
17.本发明的有益效果在于:
18.1)本发明充分利用用户用电数据,根据同类用户的历史用电数据获取当前用户的待测用电数据的预测值,为小区用户的用电预测提供辅助的依据;
19.2)本发明根据用电用户具有用电行为相似度的特性,利用同一类别下其他用户的用电数据来补充当前用户的用电数据,不仅有利于网络模型的训练,还有利于增强待测用电数据的完整性,从而提升网络模型的预测精度;
20.3)本发明充分使用了eemd方法,对于pca-k-means聚类方法提供了优化,并且预测模型里也使用分解结果,得到比较好的时间序列聚类结果,而且通过一次性eemd预处理也节约了程序运行时间。
21.本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
22.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
23.图1是本发明实施例中一种基于用户聚类扩展数据的用电预测方法流程图;
24.图2是本发明实施例中用户数据集的更新流程示意图;
25.图3是本发明实施例中同类用户的数据帧结构示意图;
26.图4是本发明实施例中用电预测流程的示意图;
27.图5是本发明实施例中网络模型结构图。
具体实施方式
28.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.图1是本发明实施例中一种基于用户聚类扩展数据的用电预测方法流程图,如图1所示,所述预测方法包括:
30.s1:获取用户数据集,所述用户数据集包括各个时段的用户用电数据;并对所述用户的用电数据进行预处理,得到用户用电时间序列;
31.在本发明实施例中,首先需要获取用户数据集,所述用户数据集包括用户的历史用电数据和当前用户数据,其中,所述历史用电数据即为用户在历史时间段的用电数据,这里的历史时间段指的是已经过去的时间段,且其对应的部分或者全部用电数据是已知的;举个例子,假设一共有n个用户,在历史时间段t-m~t+m内,每个用户在时间戳t-m,t-m+1
…
t+m时,都应该具有一个负荷值,当然这个负荷值可能是缺失的,如果缺失,可以采用相应的方式填充即可。所述当前用户数据即为用户在当前时间段的用电数据,这里的当前时间段是指当前实时的时间段,本发明需要利用当前时间段t的当前用户a的imf序列结合当前时间段t的同类用户{n(a)}的用电时间序列,来预测出下一时间段t+1的当前用户a的用电数据。
32.在本发明实施例中,将获取的用户数据集进行预处理后,可以得到相应的用户用电时间序列,可以表示为:
[0033][0034][0035]
其中,是在t时间段内第n个小区用户用电数据,是在时间戳t+m时第n个小区用户用电数据。
[0036]
其中,在本发明实施例中,读取当前区域中n个用户的用电数据,如果发现当前时刻的负荷值存在缺省,即假设用户数据中缺省即则令如果出现多个连续缺省值,将直接用该用户的平均值填充,其中表示第n个用户在t时刻的负荷值,t-1表示t时刻的前一时刻,t+1表示t时刻后一时刻,其中t∈(0,l),l为用户用电时间序列长度。
[0037]
在本发明的优选实施例中,考虑到如果只是利用用户的历史用电数据来预测得到当前的用电数据,那么这个数据就缺乏可解释性,即可以没有考虑当下的影响因素,无法反映用户用电数据在客观层面的自然规律,这个预测结果只具有数学上的意义,不具有实质上的意义,因而,本发明在采集用户历史数据时,还考虑到了影响用户的用电变化的其他因素,包括温度因素和节假日因素,所以,在采集用户用电数据时,除了采集用户的基本信息
和负荷量以外,还需要采集用户的用电数据所对应的温度数据和节假日数据,例如用户a在t时刻的用电负荷量为a,温度为b,时间为c,通过温度数据和时间数据能够侧面反映用户用电的变化情况,从而来提升用户用电数据预测结果的准确性。
[0038]
s2:利用经验模态分解法对所述用户用电时间序列进行分解,得到用户的imf序列;
[0039]
在步骤s2中,可以具体包括:
[0040]
s21:根据网络模型需要的准确度和经验模态分解法分解的有效性,设置出imf分量的数量,以确定用户的imf数据集的维度;
[0041]
s22:采用经验模态分解法,为每个用户用电时间序列重复添加白噪声,并将计算得到的imf分量的平均值作为最终的结果。
[0042]
在本发明实施例中,考虑到针对初步的用户数据集,需要根据模型所需的准确度和eemd分解方法的有效性,来设置imf分量的数量,以确定用户数据集的维度,在准备进行eemd分解方法前,还需对每个时间序列使用标准化:
[0043][0044]
其中,yi表示标准化后的第i个元素,x是输入时间序列,xi是输入时间序列所对应的第i个元素。
[0045]
eemd对原始数据x(t)中提取有限数量em(empirical mode)的imfi(t)并得到的ri(t)余数:
[0046][0047]
eemd方法基于在信号中重复添加一个无限小幅值的白噪声,并计算得到的内蕴模态函数的平均值作为最终的结果:
[0048][0049][0050]
其中,imf
ji
(t)是第j个分解周期的第i个内蕴模态函数,r
ji
(t)是em和通过不同分解得到的余数;j=1,2,...,j是分解周期数(添加到白噪声信号)。
[0051]
s3:对用户的imf序列采用基于主成分分析的k-means聚类方法降维,获取用户imf序列的聚类结果,并将其作为更新后的用户数据集;
[0052]
在步骤s3中,可以具体包括:
[0053]
s31:将步骤s22中每个历史的imf序列进行主成分分析(pca)降维,获取二维的imf数据集;假设有m个imf分量,那么所述二维的imf数据集可以表示为:
[0054]
[0055][0056]
其中,表示第m个imf分量的第一维数据,表示第m个imf分量的第二维数据。
[0057]
在步骤s31中,可以具体包括:
[0058]
s311:定义主成分分析输出的维度为二,并获得步骤s22得到的每个imf分量的平均值;
[0059]
s312:将原点移动到用户数据集的中心,计算样本协方差矩阵,并求协方差矩阵的特征向量和特征值;
[0060]
s313:选择较大特征值对应的特征向量p,采用矩阵乘法进行样本映射,即y=px,得到经主成分分析降维后的二维数据集。
[0061]
s32:对步骤s31得到的二维imf数据集使用k-means聚类方法,得到imf序列的聚类结果,即每个用户对应的某级imf分量的聚类结果;
[0062]
其中,对二维的imf数据集即y数据集使用k-means聚类方法,获取每个用户对应的某级imf分量的聚类结果,可以表示为即为第n个用户第m级imf的聚类结果。
[0063]
s33:使用imf序列的聚类结果代替用户用电时间序列,形成更新后的用户数据集。
[0064]
根据上述过程,更新后的用户数据集可以改成为:
[0065][0066]
其中,表示第n个用户的数据集,这里的用户数据集不再以时间序列体现,而是以imf序列的聚类结果体现:
[0067][0068]
其中,是第n个小区用户第m个imf类号,表现为imf分量的聚类结果。
[0069]
s4:对所述用户imf序列的聚类结果采用基于主成分分析的k-means聚类方法,获取用户聚类结果;
[0070]
在步骤s4中,可以具体包括:
[0071]
s41:对imf序列的聚类结果再次进行主成分分析降维;
[0072]
s42:将降维后的imf序列的聚类结果使用k-means聚类方法,获取用户基于时间序列的聚类结果。
[0073]
同样的,所述步骤s41可以采用如步骤s311-s313类似的步骤来获得用户基于时间序列的聚类结果。
[0074]
s5:根据所述用户聚类结果,对属于同类用户的imf序列进行扩展,将同类用户的用电时间序列加到用户的imf序列中;
[0075]
在步骤s5中,具体包括:
[0076]
s51:按照用户聚类结果划分用户数据,即为每类用户创建自己的数据帧,数据帧列标签是用户编号,数据列是对应的用户用电数据;
[0077]
s52:对用户用电数据进行按用户类别进行扩展,也即若用户n在类m,那么类m的用户n的数据集包括:用户n在类m的数据及属于类m的其他用户数据;
[0078]
s53:将步骤s52得到的扩展数据帧作为扩展的特征向量,并用s22步骤的imf数据集代替用户本身的用电时间序列,即用每个imf自身相似的数据帧扩展用户的用电数据。
[0079]
其中,每个扩展后的imf序列包含用户的imf序列以及其同类用户的用电时间序列,举个例子,假设在一个用电网络场景中,其中一个分类中,包含用户a、用户b和用户c;用户a具有4级imf分量,那么用户a扩展后的imf序列就包括:用户a的imf1分量、用户b的用电时间序列和用户c的用电时间序列;用户a的imf2分量、用户b的用电时间序列和用户c的用电时间序列;用户a的imf3分量、用户b的用电时间序列和用户c的用电时间序列;用户a的imf4分量、用户b的用电时间序列和用户c的用电时间序列;这种扩展方式能够有效增强用户数据集,并提升模型的精度。
[0080]
s6:将扩展后的imf序列作为再次更新后的用户数据集输入到卷积神经网络融合长短期记忆人工神经网络模型中,训练网络模型;
[0081]
在本发明实施例中,需要根据imf聚类结果再次更新用户数据集,并以此构建训练集:
[0082][0083]
其中,是与目标用户的同类c的第n个用户在t-m时间戳时的负荷值。
[0084]
在步骤s6中,具体包括:s61:构建出卷积神经网络融合长短期记忆人工神经网络模型,其中的长短期记忆人工神经网络包括连续的3个lstm层;
[0085]
s62:将步骤s5的再次更新后的用户数据集输入到网络模型中,得到对应的预测结果;
[0086]
s63:将对应的预测结果与真实的用电结果进行比较,训练所述网络模型,直至所述网络模型满足精度需求。
[0087]
在训练过程中,可以利用用户在前一时刻的imf分量和所对应的温度和时间,用户在下一时刻的温度和时间,结合其同类用户在前一时刻的用户时间序列和所对应的温度和时间,预测得到用户在下一时刻的用户时间序列,将预测得到的用户时间序列与真实的用户时间序列进行比较,来训练所述网络模型,使得所述网络模型能够达到预测要求;这个过程中,一方面,需要利用网络模型来学习当前用户与其他用户的用电数据之间的关系,另一方面,还需要利用网络模型来学习用电时的温度和时间对用户用电的关系;通过这两方面的结合,使得预测模型不仅充分考虑了用电用户之间关系的特征,也考虑了影响负荷变化的温度因素和时间因素,使得模型预测得到的结果不仅具有可解释性,还提升网络模型的预测精度。
[0088]
s7:将用户的待测imf序列及其同类用户的历史imf序列输入到训练后的网络模型中,得到用户的用电预测结果。
[0089]
在本发明实施例中,对用户的待测用电数据进行预测处理时,只需要对用户的待测用电数据进行eemd分解,而不需要再对其同类用户的用电数据进行eemd分解,将用户的待测imf序列以及同类用户的历史imf序列输入到训练后的网络模型中,该网络模型就可以输出用户的待测用电数据的用电预测结果。
[0090][0091]
其中,表示目标用户a在t+1时刻的用电预测结果即负荷值,是目标用户a在t时刻的imf分量的聚类结果,是与目标用户a的同类c的第n个用户在t时刻的负荷值。
[0092]
因为待测imf序列包含多个分类,所以为了实现并行的cnn-lstm模型预测,需要对预测结果进行综合,即综合公式为:
[0093][0094]
其中,y
out
是综合的预测结果,是第i个imf预测结果,m是imf的数量;t1表示用户在当前的温度,t2表示在当前的时间;f表示用户与温度因素和时间因素的关系函数,该函数通过网络模型的训练迭代过程获得;通过对不同imf序列进行综合,结合用户在当前的温度因素和时间因素;对数据实现标准化的反变,获取最终预测结果。
[0095]
可以理解的是,在本发明实施例中,所述预测方法不仅考虑了能够反映预测序列的趋势,还考虑了直接或间接影响它的其他时间序列的趋势。而时间序列之间的关系可以是“双向的”,即一个时间序列可以同时受到其他几个时间序列的影响,基于这种关系,一方面,本发明利用同类用户的imf序列来互相补充自身用户的imf序列,在对网络模型进行训练时,利用扩展后的用户数据集,保证了网络有效预测的可能性,另一方面,本发明还利用同类用户的imf序列来协作预测待测用电数据,提升了预测结果的准确性。
[0096]
图2是本发明实施例中用户数据集的更新流程示意图,如图2所示,首先,需要输入的用户数据集,其中输入的用户数据集包含n个用户,每个用户在时间段t-m~t+m内的每个时间戳时都有一个负荷值,其次,对输入的用户数据集进行eemd解析,这个过程就能够提取出imf分量,并形成imf序列;再次,再对每级imf序列进行pca降维;然后,再对降维后的imf序列采用k-means聚类,输出更新后的用户数据集,其中输出的用户数据集还是包含n个用户,每个用户特征属于不同级的imf序列的类号,将时间序列转换为imf序列聚类结果。例如,对某个用户时间序进行了分解获取m个imf,即m级imf,其他用户同样也有m个imf。对第m级imf进行聚类获取类号,用户新特征叫做imf m,该特征包含该用户的m级imf类号。
[0097]
图3是本发明实施例中同类用户的数据帧结构示意图,如图3所示,结合同类用户数据,目标用户的用电时间序列移到第一位数据,然后该用户每个imf序列的扩展数据帧,作为扩展数据来训练网络模型;显然,使用聚类分析技术,例如k-means算法,可以将具有相似性的不同用户的时间序列组合成子组。如此一来,我们可以扩展目标用户数据集,即提高预测准确性,并且按照子组群体做出用电预测。此时,按l类编号划分出用户归属于每类的
数据帧,把目标用户的数据在该用户的数据帧中转移到第一位。为了在进一步模型优化,需要对用户的每个imf创建扩展数据帧,即原始的一个数据帧变成imf的数量个数据帧。
[0098]
可以理解的是,当用户出现新数据时,需要对当前用户的新数据提取出imf序列,而不再需要对同类用户的新数据提取出imf序列,只需要将同类用户的新数据结合当前用户的新数据的imf分量输入到训练完成的模型中,即可得到当前用户的用电预测结果;这种方式简化了数据的处理流程,同时也能够提升预测精度。
[0099]
由于一般eemd预测模型不考虑多特征的问题;且应用的神经网络只包括lstm层,没有其他协助提高模型预测效果的能力层。为了解决这些问题,本发明cnn-lstm模型尝试用多个特征来扩展原始数据集,以得到更好的预测效果。图4是本发明实施例中用电预测流程的示意图,如图4所示,将图3的数据帧作为cnn-lstm模型输入,因为有n个数据帧,所以每个数据帧需要单独处理,并单独获取自己的预测结果;最后再将每个预测结果进行组合,得到最终的预测结果。
[0100]
往cnn-lstm模型推动数据帧进行预测。以python的keras为基础,如图5所示,本发明实施例中的网络模型由conv1d和maxpooling1d作为cnn的部分,能够有效提取特征图中的连续数据和非连续数据之间潜在关系形成特征向量;conv1d结构输入(n,c
in
,l)和输出(n,c
out
,l
out
)可以描述:
[0101][0102]
其中
★
是有效的互相关算子,ni是批量大小,c表示特征数量即同类用户数量,l是输入时间序列的长度,kerner_size是卷积核大小,c
in
是输入通道数;是输出结果的偏置;weight表示权重;t1表示用户在当前的温度,t2表示在当前的时间。
[0103]
关于maxpolling1d的输入(n,c,l)和输出(n,c,l
out
)可以描述:
[0104][0105]
其中stride是步长。然后将特征向量以时序序列方式构造并作为输入数据,再采用3个lstm网络层进行短期负荷预测。每一个lstm层计算:
[0106]zt
=g(wzx
t
+r
zyt-1
+bz)输入
[0107]it
=σ(w
ix
x
t
+riy
t-1
+pi⊙ct-1
+bi)输入门
[0108]ft
=σ(w
fx
x
t
+rfy
t-1
+pf⊙ct-1
+bf)遗忘门
[0109]ct
=f
t
⊙ct-1
+i
t
⊙zt
单元状态
[0110]ot
=σ(w
ox
x
t
+r
oyt-1
+pi⊙ct
+bo)输出门
[0111]yt
=o
t
⊙
h(c
t
)输出
[0112]
其中x
t
是时间t的输入向量,w是输入权重矩阵,r是平方循环权重矩阵,p是窥视孔连接权重向量,b是偏置向量。σ是sigmoid函数,
⊙
是hadamard积。
[0113]
因为实现了并行的cnn-lstm模型预测,需要对预测结果进行综合,即综合公式为:
[0114][0115]
其中,y
out
是综合的预测结果,是第i个imf预测结果,m是imf的数量;f表示用户与温度因素和时间因素的关系函数;对数据实现标准化的反变,获取最终预测结果。
[0116]
在本发明的描述中,需要理解的是,术语“同轴”、“底部”、“一端”、“顶部”、“中部”、“另一端”、“上”、“一侧”、“顶部”、“内”、“外”、“前部”、“中央”、“两端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0117]
在本发明中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”、“固定”、“旋转”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0118]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。