一种基于Spark的短期电力能耗预测方法转让专利

申请号 : CN201910304495.X

文献号 : CN110008626B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姜书艳赵云鹏左志宏

申请人 : 电子科技大学

摘要 :

本发明公开了一种基于Spark的短期电力能耗预测方法。本发明的方法主要为,根据历史电力能耗数据与天气信息,使用STL时间序列分解与支持向量回归对未来短期内电力能耗使用情况进行预测,并利用Spark分布式计算框架加速海量电力能耗数据下的模型训练,从而提升了模型处理海量数据的能力,同时,由于使用STL时间序列分解算法,减少了各分量间的交叉影响,提升了模型的预测精度。

权利要求 :

1.一种基于Spark的短期电力能耗预测方法,其特征在于,包括:S1、基于Spark分布式计算框架,对电力能耗数据与天气数据进行预处理与特征工程处理;所述预处理包括进行缺失数据的补点、离群点处理与降噪,所述特征工程处理是将数据进行标准化,便于更好地捕获数据间的非线性关系;

S2、对预处理后的电力能耗数据进行STL时间序列分解,得到趋势项和周期项;具体为采用乘法模型STL时间序列分解算法将电力能耗数据分解为趋势项、周期项和余项,其中,趋势项是低频部分,周期项是高频部分,余项则是随机部分,将余项舍弃;

基于Spark分布式计算框架,进行以下步骤:

S3、通过模拟退火算法,根据得到的趋势项和周期项查找对应Cascade SVR模型的最优超参数;

S4、根据得到的最优参数训练趋势项与周期项的Cascade SVR模型;具体方法为:将输入的训练集经过切分后,分为数个独立的分区,使用MapPartition函数对各分区的子训练集进行分布式的SVM训练,各节点在训练结束后将会得到各自的支持向量,之后通过Repartition函数直接对各节点得到的支持向量进行整合并重新分区,作为下一层各节点的输入;

初始训练集的分区数根据实际使用的集群情况而确定,定义一个节点负责一个分区的数据;

根据预设的停机条件判定是否反馈全局支持向量或输出模型,若要反馈,则通过广播变量将全局支持向量广播到各节点,并重新划分训练集中的非支持向量进行下一轮训练;

S5、将待预测数据进行如步骤S1所述的特征工程处理,获得预测特征数据;

S6、使用步骤S4获得模型,对步骤S5获得的预测特征数据,分别对趋势项与周期项进行预测;

S7、整合趋势项与周期项预测数据得到预测结果。

说明书 :

一种基于Spark的短期电力能耗预测方法

技术领域

[0001] 本发明涉及一种基于Spark的短期电力能耗预测方法。

背景技术

[0002] 目前,节能减排已成为我国实现可持续发展的重要举措,然而,作为节能减排技术应用的主要载体,部分高校与园区能耗数据统计粗放,没有科学的能耗监管、预测,无法依靠历史能耗数据辅助管理、完善系统以及制定相应的节能策略。而其原因,正是缺乏有效地对能耗数据监管,在理论上,也缺少对能耗模型的研究。而对电力能耗的分析预测能有效帮助挖掘节能潜力,推进园区的用能优化。
[0003] 对能耗数据的分析预测,根据预测的期间,可将预测分为短期预测、中期预测和长期预测,分别对应一小时到一周,一周到一年和一年至数十年的预测。短期的预测一般用于保证系统的稳定性,中期的预测一般用于生产计划的优化,长期一般用于辅助投资计划的制定。传统的预测方法无法很好地处理与能耗数据具有高度依赖的非线性关系的信息,如季节、天气等,机器学习算法在这方面具有很大优势。
[0004] 物联网的发展使得电力能耗数据的采集密度越来越高,采集规模不断扩大,使用更多的电力能耗数据进行训练使模型更具普适性,但也向模型的训练效率效率提出了很高的要求。在海量数据下,单机环境由于面临计算资源缺乏的问题,无法实现高效的训练,为此,需要通过计算机集群实现大规模训练数据的处理。

发明内容

[0005] 本发明的目的是,针对上述问题,提供一种基于Spark分布式计算框架的电力能耗预测算法,通过STL时间序列分解与支持向量回归在历史能耗数据与天气数据的基础上,完成能耗预测,同时由于采用了Spark分布式计算框架的计算机集群,能有效应对单机环境下计算资源不足的问题。
[0006] 本发明的技术方案分为训练与预测阶段:
[0007] 在训练阶段,基于历史能耗数据与天气数据训练模型:
[0008] 第一步:电力能耗数据(时间信息与电力能耗值)与天气数据的预处理与特征工程处理。由于现实存在的环境噪声、网络等随机因素影响,数据不可避免的会出现数据丢失、错误与噪声干扰等情况,因此需要通过预处理进行缺失数据的补点、离群点处理与降噪处理。特征工程处理使SVR算法能更好地捕获数据间的非线性关系。
[0009] 第二步:对电力能耗数据进行STL时间序列分解,得到趋势项和周期项。
[0010] 第三步:对于分解得到的趋势项和周期项,通过模拟退火算法查找对应Cascade SVR模型的最优参数,模型的训练数据为预处理与特征工程处理后的电力能耗数据与天气数据。Cascade SVR模型需预先指定的超参数有惩罚系数C与RBF核参数γ,通过模拟退火算法能快速找到最优的C与γ。
[0011] 第四步:使用第三步得到的最优参数训练趋势项与周期项的Cascade SVR模型,模型的训练数据为预处理与特征工程处理后的电力能耗数据与天气数据。
[0012] 第五步:保存趋势项与周期项SVR模型。
[0013] 在预测阶段,基于待预测时段的时间信息与天气预报数据使用模型进行预测:
[0014] 第一步:特征数据(时间信息与天气预报数据)的特征工程处理,同训练阶段第一步。
[0015] 第二步:使用特征数据与训练阶段得到的趋势项与周期项SVR模型,分别对趋势项与周期项进行预测。
[0016] 第三步:整合趋势项与周期项数据得到总体预测结果。
[0017] 本发明的有益效果为,本发明的技术方案是通过Spark分布式计算框架完成模型训练,除STL时间序列分解效率很高不进行并行化外,电力能耗数据的预处理、特征工程处理、SVR训练均可通过Spark分布式计算框架实现并行化,提升了模型处理海量数据的能力,同时,由于使用STL时间序列分解算法,减少了各分量间的交叉影响,提升了模型的预测精度。

附图说明

[0018] 图1为训练与预测阶段流程图
[0019] 图2为主‑从集群下运行于主节点的模拟退火算法对SVR进行参数优化示意图[0020] 图3为基于Spark的SVR训练流程图

具体实施方式

[0021] 下面结合附图详细描述明本发明的技术方案。
[0022] 如图1所示,为本发明训练与预测阶段流程图,其中除STL时间序列分解效率很高,不进行并行化外,其余步骤均通过Spark分布式计算框架实现并行化。
[0023] 在模型训练阶段,使用历史电力能耗数据与天气数据
[0024] 第一步:电力能耗数据预处理与特征工程处理,其中,预处理包括a)缺失数据处理,通过相邻数平均法完成;b)离群点处理,通过标准差法进行判断,之后同缺失数据处理的方式;c)降噪,通过滑动平均法完成。特征数据的特征工程处理包括a)特征编码,对日期数据中离散的变量年、月、星期、小时进行独热码编码;b)无量纲化,使用标准化法进行特征的无量纲化。电力能耗数据的预处理与特征工程处理这两步均可用过调用Spark的API进行计算,其中缺失数据处理与降噪可通过窗口函数完成,离群点判断、特征编码、无量纲化可通过map算子完成。
[0025] 第二步:电力能耗数据的STL时间序列分解,本发明采用乘法模型STL时间序列分解算法将电力能耗数据分解为趋势项、周期项、与余项,其中,趋势项是低频变化部分,是数据的长期特征。周期项则是由季节性干扰产生的高频部分,是在较短时间内表现出的周期性特征。余项则是随机部分。趋势项与周期项包含了电力能耗数据中的绝大部分信息,余项一般非常小且表现出很强的随机性,予以舍弃。STL时间序列分解在单机环境下进行。
[0026] 第三步:模拟退火算法选择Cascade SVR的最优超参数,由于网格搜索对SVR算法超参数优化的效率过低,因此引入模拟退火算法进行SVR的最优超参数选择,SVR的待优化参数是惩罚系数C与RBF核参数γ,在划分好各自的解空间和步长后,可以得到参数组合的解空间xi,以均方误差作为评价标准,通过模拟退火算法求出解空间xi中均方误差最低的参数组合。Cascade SVR实现在主‑从模式下的Spark集群,因此,模拟退火算法将运行于主节点,同时,为了保证各节点SVR对非支持向量过滤的评价标准是一致的,则各节点的SVR将会选择同样的参数。基于以上两点,可知,对基于Spark的并行SVR进行参数优化,模拟退火算法本身在Master节点运行即可,这同样也符合Master节点作为控制节点的初衷,如图2。
[0027] 第四步:基于最优参数进行Cascade SVR训练,如图3所示,在Spark分布式计算集群实现Cascade SVR的训练,将训练集切分后并行训练,并层层合并的SVR方式可以自然地使用Spark的编程模型描述,输入的训练集经过切分后,分为数个独立的分区(Paritition),使用MapPartition函数可以对各分区的子训练集进行分布式的SVM训练,各节点在训练结束后将会得到各自的支持向量,之后通过Repartition函数可以直接对各节点得到的支持向量进行整合并重新分区,作为下一层各节点的输入。初始训练集的分区数可以根据实际使用的集群情况而确定,一般一个节点负责一个分区的数据。最后,根据停机条件判定是否反馈全局支持向量或输出模型,若要反馈,则可通过广播变量(broadcast)将全局支持向量广播到各节点,并重新划分训练集中的非支持向量进行第二轮训练。
[0028] 第五步:保存SVR模型。
[0029] 在预测阶段,基于待预测时段的时间信息与天气预报数据使用模型进行预测,此处,还需在Spark分布式计算框架上实现的是模型的整合,通过使用Spark RDD的join操作合并两组预测数据后,通过map算子另每行的两项数据相乘即可。