发明内容
本发明实施例提供了一种能源负荷短期预测方法、装置、计算机设备及存储介质,旨在解决现有能源负荷短期预测方法预测精度不足的问题。
第一方面,本发明实施例提供一种能源负荷短期预测方法,其包括:
利用组合小波变换对原始能源负荷数据进行分解,获取二阶近似分量、二阶细节分量和一阶细节分量;
获取与能源负荷短期预测相关的外生变量,并将所述外生变量与二阶近似分量、二阶细节分量和一阶细节分量进行结合,得到Arima模型样本集和RNN模型样本集;
利用Arima模型对Arima模型样本集进行学习并得到趋势预测结果;
利用RNN模型对RNN模型样本集进行学习并得到细节预测结果;
将所述趋势预测结果与所述细节预测结果进行综合,得到最终的能源负荷短期预测结果。
优选的,所述组合小波变换包括:双正交小波变换、懒小波变换、多贝西小波变换、哈尔小波变换中的一种或几种。
优选的,所述利用组合小波变换对原始能源负荷数据进行分解,获取二阶近似分量、二阶细节分量和一阶细节分量,包括:
对不同小波变换下得到的原始的二阶近似分量、二阶细节分量和一阶细节分量进行归一化处理;
并对归一化处理后得到的各分量的卡方统计量分别进行比较,获取不同小波变换的权重;
将不同小波变换得到的原始的二阶近似分量,根据其权重进行加权组合得到最终的二阶近似分量;将不同小波变换得到的原始的二阶细节分量,根据其权重进行加权组合得到最终的二阶细节分量;以及将不同小波变换得到的原始的一阶细节分量,根据其权重进行加权组合得到最终的一阶细节分量。
优选的,所述获取与能源负荷短期预测相关的外生变量,并将所述外生变量与二阶近似分量、二阶细节分量和一阶细节分量进行结合,得到Arima模型样本集和RNN模型样本集,包括:
将二阶近似分量与外生变量结合生成Arima模型样本集;
将二阶细节分量、一阶细节分量分别与外生变量结合,分别生成第一RNN模型样本集和第二RNN模型样本集。
优选的,所述利用Arima模型对Arima模型样本集进行学习并预测得到趋势预测结果,包括:
对Arima模型样本集中的样本进行一阶差分处理,再进行平稳性检测,然后进行白噪声检测,然后确定模型参数,最后送入Arima模型进行学习并得到趋势预测结果。
优选的,所述利用RNN模型对RNN模型样本集进行学习并预测得到细节预测结果,包括:
先将第一RNN模型样本集中的样本送入全连接层进行向量调整;
再将调整后的样本送入多层长短时记忆单元进行学习;
然后将学习后的样本送入Softmax层进行输出并利用one-hot向量进行编码得到第一细节预测结果;
以及,先将第二RNN模型样本集中的样本送入全连接层进行向量调整;
再将调整后的样本送入多层长短时记忆单元进行学习;
然后将学习后的样本送入Softmax层进行输出并利用one-hot向量进行编码得到第二细节预测结果。
优选的,所述将所述趋势预测结果与所述细节预测结果进行综合,得到最终的能源负荷短期预测结果,包括:
将趋势预测结果与细节预测结果进行累加,得到最终的预测结果。
第二方面,本发明实施例提供一种能源负荷短期预测装置,其包括:
分解单元,用于利用组合小波变换对原始能源负荷数据进行分解,获取二阶近似分量、二阶细节分量和一阶细节分量;
样本整理单元,用于获取与能源负荷短期预测相关的外生变量,并将所述外生变量与二阶近似分量、二阶细节分量和一阶细节分量进行结合,得到Arima模型样本集和RNN模型样本集;
Arima模型处理单元,用于利用Arima模型对Arima模型样本集进行学习并得到趋势预测结果;
RNN模型处理单元,用于利用RNN模型对RNN模型样本集进行学习并得到细节预测结果;
结果综合单元,用于将所述趋势预测结果与所述细节预测结果进行综合,得到最终的能源负荷短期预测结果。
第三方面,本发明实施例提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的能源负荷短期预测方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如第一方面所述的能源负荷短期预测方法。
本发明实施例提供了一种能源负荷短期预测方法、装置、计算机设备及存储介质,其中,该方法包括:利用组合小波变换对原始能源负荷数据进行分解,获取二阶近似分量、二阶细节分量和一阶细节分量;获取与能源负荷短期预测相关的外生变量,并将所述外生变量与二阶近似分量、二阶细节分量和一阶细节分量进行结合,得到Arima模型样本集和RNN模型样本集;利用Arima模型对Arima模型样本集进行学习并得到趋势预测结果;利用RNN模型对RNN模型样本集进行学习并得到细节预测结果;将所述趋势预测结果与所述细节预测结果进行综合,得到最终的能源负荷短期预测结果。本发明实施例提高了能源负荷短期预测的预测精度。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明实施例提供的一种能源负荷短期预测方法的流程示意图,包括步骤S101~S105:
S101、利用组合小波变换对原始能源负荷数据进行分解,获取二阶近似分量、二阶细节分量和一阶细节分量;
在一实施例中,所述组合小波变换包括:双正交小波变换、懒小波变换、多贝西小波变换、哈尔小波变换中的一种或几种。
所述原始能源负荷数据是指所要预测的领域的历史数据,例如对于电力领域,所述原始能源负荷数据则是指电力负荷的历史数据。
在一实施例中,利用组合小波变换对原始能源负荷数据进行分解,获取二阶近似分量、二阶细节分量和一阶细节分量,包括:
对不同小波变换下得到的原始的二阶近似分量、二阶细节分量和一阶细节分量进行归一化处理;
并对归一化处理后得到的各分量的卡方统计量分别进行比较,获取不同小波变换的权重;
将不同小波变换得到的原始的二阶近似分量,根据其权重进行加权组合得到最终的二阶近似分量;将不同小波变换得到的原始的二阶细节分量,根据其权重进行加权组合得到最终的二阶细节分量;以及将不同小波变换得到的原始的一阶细节分量,根据其权重进行加权组合得到最终的一阶细节分量。
上述实施例中,需要确定小波变换的权重,本实施例是对不同种类小波变换得到的分量进行归一化处理,并比较卡方统计量,从而得到不同小波变换的权重,通过综合不同小波变换的权重与对应的分量,即可获得信号最陡峭、趋势规律最明显的二阶近似分量、二阶细节分量和一阶细节分量。
具体的,可以利用双正交小波变换、懒小波变换、多贝西小波变换、哈尔小波变换对原始能源负荷数据进行分解,分解阶数均为2,这样得到4组由二阶低频系数、二阶高频系数、一阶高频系数组合的3维列表,之后对其中的每一个系数进行重构,可以获得4组由二阶近似变量、二阶细节变量、一阶细节变量组合而成的列表,这4组变量分别对应一种小波变换。原始能源负荷数据满足以下关系式:
y=ya2i+yd2i+yd1j|i=1,2,3,4
式中,y表示原始能源负荷数据(也可称原始能源负荷信号),右下角标i表示小波变换的类型,编号1、2、3、4分别对应双正交小波、懒小波、多贝西小波、哈尔小波,ya2i、yd2i、yd1i分别表示分解得到每一组的二阶近似变量、二阶细节变量、一阶细节变量。通过对几种小波变换结果进行组合加权获得最终的分解信号如下:
式中,W
i表示编号为i的小波变换的权重,并且W
i>0,i=1,2,3,4,满足
表示二阶近似分量,
表示二阶细节分量,
表示一阶细节分量。
S102、获取与能源负荷短期预测相关的外生变量,并将所述外生变量与二阶近似分量、二阶细节分量和一阶细节分量进行结合,得到Arima模型样本集和RNN模型样本集;
能源负荷短期预测不仅和历史数据有关,还受到多种外在因素的影响。
以能源领域为例,从能源公司实际预测任务出发,整理易获取的、相关性最大的影响因素,为原始能源负荷数据添加对应时间的外生变量:最高气温、最低气温、雨雪等级、是否晴天、是否供暖、是否工作日、是否元旦、是否过年、是否清明、是否五一、是否端午节、是否中秋节、是否国庆节、节假日前夕、节假日刚过。通过分析多年多个城市的数据可得节假日对能源日负荷影响较大,且不同节日类型影响幅度差异较大,于是将不同节假日的类型区别开来,同时发现节假日前后能源日负荷均存在过渡而非跳变现象,也可考虑将节假日前后也作为可学习的特征。
在一实施例中,所述获取与能源负荷短期预测相关的外生变量,并将所述外生变量与二阶近似分量、二阶细节分量和一阶细节分量进行结合,得到Arima模型样本集和RNN模型样本集,包括:
将二阶近似分量与外生变量结合生成Arima模型样本集;
此步骤可将指定周期的外生变量与连续多个周期内的二阶近似分量进行结合,生成Arima模型样本集,例如以周期为日为例,将当日(即T日)外生变量与昨日(即T-1日)二阶近似分量组合在一起,将当日(即T日)外生变量与前日(即T-2日)二阶近似分量组合在一起,并按照同样方式组合连续多个周期的数据,生成Arima模型样本集。其中的指定周期是指所预测的周期,例如以周期为日为例,指定周期可以是当前周期,即当日,其含义是预测当日的数据。其中的连续多个周期是指指定周期之前的历史数据。当然,所述指定周期也可以是小时等其他设定的时间段。
将二阶细节分量、一阶细节分量分别与外生变量结合,分别生成第一RNN模型样本集和第二RNN模型样本集。
此步骤可将指定周期的外生变量与连续多个周期内的二阶细节分量进行结合,以及将指定周期的外生变量与连续多个周期内的一阶细节分量进行结合,从而分别生成第一RNN模型样本集和第二RNN模型样本集。
例如以周期为日为例,将当日(即T日)外生变量与昨日(即T-1日)二阶细节分量组合在一起,将当日(即T日)外生变量与前日(即T-2日)二阶细节分量组合在一起,并按照同样方式组合连续多个周期的数据,生成第一RNN模型样本集。
将当日(即T日)外生变量与昨日(即T-1日)一阶细节分量组合在一起,将当日(即T日)外生变量与前日(即T-2日)一阶细节分量组合在一起,并按照同样方式组合连续多个周期的数据,生成第二RNN模型样本集。
S103、利用Arima模型对Arima模型样本集进行学习并得到趋势预测结果;
本步骤是利用Arima模型来学习得到趋势预测结果。
在一实施例中,所述利用Arima模型对Arima模型样本集进行学习并得到趋势预测结果,包括:
对Arima模型样本集中的样本进行一阶差分处理,再进行平稳性检测,然后进行白噪声检测,然后确定模型参数,最后送入Arima模型进行学习并得到趋势预测结果。
首先对Arima模型样本集中的样本进行一阶差分处理得到一阶差分信号,然后进行平稳性检测和白噪声检测,这不仅要求时间序列的部分统计特性如一阶期望、二阶方差保持不变,还要求时间序列的时间相关性保持不变,未来某时刻的值需要依赖于历史信息存在。对于圆滑的二阶近似分量来说,其一阶差分信号满足上述要求。之后可绘制差分数据的自相关函数和偏自相关函数图,通过截尾、拖尾现象确定模型的参数,如移动平均阶数和自回归阶数。最后将样本送入Arima模型中进行训练。考虑到城市企业规模,用户数量可能逐年增长,能源负荷变化趋势在长时间跨度下会发生改变,所以将训练方式设为滚动训练,即不断扩充真实数据的同时舍弃掉早期数据。
Arima模型(Autoregressive Integrated Moving Average model),指差分整合移动平均自回归模型,又称整合移动平均自回归模型(移动也可称作滑动)。Arima模型(p,d,q)中,AR是"自回归",p为自回归项数;MA为"滑动平均",q为滑动平均项数,d为使之成为平稳序列所做的差分次数(阶数)。
S104、利用RNN模型对RNN模型样本集进行学习并得到细节预测结果;
本步骤是利用RNN模型来学习得到细节预测结果。RNN模型(Recurrent NeuralNetwork),是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络。
在一实施例中,所述利用RNN模型对RNN模型样本集进行学习并得到细节预测结果,包括:
先将第一RNN模型样本集中的样本送入全连接层进行向量调整;
再将调整后的样本送入多层长短时记忆单元进行学习;
然后将学习后的样本送入Softmax层进行输出并利用ont-hot向量进行编码得到第一细节预测结果;
以及,先将第二RNN模型样本集中的样本送入全连接层进行向量调整;
再将调整后的样本送入多层长短时记忆单元进行学习;
然后将学习后的样本送入Softmax层进行输出并利用one-hot向量进行编码得到第二细节预测结果。
结合图2所示,第一RNN模型样本集和第二RNN模型样本集中的样本需要输入多层长短时记忆单元(LSTM,Long and Short Term Memory)进行学习,在样本输入多层长短时记忆单元前,先将样本送入全连接层进行向量调整,即将样本以不同步长下的特征向量的形式送入全连接层,这是为了增强网络的自我调节能力,将输入向量调整为网络易于识别利用的特征。需要注意的是分解得到的细节分量(即二阶细节分量和一阶细节分量)有两类,所以使用两套相同的网络框架分别对这两类细节信息进行训练学习。
由于本实施例需要解决的是能源负荷时间序列预测问题,相对回归网络来说,本实施例中RNN模型优选采用分类网络。一方面考虑到回归问题解的数量是无限的,而分类问题解的数量是有限的,回归网络的训练难度远大于分类网络,训练准确度远低于分类网络。另一方面考虑到一阶细节分量和二阶细节分量的取值范围幅度一般不到二阶近似分量的1/5,使用千量级的分类便可以满足最终预测精度的要求。
关于标签制作问题,则将原始能源负荷数据中的细节信息归类并制作成one-hot向量形式,其中不同类别表示不同的流量区间范围。one-hot向量是将类别变量转换为网络易于学习的一种向量形式,通常形式为{0,0,0,...,1,...0},其中只有一个特征位置为‘1’表示具体的类别,长度则由类别数量决定。为实现上述目的最终输出层选用softmax层,利用one-hot向量进行编码,训练损失函数选用交叉熵函数。交叉熵函数可以衡量两个概率分布的相似性,应用交叉熵函数的情况下,使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。
S105、将所述趋势预测结果与所述细节预测结果进行综合,得到最终的能源负荷短期预测结果。
在一实施例中,所述将所述趋势预测结果与所述细节预测结果进行综合,得到最终的能源负荷短期预测结果,包括:
将趋势预测结果与细节预测结果进行累加,得到最终的预测结果。
本发明实施例针对能源负荷存在明显的低频变化趋势规律和高频细节抖动信息,利用组合小波变换和卡方统计量计算权重的方式对原始能源负荷数据进行分解,获取近似分量和细节分量,并从实际预测任务出发,分析外在影响因素,整理易获取的相关性较大的外生变量。这样做一方面降低了信号分析的难度,另一方面为预测提供了更多的可控数据保障。
针对近似分量满足时间相关性的特点,同时其一阶差分信号具备平稳、非白噪声特性,采用Arima模型对其趋势变化规律进行学习。针对细节分量幅度小、频率高、波动大、非线性、受外在因素影响大的特点,基于RNN模型制作细节分量与外生变量的样本集,并使用分类网络代替传统回归网络实现最终预测目的。这样既可以保证时间序列的深度表达和刻画,又充分发挥了不同方法在处理不同特点的信号上的优势。本发明实施例在整体预测精度上具有明显的改善。
结合图3所示,下面以能源负荷短期预测为例进行具体的举例说明。
原始能源日负荷数据(即原始能源日负荷信号)时间长度在5年以上,与每日能源负荷数据相对应的外生变量则通过python爬虫程序爬取得到。
S1:使用基于卡方统计量的组合小波变换分解原始能源日负荷信号,这里利用python第三方库pywt实现每一种类型的小波变换。首先利用不同的小波基函数分解训练时间段的训练数据,分解阶数选为2,可得到多组三维小波系数列表,再将三维列表分别点乘[1,0,0]、[0,1,0]、[0,0,1]后进行重构,获取不同小波变换的分解结果。之后计算它们的近似变量归一化处理后的卡方统计量,这里的归一化是指最值归一化,即将所有数据映射到0-1区间,卡方统计量即指如下检验统计量:
比较不同卡方统计量的大小以确定不同小波变换占最终分解重构结果的比重,相乘累加后可获得原始能源日负荷信号的二阶近似分量、二阶细节分量、一阶细节分量,结合图4a-4d。需要注意的是数据若存在异常值需要做异常值处理。
S2:整理与能源负荷短期预测相关性最大的外生变量。python爬取得到的天气、温度、节假日数据以excel表格形式进行存储,但这些数据并非最终数学模型可用的形式且存在异常值,这里利用python第三方库pandas完成数据清洗工作,数据类型为DataFrame。通过对数据部分抽取查看,发现极小部分数据存在缺失、重复、异常值情况,于是进行去重及缺失值、异常值填充操作,其中填充策略选用‘ffill’,即用前一天该属性的值填充。接下来将能源日负荷、外生变量的索引统一为相同格式的日期,并以能源日负荷数据为基准实现合并,之后将节假日、天气属性整理为one-hot形式。关于供热则根据不同城市不同年份的供热起始、终止日期添加是否供热新属性。
S3:利用Arima模型学习日负荷变化趋势规律。首先进行一阶差分处理得当一阶差分信号,然后检验一阶差分信号是否满足时间相关性,此过程需要利用平稳性检测和白噪声检测来完成。图5展示了其一阶差分信号的期望和方差,滑动窗大小取为7,从图5中可以看出一阶差分信号的期望和方差变化不大,之后利用python的统计工具箱statsmodels.tsa.stattools中的adfuller函数对一阶差分信号的平稳性做量化评价,可进一步说明一阶差分信号满足平稳性条件,关于白噪声检测则使用acorr_ljungbox函数完成,可证明一阶差分信号不是白噪声序列。接下来绘制一阶差分信号的偏自相关函数和自相关函数,可发现它们分别存在明显的1阶拖尾和2阶截尾,从而确定Arima模型的模型阶数为(1,1,2)。最后将Arima模型样本集中的样本统一送入Arima模型,得到二阶近似分量的最优线性预测模型,图6展示了二阶近似分量的预测曲线和实际曲线。
S4:利用RNN模型学习日负荷的波动细节信息。利用pandas(提供了大量能快速便捷地处理数据的函数和方法)工具包,将日期作为数据索引,升序排列,将昨日能源负荷细节信息(包括二阶细节分量和一阶细节分量)和当日外生变量作为每一行的数据内容,并把这样的数据以excel表格形式输出,可得到细节信息的数据集。接下来以某城市为例,抽取excel连续30行的数据作为一个样本集,同时能源数据的时间跨度在5年以上,可以保证训练集容量在1300左右,测试集容量在500左右。之后基于tensorflow-gpu框架搭建神经网络模型,根据输入、输出的尺寸设计网络层数和尺寸,并利用可视化工具tensorboard(可视化tensorflow模型的训练过程的工具,能够有效地展示tensorflow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息)检验网络是否正确搭建,设置超参数并开始训练,其中超参数包括学习率、正则化参数、批量训练尺寸、训练回合数、损失函数、激活函数、权重初始化。最终利用训练好的RNN模型完成预测工作,预测结果如图7a和7b所示。
步骤五:将Arima模型的预测结果和RNN模型的预测结果累加到一起并与实际的能源日负荷数据(即能源日负荷信号)加以比较,如图8所示,从图8中可以看出预测曲线高度逼近真实曲线,预测误差可控制在1.5%以内,这表明本发明实施例预测方法具有较好的预测精度。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。