一种全自动用电量预测方法及其系统转让专利

申请号 : CN202010335770.7

文献号 : CN111667377B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 席云华廖敏瑜董楠朱浩骏杜兆斌蒙文川黎立丰肖天颖孙思扬饶志姜颖达杨少瑞

申请人 : 南方电网能源发展研究院有限责任公司

摘要 :

本发明公开了一种全自动用电量预测方法,包括:对历史用电量时间序列预处理,获得历史用电数据;采用Boosted HP滤波器对历史用电数据进行分解,获得趋势项和循环项;根据趋势项的数据确定Auto ARIMA模型的参数,以获得趋势项的预测模型;根据循环项的数据对seq2seq模型进行训练,以获得循环项的预测模型;将趋势项的预测模型的预测结果和循环项的预测模型的预测结果叠加,获得用电量预测模型;用电量预测模型用于预测用电量。本发明仅利用历史用电量数据本身,而不需要依赖外源数据;所采用的HP滤波器、Auto滤波器和seq2seq模型都可以预先设定参数或自适应学习参数,而不需要人为再根据数据来设置参数;本发明相较于传统模型在预测精度上有较大的提升,且使用方便。

权利要求 :

1.一种全自动用电量预测方法,其特征在于,包括:对历史用电量时间序列预处理,获得历史用电数据;

采用Boosted HP滤波器对所述历史用电数据进行分解,获得趋势项和循环项;

根据所述趋势项的数据确定Auto ARIMA模型的参数,以获得预测所述趋势项的Auto ARIMA模型;其中,步骤具体为:输入所述趋势项的数据;

设定迭代搜索的参数范围;其中,模型差分阶数d的最大值为dmax,自回归项数p的最大值和最小值分别为Pmin,Pmax,以及滑动平均项数q的最大值和最小值分别为qmin,qmax;

将区间[pmin,Pmax],[0,dmax]和[qmin,qmax]的整数集的笛卡尔积,所形成的一系列结果(p,d,q)作为待检验的ARIMA模型的阶数组合;其中,所述ARIMA模型的阶数组合数为(pmax-pmin+1)×(dmax+1)×(qmax-qmin+1);

根据最小化AIC准则或者BIC准则确定最优的ARIMA模型的阶数(p,d,q),以获得预测所述趋势项的Auto ARIMA模型;

根据所述循环项的数据对seq2seq模型进行训练,以获得预测所述循环项的seq2seq模型;

将所述Auto ARIMA模型预测的趋势项和所述seq2seq模型预测的循环项叠加,获得用电量预测模型;所述用电量预测模型用于预测用电量。

2.根据权利要求1所述的全自动用电量预测方法,其特征在于,所述的采用Boosted HP滤波器对所述历史用电数据进行分解,获得趋势项和循环项,包括:根据最优迭代模型对所述历史用电数据Y进行HP滤波分解,获得首次分解的趋势项和循环项;

再次对所述首次分解的循环项进行HP滤波分解,获得二次分解的趋势项和循环项;

以此类推,重复对最后一次HP滤波器后的循环项做HP滤波分解,最终获得所述趋势项Trend和所述循环项Cycle;其中,最终的所述趋势项为Trend={t1,t2,...,tN},最终的所述循环项为Cycle={c1,c2,...,cN};

其中,所述历史用电数据为Y={y1,y2,...,yN},第i次HP滤波器后的趋势项为第i次HP滤波器后的循环项为 其中N为历史用电数据长度,所述最优迭代模型为:Cycle(i)=Cycle(i-1)-Trend(i),i=1,2,3,...,M其中,Cycle(0)=Y,Δft=ft-ft-1,Δ2ft=Δft-Δft-1=ft-2ft-1+ft-2;最大迭代次数M根据最小化BIC准则或者设定为一个固定值来确定;λ≥0用于控制光滑性的调整参数。

3.根据权利要求1所述的全自动用电量预测方法,其特征在于,所述的根据所述循环项的数据对seq2seq模型进行训练,以获得预测所述循环项的seq2seq模型,包括:输入所述循环项的数据,并在所述循环项的数据上自适应添加随机噪声,以获得添加随机噪声的循环项;

Noisefactor=A×max(abs(Cycle))Train_cyclet,i=Cyclet+Noisefactor×Randomi其中,A表示随机噪声程度,A<1;Randomi是服从标准正态分布N(0,1)且取值在区间[-

1,1]范围的随机数;cyclet是在t时刻循环项的原始值,Train_cycle(t,i)是添加随机噪声的循环项值;

根据添加随机噪声的循环项所生成的训练数据,通过所述seq2seq模型的Encoder-Decoder框架构建判别概率p(Pred_cycle|Train_cycle),并通过概率条件分解所述判别概率,得到以下公式:

其中,所述概率条件分解的每一项都是由Softmax函数建模,所述Softmax函数所含参数由所述seq2seq模型的Encoder-Decoder框架确定;

根据输入序列的信息最大化目标输出序列的概率,获得所述seq2seq模型的的损失函数:

其中,Nums是训练样本量;

根据反向传播的原理,通过梯度下降的Adam方法来最小化损失函数,获得最优的seq2seq模型,以获得预测所述循环项的seq2seq模型。

4.一种全自动用电量预测系统,其特征在于,包括:历史用电数据获取模块,用于对历史用电量时间序列预处理,获得历史用电数据;

分解模块,用于采用Boosted HP滤波器对所述历史用电数据进行分解,获得趋势项和循环项;

趋势项的预测模型获取模块,用于根据所述趋势项的数据确定Auto ARIMA模型的参数,以获得预测所述趋势项的Auto ARIMA模型;其中,所述趋势项的预测模型获取模块,具体用于:

输入所述趋势项的数据;

设定迭代搜索的参数范围;其中,模型差分阶数d的最大值为dmax,自回归项数p的最大值和最小值分别为pmin,pmax,以及滑动平均项数q的最大值和最小值分别为qmin,qmax;

根据区间[pmin,pmax],[0,dmax]和[qmin,qmax]的整数集的笛卡尔积,形成的一系列结果(p,d,q)作为待检验的ARIMA模型的阶数组合;其中,所述ARIMA模型的阶数组合数为(pmax-pmin+1)×(dmax+1)×(qmax-qmin+1);

根据最小化AIC准则或者BIC准则确定最优的ARIMA模型的阶数(p,d,q),以获得预测所述趋势项的Auto ARIMA模型;

循环项的预测模型获取模块,用于根据所述循环项的数据对seq2seq模型进行训练,以获得预测所述循环项的seq2seq模型;

用电量预测模型获取模块,用于将所述Auto ARIMA模型预测的趋势项和所述seq2seq模型预测的循环项叠加,获得用电量预测模型;所述用电量预测模型用于预测用电量。

5.根据权利要求4所述的全自动用电量预测系统,其特征在于,所述分解模块还用于:根据最优迭代模型对所述历史用电数据Y进行HP滤波分解,获得首次分解的趋势项和循环项;

再次对所述首次分解的循环项进行HP滤波分解,获得二次分解的趋势项和循环项;

以此类推,重复对最后一次HP滤波器后的循环项做HP滤波分解,最终获得所述趋势项Trend和所述循环项Cycle;其中,最终的所述趋势项为Trend={t1,t2,...,tN},最终的所述循环项为Cycle={c1,c2,...,cN};

其中,所述历史用电数据为Y={y1,y2,...,yN},第i次HP滤波器后的趋势项为第i次HP滤波器后的循环项为

其中N为历史用电数据长度,所述最优迭代模型为:Cycle(i)=Cycle(i-1)-Trend(i),i=1,2,3,...,M其中,Cycle(0)=Y,Δft=ft-ft-1,Δ2ft=Δft-Δft-1=ft-2ft-1+ft-2;最大迭代次数M根据最小化BIC准则或者设定为一个固定值来确定;λ≥0为用于控制光滑性的调整参数。

6.根据权利要求4所述的全自动用电量预测系统,其特征在于,所述循环项的预测模型获取模块还用于:

输入所述循环项的数据,并在所述循环项的数据上自适应添加随机噪声,以获得添加随机噪声的循环项;

Noisefactor=A×max(abs(Cycle))Train_cyclet,i=Cyclet+Noisefactor×Randomi其中,A表示随机噪声程度,A<1;Randomi是服从标准正态分布N(0,1)且取值在区间[-

1,1]范围的随机数;cyclet是在t时刻循环项的原始值,Train_cycle(t,i)是添加随机噪声的循环项值;

根据添加随机噪声的循环项所生成的训练数据,通过所述seq2seq模型的Encoder-Decoder框架构建判别概率p(Pred_cycle|Train_cycle),并通过概率条件分解所述判别概率,得到以下公式:

其中,概率条件分解的每一项都是由Softmax函数建模,所述Softmax函数所含参数由所述seq2seq模型的Encoder-Decoder框架确定;

根据输入序列的信息最大化目标输出序列的概率,获得所述seq2seq模型的的损失函数:

其中,Nums是训练样本量;

根据反向传播的原理,通过梯度下降的Adam方法来最小化损失函数,获得最优的seq2seq模型,以获得预测所述循环项的seq2seq模型。

7.一种计算机终端设备,其特征在于,包括:一个或多个处理器;

存储器,与所述处理器耦接,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至3任一项所述的全自动用电量预测方法。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3任一项所述的全自动用电量预测方法。

说明书 :

一种全自动用电量预测方法及其系统

技术领域

[0001] 本发明涉及用电量测量技术领域,尤其涉及一种全自动用电量预测方法及全自动用电量预测系统。

背景技术

[0002] 电力系统是一个复杂的实时动态系统,涉及发电、输电、配送电,以及调度管理等主要环节;其中,用电量需求预测是电力系统调度的一个重要环节。为了缓解用电量的供需
之间的矛盾,准确地进行用电量需求预测能够合理地实行电力规划和能源配置、提高供电
效率,进而促进区域的经济发展。
[0003] 经典的关于行业用电量需求的预测方法主要包括回归模型预测以及时间序列预测两大方向。其中,回归模型预测构建用电量需求与外源数据,例如宏观经济GDP、气温、电
能替代物、常住居民等的关系,从而得到线性乃至非线性模型,例如多元线性回归预测,BP
神经网络预测,支持向量回归预测等;时间序列预测模型仅利用了数据自身的趋势、周期等
规律对数据进行预测,例如处理平稳序列的ARMA模型,以及处理非平稳序列的ARIMA模型。
随着现在人工智能的发展,有很多技巧学习的方法,例如xgboost,随机森林,seq2seq等模
型也逐渐地引入行业用电量需求的预测中。
[0004] 虽然有许多方法可用于用电量需求预测,但是各有优缺点。例如,回归模型往往需要依赖外源数据,但是这些数据需要人力物力采集,且数据本身可能存在一些杂质,数据处
理复杂,需要专业人士做预处理;另一方面,回归模型通常是建立用电量与同期变量的关
系,但是同期变量其自身数据也是难以预测的,因此通过同期变量来预测用电量是不现实、
不准确的。而传统的时间预测模型ARIMA本质上是线性模型,其在处理光滑、且规律性好的
时间序列能够得到很好的效果,但是在处理规律性较差的时间序列却得不到好的效果。
[0005] 基于以上分析,如何有效地预测供电量,是本领域技术人员需要解决的技术问题。

发明内容

[0006] 本发明目的在于,提供一种全自动用电量预测方法及全自动用电量预测系统,能够解决因目前用电量需求的预测方法存在的数据处理复杂、预测不准确、处理效果不好的
问题。
[0007] 本发明实施例提供的一种全自动用电量预测方法,包括:
[0008] 对历史用电量时间序列预处理,获得历史用电数据;
[0009] 采用Boosted HP滤波器对所述历史用电数据进行分解,获得趋势项和循环项;
[0010] 根据所述趋势项的数据确定Auto ARIMA模型的参数,以获得所述趋势项的预测模型;
[0011] 根据所述循环项的数据对seq2seq模型进行训练,以获得所述循环项的预测模型;
[0012] 将所述趋势项的预测模型的预测结果和所述循环项的预测模型的预测结果叠加,获得用电量预测模型;所述用电量预测模型用于预测用电量。
[0013] 本发明实施例提供的全自动用电量预测系统,包括:
[0014] 历史用电数据获取模块,用于对历史用电量时间序列预处理,获得历史用电数据;
[0015] 分解模块,用于采用Boosted HP滤波器对所述历史用电数据进行分解,获得趋势项和循环项;
[0016] 趋势项的预测模型获取模块,用于根据所述趋势项的数据确定Auto ARIMA模型的参数,以获得所述趋势项的预测模型;
[0017] 循环项的预测模型获取模块,用于根据所述循环项的数据对seq2seq模型进行训练,以获得所述循环项的预测模型;
[0018] 用电量预测模型获取模块,用于将所述趋势项的预测模型的预测结果和所述循环项的预测模型的预测结果叠加,获得用电量预测模型;所述用电量预测模型用于预测用电
量。
[0019] 本发明实施例提供的计算机终端设备,包括一个或多个处理器和存储器。存储器与所述处理器耦接,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个
处理器执行,使得所述一个或多个处理器实现如上述实施例所述的全自动用电量预测方
法。
[0020] 本发明实施例提供的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例所述的全自动用电量预测方法。
[0021] 本实施例的全自动用电量预测方法中,由于外源数据在采集上,仅利用历史用电量数据本身,而不需要依赖外源数据。而且,该方法所采用的HP滤波器、Auto滤波器和
seq2seq模型都可以预先设定参数或自适应学习参数,而不需要人为再根据数据来设置参
数。再有,本发明设计思路清楚,且提出的方法相较于传统模型在预测精度上有较大的提
升,且使用方便,可推广到其他行业的时间序列数据的预测上,具有较强的推广性和实用
性。

附图说明

[0022] 为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普
通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023] 图1是本发明某一实施例提供的全自动用电量预测方法的流程示意图;
[0024] 图2是本发明某一实施例提供的全自动用电量预测方法的流程示意图;
[0025] 图3是本发明某一实施例提供的全自动用电量预测方法的流程示意图;
[0026] 图4是本发明某一实施例提供的全自动用电量预测方法的流程示意图;
[0027] 图5是本发明某一实施例提供的全自动用电量预测方法的流程示意图;
[0028] 图6是本发明某一实施例提供的时间序列—某省月度居民用电量曲线图;
[0029] 图7(a)是本发明某一实施例提供的Boosted HP滤波器分解的Trend曲线示意图;
[0030] 图7(b)是本发明某一实施例提供的Boosted HP滤波器分解的Cycle曲线示意图;
[0031] 图8是本发明某一实施例提供的利用Auto ARIMA模型对趋势项Trend预测的Pred_Trend曲线图;
[0032] 图9是本发明某一实施例提供的利用seq2seq模型对循环项Cycle预测的Pred_Cycle曲线图;
[0033] 图10是本发明某一实施例提供的利用全自动用电量预测方法对用电量数据预测的Pred曲线图;
[0034] 图11是本发明某一实施例提供的全自动用电量预测系统的结构示意图;
[0035] 图12是本发明某一实施例提供的计算机终端设备的结构示意图。

具体实施方式

[0036] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0037] 应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
[0038] 应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文
清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0039] 术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0040] 术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0041] 请参阅图1,本发明实施例提供一种全自动用电量预测方法。该方法包括以下步骤:
[0042] S10、对历史用电量时间序列预处理,获得历史用电数据。
[0043] 由于统计报表中的月度居民用电量数据在前期是人工采集,存在延误等现象,即人工采集的数据并不是自然月的实际用电量。因此需要统计报表中的数据根据实际情况做
调整,使得历史用电数据更加符合实际情况。
[0044] 需要特别强调,数据预处理之后,后续预测时找到的规律才会更加符合实际情况,具有更高的应用价值。现在,随着智能电表的推广,统计报表中的数据也更加符合实际情
况,因此后期的数据不需要做调整。
[0045] 本实施例中,根据实际情况对历史用电量时间序列预处理,使得历史用电数据更加符合实际情况。预处理后的用电量序列简记为历史用电数据Y={y1,y2,…,yN}。
[0046] S20、采用Boosted HP滤波器对所述历史用电数据进行分解,获得趋势项和循环项。
[0047] 本实施例中,将HP滤波器与提升算法结合起来,使得不需要人为设置调整参数。
[0048] 其中,Hodrick-Prescott(HP)滤波器是一种常见的时间序列分解方法。HP滤波器在捕获各种形式的潜在趋势行为的能力的关键因素在于调整参数λ的选择以及根据其相对
于样本大小的渐进行为实现控制。HP滤波器依赖于控制平滑程度的调整参数λ,但是不同的
序列需要不同的调整参数λ,因此选择一个合适的调整参数λ是HP滤波器的难点。为此,本实
施例在S20中利用改进的Boosted HP滤波器,由Peter等人在文献《Boosting:Why you Can 
Use the HP Filter》提出,是HP滤波器与机器学习的提升算法的有效融合。Boosted HP滤
波器的核心想法是通过重复地对循环项(残差项)滤波,从而实现提升的滤波效果,而且也
不需要人为设置调整系数λ。
[0049] 本实施例中,记历史用电数据为Y={y1,y2,…,yN},HP滤波器后的趋势项为Trend={t1,t2,…,tN},第i次HP滤波器后的循环项(残差项)为Cycle(i)={c1,c2,…,cN},其中N为
历史用电数据长度,则三者的关系为:
[0050] Y=Trend+Cycle
[0051] 请参阅图2,在某一个实施例中,步骤S20中,所述的采用Boosted HP滤波器对所述历史用电数据进行分解,获得趋势项和循环项,包括以下子步骤:
[0052] S21、根据最优迭代模型对所述历史用电数据Y进行HP滤波分解,获得首次分解的趋势项和循环项;
[0053] S22、再次对所述首次分解的循环项进行HP滤波分解,获得二次分解的趋势项和循环项;
[0054] S23、以此类推,重复对所述最后一次HP滤波器后的循环项做HP滤波分解,最终获得所述趋势项Trend和所述循环项Cycle;其中,最终的所述趋势项为Trend={t1,t2,…,
tN},最终的所述循环项为Cycle={c1,c2,…,cN};
[0055] 其中,所述历史电量数据为Y={y1,y2,…,yN},第i次HP滤波器后的趋势项为第i次HP滤波器后的循环项为 其中
N为历史用电数据长度,所述最优迭代模型为:
[0056]
[0057] Cycle(i)=Cycle(i-1)-Trend(i),i=1,2,3,…,M
[0058] 其中,Cycle(0)=Y,Δft=ft-ft-1,Δ2ft=Δft-Δft-1=ft-2ft-1+ft-2和λ≥0用于控制光滑性的调整参数;最大迭代次数M根据最小化BIC准则或者设定为一个固定值来确定。
[0059] S30、根据所述趋势项的数据确定Auto ARIMA模型的参数,以获得所述趋势项的预测模型。
[0060] 针对趋势项Trend的预测问题,由于其光滑性和规则性都较好,因此理论上,经典的时间序列方法ARIMA方法能够很好地预测趋势项Trend。然而,ARIMA需要人们直接观看序
列的图像来确定序列是否平稳,从而确定差分的阶数d;然后再通过差分序列之后的自相关
系数图(ACF)来确定移动平均模型(MA)的阶数q,以及通过偏自相关系数图(PACF)来确定自
回归模型(AR)的阶数p。但是阶数的调整是较为繁琐且需要专业人士才能较好地处理,因
此,为了让本实施例中的用电量预测模型能够自动预测,本实施例采用不需要人为设定阶
数的Auto ARIMA模型来预测趋势项Trend。
[0061] 请参阅图3,在某一个实施例中,步骤S30中,所述的根据所述趋势项的数据确定Auto ARIMA模型的参数,以获得所述趋势项的预测模型,包括以下子步骤:
[0062] S31、输入所述趋势项的数据;
[0063] S32、设定迭代搜索的参数范围;其中,模型差分阶数d的最大值为dmax,自回归项数p的最大值和最小值分别为pmin,pmax,以及滑动平均项数q的最大值和最小值分别为qmin,
qmax;
[0064] S33、将区间[pmin,pmax],[0,dmax]和[qmin,qmax]的整数集的笛卡尔积,所形成的一系列结果(p,d,q)作为待检验的ARIMA模型的阶数组合;其中,所述ARIMA模型的阶数组合数为
(pmax-pmin+1)×(dmax+1)×(qmax-qmin+1);
[0065] S34、根据最小化AIC准则或者BIC准则确定最优的ARIMA模型的阶数(p,d,q),以获得所述趋势项的预测模型。
[0066] 其中,AIC准则,即赤池信息准则,在模型的表达力(拟合程度L)和模型复杂度(参数量k)之间折中,其具体公式为:
[0067] AIC=-2ln(L)+2k
[0068] BIC准则,即贝叶斯信息准则,加大了对模型复杂度的惩罚,也是在模型的表达力(拟合程度L)和模型复杂度(参数量k和样本量n)之间折中,其具体公式为:
[0069] BIC=-2ln(L)+kln(n)
[0070] 其中,最大似然函数是L反映了真实值Trend与ARIMA预测值之间的距离;模型的参数量为k=p+q,样本量n=N。
[0071] 本实施例中,由于Auto ARIMA模型可以自动尝试不同阶数组合,并挑选出局部最优的预测模型,而不需要通过查看序列的ACF/PACF图来定阶。Auto ARIMA模型在处理光滑
且规律性较好的模型的效果更佳,因此本实施例用其来预测趋势项,效果好且自动化程度
高。
[0072] S40、根据所述循环项的数据对seq2seq模型进行训练,以获得所述循环项的预测模型。
[0073] 针对循环项Cycle的预测问题,虽然其规律性差,但是其并不是随机序列,因此还是有必要对其做预测的。但是由于其规律性差,因此不宜采用传统的ARIMA模型对其做预
测。由于深度模型是高度非线性的,能够有效地学习和表达输入与输出数据之间的关系,因
此,本实施例将采用深度模型来学习Cycle模型。根据经验,应该要根据过去的几年序列数
据来预测下一年的数据是比较合理的,且一般的待预测用电量数据是季度数据、月度数据
乃至每日数据,即深度模型的输入输出是不固定的,因此经典的深度模型RNN,LSTM不能够
处理本发明中的问题。为此,本实施例将采用基于LSTM嵌入块的序列到序列的seq2seq模型
来预测循环项Cycle。
[0074] 请参阅图4,在某一个实施例中,步骤S40中,根据所述循环项的数据对seq2seq模型进行训练,以获得所述循环项的预测模型,包括以下子步骤:
[0075] S41、输入所述循环项的数据,并在所述循环项的数据上自适应添加随机噪声,以获得添加随机噪声的循环项;
[0076] Noisefactor=A×max(abs(Cycle))
[0077] Train_cyclet,i=Cyclet+Noisefactor×Randomi
[0078] 其中,A表示随机噪声程度,一般地,A<1;Randomi是服从标准正态分布N(0,1)且取值在区间[-1,1]范围的随机数;cyclet是在t时刻循环项的原始值,Train_cycle(t,i)是添
加随机噪声的循环项值;
[0079] S42、根据添加随机噪声的循环项所生成的训练数据,通过所述seq2seq模型的Encode-Decode框架构建判别概率p(Pred_cycle|Train_cycle),并通过概率条件分解所述
判别概率,得到以下公式:
[0080]
[0081] 其中,所述概率条件分解的每一项都是由Softmax函数建模,所述Softmax函数所含参数由所述seq2seq模型的Encoder-Decoder框架确定;
[0082] S43、根据输入序列的信息最大化目标输出序列的概率,获得所述seq2seq模型的的损失函数:
[0083]
[0084] 其中,Nums是训练样本量;
[0085] S44、根据反向传播的原理,通过梯度下降的Adam方法来最小化损失函数,获得最优的seq2seq模型,以获得所述循环项的预测模型。
[0086] 本实施例中,由于seq2seq模型是高度非线性的模型,在预测规律性较差的数据上具有优势,因此本实施例用其预测不规则的循环项。
[0087] S50、将所述趋势项的预测模型的预测结果和所述循环项的预测模型的预测结果叠加,获得用电量预测模型。
[0088] 本实施例中,所述用电量预测模型用于预测用电量。在获得Auto ARIMA模型的预测结果Pred_Trend,以及seq2seq2模型的预测结果Pred_Cycle后,将两种预测结果叠加,获
得最终的用电量预测模型。在某一个实施例中,用电量预测模型可通过可视化手段,例如图
表,展示所预测的用电量。
[0089] 可以理解,本实施例的全自动性质主要体现在各个模块都是利用数据本身确定参数或预想设定参数,而不需要人为再依据不同的数据来调节参数;而且,仅利用历史的用电
量数据即训练并得到效果不错的模型,而不需要依赖其他外源数据。
[0090] 综上所述,本实施例的全自动用电量预测方法,由于外源数据在采集上,仅利用历史用电量数据本身,而不需要依赖外源数据。而且,该方法所采用的HP滤波器、Auto滤波器
和seq2seq模型都可以预先设定参数或自适应学习参数,而不需要人为再根据数据来设置
参数。再有,本发明设计思路清楚,且提出的方法相较于传统模型在预测精度上有较大的提
升,且使用方便,可推广到其他行业的时间序列数据的预测上,具有较强的推广性和实用
性。
[0091] 为更好地理解本发明,本发明以某省统计报表中的月度居民用电量数据为例,进行详细说明。
[0092] 本实施例中,采用2012年-2018年这七年的月度用电量数据,来检验本实施例所提出的用电量预测模型。其中,将2012-2017年这6年的数据作为模型的输入,用于训练模型,
而2018年这一年的数据用于检验模型的效果。在Python和R语言上做仿真实验,以下是本实
施例所提出的方案在月度居民用电量数据的应用,请参阅图5,具体步骤如下:
[0093] Step1:根据实际情况对历史用电量时间序列预处理。
[0094] 由于统计报表中的月度居民用电量数据在前期是人工采集,存在延误等现象,即人工采集的数据并不是自然月的实际用电量。因此需要统计报表中的数据根据实际情况做
调整,使得历史用电数据更加符合实际情况。
[0095] 需要特别强调,数据预处理之后,本实施例所提出的用电量预测模型找到的规律才会更加符合实际情况,具有更高的应用价值。现在,随着智能电表的推广,统计报表中的
数据也更加符合实际情况,因此后期的数据不需要做调整。
[0096] 在此之后,预处理后的用电量序列简记为历史用电数据Y,其时间曲线图如图6所示。
[0097] Step2:预先利用Boosted HP滤波器对历史用电数据Y进行分解,得到趋势项Trend和循环项Cycle。
[0098] 在一个实施例中,利用Boosted HP滤波器来对历史用电数据Y进行分解的具体方法如下:
[0099] 记历史用电数据为Y={y1,y2,…,yN},第i次HP滤波器后的趋势项为第i次HP滤波器后的循环项(残差项)为
其中N为历史用电数据长度。
[0100] Boosted HP滤波后的趋势项Trend(i)的求解问题即为以下的最优迭代模型:
[0101]
[0102] Cycle(i)=Cycle(i-1)-Trend(i),i=1,2,3,…,M
[0103] 其中,Cycle(0)=Y,Δft=ft-ft-1,Δ2ft=Δft-Δft-1=ft-2ft-1+ft-2和λ≥0是用于控制光滑性的调整参数。另外,最大迭代次数M可以根据最小化BIC准则或者设定为一个固
定值来确定。
[0104] 由Boosted HP滤波器对历史用电数据Y分解,即重复地对循环项做HP滤波分解,最终得到的趋势项记为Trend={t1,t2,…,tN},最终的循环项记为Cycle={c1,c2,…,cN}。
[0105] 本实施例中,Boosted HP滤波器是先对历史用电数据Y作HP滤波分解,得到首次分解的趋势项和循环项;再对循环项作HP滤波分解,以此类推,每次都对最后一次滤波分解的
循环项再做HP滤波分解,从而达到提升滤波的效果。在本实施例中,设定滤波次数为100次,
最后得到的趋势项和循环项的曲线图如图7所示。
[0106] 图7(a)是Boosted HP滤波器分解的Trend曲线示意图,图7(b)是Boosted HP滤波器分解的Cycle曲线示意图。易发现,趋势项Trend是规律性好、光滑性好的曲线;而循环项
Cycle是规律性差,但并不是随机序列的曲线;因此,有必要对趋势项和循环项都做预测,从
而挖掘出有用的信息。
[0107] Step3:再利用光滑的趋势项数据来确定AutoARIMA模型的参数,从而得到趋势项的预测模型。
[0108] 在一个实施例中,利用Auto ARIMA模型预测趋势项的具体方法如下:
[0109] step3.1:输入趋势项Trend。
[0110] step3.2:设定迭代搜索的参数范围,模型差分阶数d的最大值dmax,自回归项数p的最大最小值pmin,pmax,以及滑动平均项数q的最大最小值qmin,qmax。
[0111] step3.3:区间[pmin,pmax]的整数集,d与区间[qmin,qmax]的整数集的笛卡尔积,形成的一系列结果(p,d,q)作为待检验的ARIMA模型的阶数组合。
[0112] 其中,模型阶数组合数为(pmax-pmin+1)×(dmax+1)×(qmax-qmin+1)。
[0113] step3.4:最优的模型ARIMA(p,d,q)是能够在拟合效果及模型复杂度上取得很好的折中,即防止过拟合。因此,通过最小化AIC准则或者BIC准则来选取最优的ARIMA模型的
阶数(p,d,q)。
[0114] 其中,AIC准则,即赤池信息准则,在模型的表达力(拟合程度L)和模型复杂度(参数量k)之间折中,其具体公式为:
[0115] AIC=-2ln(L)+2k
[0116] BIC准则,即贝叶斯信息准则,加大了对模型复杂度的惩罚,也是在模型的表达力(拟合程度L)和模型复杂度(参数量k和样本量n)之间折中,其具体公式为:
[0117] BIC=-2ln(L)+kln(n)
[0118] 其中,最大似然函数是L反映了真实值Trend与ARIMA预测值之间的距离;模型的参数量为k=p+q,样本量n=N。
[0119] 将上述步骤结合到具体的案例中,则利用Auto ARIMA模型预测趋势项的具体步骤如下:
[0120] step3.1:输入趋势项在2012-2017年的数据作为训练数据,2018年数据作为测试数据。
[0121] step3.2:设定迭代搜索的参数范围,模型差分阶数d的最大值d_max,自回归项数p的最大值和最小值分别为p_min,p_max,以及滑动平均项数q的最大值和最小值分别为q_
min,q_max。
[0122] 由于模型差分次数过多会导致信息的损失,而且通常的数据两次差分足以达到稳定,因此差分阶数d的最大值d_max设定为2;根据经验,自回归项数p的最大最小值分别设定
为5和0,滑动平均项数q的最大值和最小值也是分别设定为5和0。
[0123] step3.3:区间[0,5]的整数集{0,1,2,3,4,5},区间[0,2]整数集{0,1,2}的与区间[0,5]的整数集{0,1,2,3,4,5}的笛卡尔积,形成的一系列结果(p,d,q)作为待检验的ARIMA
模型的阶数组合。
[0124] 其中,待检验的模型的阶数组合情况为108种。
[0125] step3.4:通过最小化BIC准则,最终ARIMA模型为ARIMA(4,0,0),其具体含义为趋势项是平稳的序列,其每一个数据与前面四个历史用电数据相关。预测输出值为Pred_
Trend,利用Auto ARIMA预测的曲线图如图8所示。
[0126] Step 4:再利用不规则的循环项对seq2seq模型进行训练,从而得到循环项的预测模型;
[0127] 本实施例中,将设定过去的三年的序列数据作为模型的输入,来预测输出下一年的序列数据。由于所提供的是月度数据,因此本实施例中seq2seq模型的输入为维度为36的
向量,而模型输出是维度为12的向量。
[0128] 但是由于所提供的数据量很小,不足以训练seq2seq模型,因此考虑在Cycle数据上添加随机噪声来达到数据增强的效果。
[0129] 在一个实施例中,采用seq2seq模型来预测循环项Cycle的具体方法如下:
[0130] Step4.1:输入Cycle数据,在Cycle数据上自适应添加随机噪声,具体方法如下:
[0131] Noisefactor=A×max(abs(Cycle))
[0132] Train_cyclet,i=Cyclet+Noisefactor×Randomi
[0133] 其中,A表示随机噪声程度,一般地,A<1;Randomi是服从标准正态分布N(0,1)且取值在区间[-1,1]范围的随机数。
[0134] Step4.2:给定训练数据Train_cycle,然后通过seq2seq的Encode-Decode框架构建判别概率p(Pred_cycle|Train_cycle),并通过条件分解判别概率,得到以下公式:
[0135]
[0136] 其中,概率条件分解的每一项都是由softmax函数建模,所述Softmax函数所含参数由seq2seq模型的Encoder-Decoder框架确定,具体可参考文献《Sequence to sequence 
learning with neural networks》。
[0137] Step4.3:seq2seq模型的目标在于根据输入序列的信息最大化目标输出序列的概率,对于所有的训练样本,有以下形式的损失函数:
[0138]
[0139] 其中,Nums是训练样本量。
[0140] Step4.4:利用反向传播的原理,通过梯度下降的Adam方法来最小化损失函数,从而获得最优的seq2seq模型。
[0141] 将上述步骤结合到具体的案例中,则采用seq2seq模型来预测循环项Cycle具体包括以下步骤:
[0142] Step4.1:输入Cycle数据,在Cycle数据上自适应添加随机噪声,具体方法如下:
[0143] Noisefactor=A×max(abs(Cycle))
[0144]
[0145] 其中,随机噪声程度A设置为0.02,其作用是让添加的随机噪声值不会太大也不会太小,从而达到自适应调节的作用。在本实施例中,随机噪声程度A<0.1都对模型最终的预
测结果没有明显的影响。cycle_t是在t时刻循环项的原始值,Train_cycle_(t,i)是添加随
机噪声的值,易得一个值可以添加多个不同值的随机噪声,因此得到多个不同的训练值。
[0146] Step4.2:由Step4.1生成的训练数据中,再随机选取起始点,截取3年数据作为seq2seq模型输入,与其随后一年的数据作为模型输出,每一个batch为16组数据。seq2seq
模型的Encode-Decode框架构建的判别概率p(Pred_cycle[n]|Train_cycle[n])通过条件
分解,每一项都是采用Softmax函数建模,其中,Encode-Decode框架采用LSTM模块构建。
[0147] Step4.3:根据最大化判别概率,seq2seq模型的损失函数是:
[0148]
[0149] 其中,Nums是训练样本量。
[0150] Step4.4:利用反向传播的原理,通过主流的Adam优化器来最小化损失函数。其中相应的超参数设置为:
[0151] 迭代次数为100次,即重复Step4.2和Step4.3的次数为100;保持率为0.5,即每次训练好的参数仅保留一半,以免过拟合;学习率为0.01,即每个训练步骤的更新幅度,合理
的学习率设置会训练速度快,且不会跳过局部最优解。
[0152] 另外,Adam算法利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。一阶和二阶矩估计的指数衰减因子都为接近1的值,分别设置为0.9和0.99。
[0153] Step4.5:最终,将训练好的seq2seq模型来预测2018年循环项Cycle的值,预测输出值为Pred_Cycle,其曲线图如图9所示。
[0154] Step5:再将趋势项的预测结果和循环项的预测结果叠加作为最终的用电量预测模型,其曲线图如图10所示。
[0155] 由图10可见,采用本发明的全自动用电量预测方法,输入2012-2017年这6年的用电量数据,最终用电量预测模型所预测的用电量有效地符合2018年的用电量,该模型预测
的精度高。
[0156] 请参阅图11,本发明实施例提供一种全自动用电量预测系统,包括历史用电数据获取模块、分解模块、趋势项的预测模型获取模块、循环项的预测模型获取模块和用电量预
测模型获取模块。
[0157] 历史用电数据获取模块用于对历史用电量时间序列预处理,获得历史用电数据。
[0158] 分解模块,用于采用Boosted HP滤波器对所述历史用电数据进行分解,获得趋势项和循环项。
[0159] 趋势项的预测模型获取模块用于根据所述趋势项的数据确定Auto ARIMA模型的参数,以获得所述趋势项的预测模型。
[0160] 循环项的预测模型获取模块用于根据所述循环项的数据对seq2seq模型进行训练,以获得所述循环项的预测模型。
[0161] 用电量预测模型获取模块用于将所述趋势项的预测模型的预测结果和所述循环项的预测模型的预测结果叠加,获得用电量预测模型;所述用电量预测模型用于预测用电
量。
[0162] 在某一个实施例中,所述分解模块还用于:
[0163] 根据最优迭代模型对所述历史用电数据Y进行HP滤波分解,获得首次分解的趋势项和循环项;
[0164] 再次对所述首次分解的循环项进行HP滤波分解,获得二次分解的趋势项和循环项;
[0165] 以此类推,重复对所述最后一次HP滤波器后的循环项做HP滤波分解,最终获得所述趋势项Trend和所述循环项Cycle;其中,最终的所述趋势项为Trend={t1,t2,…,tN},最
终的所述循环项为Cycle={c1,c2,…,cN};
[0166] 其中,所述历史电量数据为Y={y1,y2,…,yN},第i次HP滤波器后的趋势项为第i次HP滤波器后的循环项为
其中N为历史用电数据长度,所述最优迭代模型为:
[0167]
[0168] Cycle(i)=Cycle(i-1)-Trend(i),i=1,2,3,...,M
[0169] 其中,Cycle(0)=Y,Δft=ft-ft-1,Δ2ft=Δft-Δft-1=ft-2ft-1+ft-2和λ≥0分别用于控制光滑性的调整参数;最大迭代次数M根据最小化BIC准则或者设定为一个固定值来确
定。
[0170] 在某一个实施例中,所述趋势项的预测模型获取模块还用于:
[0171] 输入所述趋势项的数据;
[0172] 设定迭代搜索的参数范围;其中,模型差分阶数d的最大值为dmax,自回归项数p的最大值和最小值分别为pmin,pmax,以及滑动平均项数q的最大值和最小值分别为qmin,qmax;
[0173] 将区间[pmin,pmax],[0,dmax]和[qmin,qmax]的整数集的笛卡尔积,所形成的一系列结果(p,d,q)作为待检验的ARIMA模型的阶数组合;其中,所述ARIMA模型的阶数组合数为
(pmax-pmin+1)×(dmax+1)×(qmax-qmin+1);
[0174] 根据最小化AIC准则或者BIC准则确定最优的ARIMA模型的阶数(p,d,q),以获得所述趋势项的预测模型。
[0175] 在某一个实施例中,所述循环项的预测模型获取模块还用于:
[0176] 输入所述循环项的数据,并在所述循环项的数据上自适应添加随机噪声,以获得添加随机噪声的循环项;
[0177] Noisefactor=A×max(abs(Cycle))
[0178] Train_cyclet,i=Cyclet+Noisefactor×Randomi
[0179] 其中,A表示随机噪声程度,一般地,A<1;Randomi是服从标准正态分布N(0,1)且取值在区间[-1,1]范围的随机数;cyclet是在t时刻循环项的原始值,Train_cycle(t,i)是添
加随机噪声的循环项值;
[0180] 根据添加随机噪声的循环项所生成的训练数据,通过所述seq2seq模型的Encode-Decode框架构建判别概率p(Pred_cycle|Train_cycle),并通过概率条件分解所述判别概
率,得到以下公式:
[0181]
[0182] 其中,概率条件分解的每一项都是由Softmax函数建模,所述Softmax函数所含参数由所述seq2seq模型的Encoder-Decoder框架确定;
[0183] 根据输入序列的信息最大化目标输出序列的概率,获得所述seq2seq模型的的损失函数:
[0184]
[0185] 其中,Nums是训练样本量;
[0186] 根据反向传播的原理,通过梯度下降的Adam方法来最小化损失函数,获得最优的seq2seq模型,以获得所述循环项的预测模型。
[0187] 在某一个实施例中,本发明实施例的全自动用电量预测系统还包括输入模块、训练模块和输出模块。
[0188] 输入模块用于接收历史用电数据及其周期特征,即历史用电数据Y(列表),历史用电数据的周期T(常数);还有接受已有默认值设定的参数,即预测输出数据的长度L(默认L
=T),Boosted HP滤波器迭代停止条件C=BIC/nums(最大迭代次数)(默认C=100)Auto 
ARIMA模型选择最优参数的准则S=BIC/AIC(默认S=BIC),seq2seq模型的输入与输出之比
R(默认R=3)。
[0189] 训练模块用于训练预测模型,即根据输入模块设定模型的参数,并自动根据历史用电数据训练模型,并预测相应的结果。
[0190] 输出模块用于输出用电量的预测值及一些中间结果的可视化,即用电量的预测值P(列表),Boosted HP滤波器的分解结果(Trend图和Cycle图),Auto ARIMA模型的预测结果
(Pred_Trend图),seq2seq2模型的预测结果(Pred_Cycle图),以及用电量最终的预测图
(Pred图)。
[0191] 关于全自动用电量预测系统的具体限定可以参见上文中对于全自动用电量预测方法的限定,在此不再赘述。上述全自动用电量预测系统中的各个模块可全部或部分通过
软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处
理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上
各个模块对应的操作。
[0192] 综上,本实施例的全自动用电量预测系统,由于外源数据在采集上,仅利用历史用电量数据本身,而不需要依赖外源数据。而且,该系统采用的HP滤波器、Auto滤波器和
seq2seq模型都可以预先设定参数或自适应学习参数,而不需要人为再根据数据来设置参
数。再有,本发明设计思路清楚,且提出的方法相较于传统模型在预测精度上有较大的提
升,且使用方便,可推广到其他行业的时间序列数据的预测上,具有较强的推广性和实用
性。
[0193] 请参阅图12,本发明实施例提供一种计算机终端设备,包括一个或多个处理器和存储器。存储器与所述处理器耦接,用于存储一个或多个程序,当所述一个或多个程序被所
述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例中的全自动用电
量预测方法。
[0194] 处理器用于控制该计算机终端设备的整体操作,以完成上述的全自动用电量预测方法的全部或部分步骤。存储器用于存储各种类型的数据以支持在该计算机终端设备的操
作,这些数据例如可以包括用于在该计算机终端设备上操作的任何应用程序或方法的指
令,以及应用程序相关的数据。该存储器可以由任何类型的易失性或非易失性存储设备或
者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称
SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only 
Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only 
Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只
读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
[0195] 在一示例性实施例中,计算机终端设备可以被一个或多个应用专用集成电路(Application Specific 1ntegrated Circuit,简称AS1C)、数字信号处理器(Digital 
Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,
简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列
(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元
件实现,用于执行上述的全自动用电量预测方法,并达到如上述方法一致的技术效果。
[0196] 在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的全自动用电量预测方法的步骤。例如,该计算机可读
存储介质可以为上述包括程序指令的存储器,上述程序指令可由计算机终端设备的处理器
执行以完成上述的全自动用电量预测方法,并达到如上述方法一致的技术效果
[0197] 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为
本发明的保护范围。