Python电力负荷预测:ARIMA、LSTM神经网络时间序列分析

电力系统源源不断向各用户提供持续稳定的电能,本文通过对数据的提取。

帮助客户分别对不同客户端日,月,年的用电负荷情况进行分析,并通过模型对单户负荷情况进行预测

由Eileen撰写

解决方案

任务/目标

本课题的数据分析对象是电力在2011-2014年的370个客户端的耗电数据,根据预测负荷可以安排发电厂发电机组的启停,降低储备容量的浪费,节约成本。

× 前馈神经网络的输出只依赖当前输入,但是在文本、视频、语音等时序数据中,时序数据长度并不固定,前馈神经网络的输入输出维数不能任意更改,因此难以适应这类型时序数据的处理。短期电力负荷预测的输入与输出均为时间序列,其本质仍是基于先前元素的序列预测问题,为此需要采用与前馈神经网络不同的方法,进行短期电力负荷预测。 循环神经网络具有记忆功能,可提升网络性能。与前馈神经网络相比,循环神经网络具备可同时接受自身信息与其他神经元信息的神经元,更贴合生物神经网络结构,在文本等序列数据分析中有广泛应用。循环神经网络的参数学习随时间反向传播,错误信息前传递学习,建立长时间间隔的状态间依赖,支持序列数据的分析处理。但随着网络层数增多与时间加长,循环神经网络容易因梯度消失或爆炸问题,导致只能学习短距离依赖,无法解决长距离依赖问题。为了解决循环神经网络的长程依赖问题,在循环神经网络上添加门控机制,实现调度信息积累速度控制,这类方法被称之为基于门控的循环神经网络,例如LSTM长短期记忆网络。LSTM是一种基于RNN的改进模型,通过引入门和单元的概念,解决长距离依赖问题,具有比RNN更强的适应性。 每个LSTM神经单元都包含遗忘门、输入门和输出门三个门控结构,以控制数据有信息的换地。其中,遗忘门负责丢弃和保留上一个时刻的有效信息在C{C内,输入门将当前时刻有效信息存放在Ct内,输出门决定神经单元输出中C·的信息。

数据源准备

负荷预测是用历史负荷建立模型来预测未来负荷的方法,因此历史数据收集的数量、质量直接决定了负荷预测的准确性。

所以在负荷预测前,需要收集大量的历史负荷数据、天气数据等。这些数据由于一些因素可能会造成数据的缺失,需要利用一些方法去填补缺失值,提高负荷预测的精确度。

本项目采用均值填补法,找到所有有缺失值的列,用各列的均值填充缺失值。  

数据分析

通过曲线类图像,以特定时间周期所统计的负荷值为纵坐标来画出负荷/时间的关系曲线,呈现负荷的大小及发展趋势。例如年、月、季、天等指标。

划分训练集和测试集

对样本集拆分成训练集和测试集

values = reframed.values

n_train_time = 365*24*3

train = values[:n_train_time, :]

test = values[n_train_time:, :]

考虑到最终模型会预测将来的某时间段,为了更真实的测试模型效果,以时间来切分训练集和测试集。具体做法如下:假设我们有2011-2014的客户端耗电数据。以2011 ~ 2013的数据作为训练,以2013 ~ 2014的数据作为测试。


视频

LSTM神经网络架构和原理及其在Python中的预测应用

探索见解

去bilibili观看

探索更多视频

建模

LSTM 模型, 时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征,将问题转化为监督学习问题。将特征进行规范化、归一化,进而搭建网络模型、训练网络。

ARIMA  一般应用在股票和电商销量领域

该模型用于使用观察值和滞后观察值的移动平均模型残差间的依赖关系,我采用了拟合ARIMA(5,1,0)模型,将自回归的滞后值设为5,使用1的差分阶数使时间序列平稳,使用0的移动平均模型。

在此案例中,运用2种方法预测电力负荷,其可视化图形如下:

ARIMA模型

image.png

LSTM模型


Python中利用长短期记忆模型LSTM进行时间序列预测分析 – 预测电力负荷数据

阅读文章



随时关注您喜欢的主题


000003.png

可以看出,预测值的趋势已经基本与真实趋势保持一致,但是在预测期较长的区间段,其预测值之间的差别较大。


关于作者

在此对Eileen对本文所作的贡献表示诚挚感谢,她专注数据处理、数据分析、数据预测领域。擅长Python、数据分析

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds