目录

摘要:

1.电力负荷预测:

2.滑动窗输入结构的构建

3.LSTM

4.Bi-LSTM

5.程序运行结果:

6.代码展示


摘要:

本文使用LSTM和Bi-LSTM,以电力负荷预测为例对比了两者的预测性能,其中将电力负荷构造为滑动时间窗的形式作为网络输出输入,实现LSTM与Bi-LSTM网络的多输入单输出模型,相比于单输入单输出的模型有更高的准确性。本文的电力负荷滑动窗输入构建方式具有一定的参考价值。

1.电力负荷预测:

电力负荷预测是一种典型的时间序列回归预测任务。电力负荷预测是保证电力供需平衡的基础,并为电网、电源的规划建设以及电网企业、电网使用者的经营决策提供信息和依据。负荷预测分为长期、中期、短期和超短期负荷预测,预测对象包括系统负荷和母线负荷,由电网企业负责组织编制。大用户应根据有关规定,按时报送其主要接装容量和年、月用电量预测及日用电负荷变化过程。

2.滑动窗输入结构的构建

由于电力负荷具有很强的时间相关性,仅通过上一时刻的负荷预测下一时刻的负荷并不能有效的反应复杂的时间关系,同时也没有充分的利用历史负荷数据的全部信息。所以本文通过滑动时间窗技术将多个历史时间内的负荷情况组合起来,预测下一时刻的负荷情况,并不断向前移动,以完成全天内的负荷预测。具体的构造方法如下:

如上图所示,在t时刻时黄色每一个小框都表示一个时间节点的输入数据,蓝色的小框表示输出数据,将3个黄色小框作为输入预测蓝色小框中的数据;而在t+1时刻,整体往前移动一个时间节点,以此不断前进,直到预测完全体的数据。

3.LSTM

传统RNN网络由于结构存在固有缺陷,在参数更新时会存在梯度消失以及梯度爆炸的问题,导致长距离的历史信息丢失,进一步造成网络极难收敛,无法训练出理想的模型。LSTM作为一种改进的循环神经网络,在原有网络结构的基础上加入了细胞状态(cell state)的结构来控制全局信息的传输,并通过遗忘门,输入门,输出门三种门控单元控制细胞状态信息值的更新。LSTM在极大程度上缓解了传统RNN模型存在的长期依赖问题,减少了长距离历史信息的丢失,输出的预测结果更准确 。LSTM的具体模型如下:

LSTM通过以下公式进行更新权值矩阵和偏置参数等网络信息:

4.Bi-LSTM

Bi-LSTM 神经⽹络结构模型分2个独⽴LSTM,输⼊序列分别以正序和逆序输⼊⾄2个LSTM神经⽹络进⾏特征提取,将2个输出向量(即提取后的特征向量)进⾏拼接后形成的词向量作为该词的最终特征表达。Bi-LSTM 的模型设计理念是使 t 时刻所获得特征数据同时拥有过去和将来之间的信息,实验证明,这种神经⽹络结构模型对⽂本特征提取效率和性能要优于单个 LSTM 结构模型。

5.程序运行结果:

本文的数据集是一个包含60日的电力时间序列负荷数据,数据的颗粒度为15min,一天中共有96个点,使用前59日的数据进行训练,用最后一日的数据作为测试集进行负荷预测。滑动时间窗口大小设置为8,即过去两个小时内的负荷预测下一时刻的负荷。

6.代码展示

代码中的输入与输出改为自己的数据即可实现不同的功能,其中滑动窗的大小设置也可根据自己的需要修改。

部分代码:

clc;
clear;
close all;
%% 导入数据
load DATA; % 导入60天的负荷数据
figure(1);
plot(fuhe);
legend('电力负荷');
xlabel('时间(15min)');
ylabel('功率(Kw)');
title('60日总负荷数据');
%% 数据归一化处理
% 归一化到0-1之间
Temp = fuhe;
[~,PS] = mapminmax(fuhe,0,1);
Temp = mapminmax('apply',Temp,PS);
%% 输入输出构建及滑动时间窗输入结构构建
%数据分组
Windows = 8; %时间窗长度
T = 96; %预测未来一天(15min一次)
%各个输入集合大小
X_Train = cell(size(Temp,2)-T-Windows,1); % 训练数据
Y_Train = cell(size(Temp,2)-T-Windows,1); % 测试数据
X_Test = cell(T,1);
Y_Test = cell(T,1);
% 训练数据构建

clc;
clear;
close all;
%% 导入数据
load DATA; % 导入60天的负荷数据
figure(1);
plot(fuhe);
legend('电力负荷');
xlabel('时间(15min)');
ylabel('功率(Kw)');
title('60日总负荷数据');
%% 数据归一化处理
% 归一化到0-1之间
Temp = fuhe;
[~,PS] = mapminmax(fuhe,0,1); 
Temp = mapminmax('apply',Temp,PS);
%% 输入输出构建及滑动时间窗输入结构构建
%数据分组
Windows = 8; %时间窗长度
T = 96; %预测未来一天(15min一次)
%各个输入集合大小
X_Train = cell(size(Temp,2)-T-Windows,1); % 训练数据
Y_Train = cell(size(Temp,2)-T-Windows,1); % 测试数据
X_Test = cell(T,1);
Y_Test = cell(T,1);
% 训练数据构建

clc;
clear;
close all;
%% 导入数据
load DATA; % 导入60天的负荷数据
figure(1);
plot(fuhe);
legend('电力负荷');
xlabel('时间(15min)');
ylabel('功率(Kw)');
title('60日总负荷数据');
%% 数据归一化处理
% 归一化到0-1之间
Temp = fuhe;
[~,PS] = mapminmax(fuhe,0,1); 
Temp = mapminmax('apply',Temp,PS);
%% 输入输出构建及滑动时间窗输入结构构建
%数据分组
Windows = 8; %时间窗长度
T = 96; %预测未来一天(15min一次)
%各个输入集合大小
X_Train = cell(size(Temp,2)-T-Windows,1); % 训练数据
Y_Train = cell(size(Temp,2)-T-Windows,1); % 测试数据
X_Test = cell(T,1);
Y_Test = cell(T,1);
% 训练数据构建

clc;
clear;
close all;
%% 导入数据
load DATA; % 导入60天的负荷数据
figure(1);
plot(fuhe);
legend('电力负荷');
xlabel('时间(15min)');
ylabel('功率(Kw)');
title('60日总负荷数据');
%% 数据归一化处理
% 归一化到0-1之间
Temp = fuhe;
[~,PS] = mapminmax(fuhe,0,1); 
Temp = mapminmax('apply',Temp,PS);
%% 输入输出构建及滑动时间窗输入结构构建
%数据分组
Windows = 8; %时间窗长度
T = 96; %预测未来一天(15min一次)
%各个输入集合大小
X_Train = cell(size(Temp,2)-T-Windows,1); % 训练数据
Y_Train = cell(size(Temp,2)-T-Windows,1); % 测试数据
X_Test = cell(T,1);
Y_Test = cell(T,1);
% 训练数据构建

clc;
clear;
close all;
%% 导入数据
load DATA; % 导入60天的负荷数据
figure(1);
plot(fuhe);
legend('电力负荷');
xlabel('时间(15min)');
ylabel('功率(Kw)');
title('60日总负荷数据');
%% 数据归一化处理
% 归一化到0-1之间
Temp = fuhe;
[~,PS] = mapminmax(fuhe,0,1); 
Temp = mapminmax('apply',Temp,PS);
%% 输入输出构建及滑动时间窗输入结构构建
%数据分组
Windows = 8; %时间窗长度
T = 96; %预测未来一天(15min一次)
%各个输入集合大小
X_Train = cell(size(Temp,2)-T-Windows,1); % 训练数据
Y_Train = cell(size(Temp,2)-T-Windows,1); % 测试数据
X_Test = cell(T,1);
Y_Test = cell(T,1);
% 训练数据构建

LSTM对比Bi-LSTM的电力负荷时间序列预测(Matlab)相关推荐

  1. 分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测

    原文链接:http://tecdat.cn/?p=18359 电力负荷预测是电网规划的基础,其水平的高低将直接影响电网规划质量的优劣.为了准确预测电力负荷,有必要进行建模(点击文末"阅读原文 ...

  2. 电气论文实现:深度学习分位数回归实现电力负荷区间预测

    个人电气博文目录链接:学好电气全靠它,个人电气博文目录(持续更新中-) 之前写过一版电力负荷区间预测:电气论文:负荷区间预测(机器学习简单实现) 这版区间负荷预测思维和上一版不一样. 核心代码见图(无 ...

  3. python sklearn实现电力负荷区间预测

    个人电气博文目录:学好电气全靠它,个人电气博文目录(持续更新中-) 之前写过区间负荷预测 电气论文:负荷区间预测(机器学习简单实现) 电气论文实现:深度学习分位数回归实现电力负荷区间预测 所以不再讲解 ...

  4. VMD-SSA-LSTM基于变分模态分解和麻雀算法优化长短期记忆网络的时间序列预测MATLAB代码(含LSTM、VMD-LSTM、VMD-SSA-LSTM等模型的对比)。

    clc; clear all close all %% VMD-SSA-LSTM预测 tic load vmd_data.mat load lstm.mat disp('--------------- ...

  5. LSTM时间序列预测MATLAB代码模板(无需调试)

    多序列:http://t.csdn.cn/yfjoh 数据在评论区,导入自己的数据即可预测并画图 %% 1.环境清理 clear, clc, close all; %% 2.导入数据,单序列 D=re ...

  6. EMD-GWO-SVR基于经验模态分解和灰狼算法优化支持向量机的时间序列预测MATLAB代码。(含SVR、EMD-SVR、GWO-SVR、EMD-GWO-SVR等4个模型的对比)。

    clc; clear; format compact; close all; rng('default') %% 读取数据 load data.mat; f=data(1001:2000)'; % 采 ...

  7. xgboost时间序列预测matlab,LightGBM和XGBoost实现时间序列预测(2019-04-02)

    LightGBM是最近最常见的一类算法,在kaggle比赛中经常被用来做预测和回归,由于性能比较好有着"倚天剑"的称号,而XGBoost则被称为屠龙刀.今天,我们就抛砖引玉,做一个 ...

  8. m分别使用BP神经网络和GRNN网络进行时间序列预测matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强 ...

  9. [时间序列预测]基于BP、LSTM、CNN-LSTM神经网络算法的单特征用电负荷预测[保姆级手把手教学]

    系列文章目录 深度学习原理-----线性回归+梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网 ...

最新文章

  1. 只有 DBA 才能导入由其他 DBA 导出的文件
  2. wordpress 5.0.0 远程代码执行漏洞分析cve-2019-8943
  3. 【Android 属性动画】属性动画 Property Animation 工作原理 ( 线性插值动画 | 非线性插值动画 | 动画计算 | 经过分数 | 插值分数 | 类型估值器)
  4. spark Rdd 操作transformaction和action等
  5. 避免使用PHP保留字作为常量、类名和方法名,以及命名空间的命名
  6. 原创:协同过滤之ALS
  7. wxcharts.js结合java后台在小程序中的使用(柱状图,其它同理)
  8. 小米游戏本2019 I7 9750H 黑苹果安装教程【OC 引导 + Big Sur11.6.1】
  9. 安卓端airplay实现IOS屏幕镜像
  10. Unity功能点---动画控制CrossFade方法的使用和简单说明
  11. java 生成纯色图片_浅谈Java设置PPT幻灯片背景——纯色、渐变、图片背景
  12. rms 文档权限服务器,Rms操作设置office系统文档权限
  13. ZYNQ学习之路5.扩展PL端串口
  14. 用Python告诉你深圳房租有多高,做程序员真的能买得起嘛
  15. 三位如花女人的多彩理财生活
  16. 在腾讯云搭建代理服务器的全部过程
  17. 【艾琪出品】《计算机应用基础》【试题汇总1】
  18. 《数据结构与算法之红黑树(Java实现)》
  19. Unity Shader - ddx/ddy偏导函数测试,实现:锐化、高度图、Flat shading应用、高度生成法线
  20. Windows下安装CgyWin和Hadoop

热门文章

  1. 【26个字母和数字符号ASCII码对照表】
  2. 2000-2017年全球人口密度数据下载LandScan
  3. chart.js使用学习——散点图
  4. 计算机我的手机选项在哪里设置方法,手把手教你用手机轻松设置无线wifi路由器的方法...
  5. Hive 与 Hbase表映射(内部表与外部表),Hbase常用命令
  6. 全国首例微信三级分销被认定为传销,三级分销“身世”揭秘(上)
  7. win7 文件夹工具栏
  8. SLAM--VICP(Velocity Updating Iterative Closest Point Algorithm)学习笔记
  9. 【JavaScript速成之路】JavaScript数据类型转换
  10. 理解和应用持续集成-Tekton