LSTM与Bi-LSTM的时间序列预测(负荷预测)——附代码

2023-11-05

目录

摘要:

1.电力负荷预测:

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

3.LSTM

4.Bi-LSTM

5. 程序运行结果:

6. 本文Matlab代码实现:


摘要:

本文使用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日的数据进行训练,用最后一日的数据作为测试集进行负荷预测。

6. 本文Matlab代码实现:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LSTM与Bi-LSTM的时间序列预测(负荷预测)——附代码 的相关文章

随机推荐

  • Spring Boot 学习笔记

    TOC 一 Spring Boot 入门 1 Spring Boot 简介 简化Spring应用开发的一个框架 整个Spring技术栈的一个大整合 J2EE开发的一站式解决方案 2 微服务 2014 martin fowler 微服务 架构
  • Python 使用cv2模块 进入视觉识别的报错,报错信息为AttributeError: module ‘cv2.cv2‘ has no attribute ‘bgsegm

    Python 使用cv2模块 进入视觉识别的报错 报错信息为AttributeError module cv2 cv2 has no attribute bgsegm 问题描述 cv2模块 进入视觉识别的报错 报错信息为AttributeE
  • (一)pygame.event详细解析

    文章目录 pygame event详细解析 函数表 函数详解 pygame event pump pygame event get pygame event poll pygame event wait pygame event peek
  • Elasticsearch学习笔记(一) DSL语句

    1 index 1 1 查询所有index GET cat indices v 1 2 新增index 新增一个名为pigg的index PUT pigg 1 3 删除index 删除pigg这个index 产线千万别这么做 删了就完了 D
  • 【react从入门到精通】深入理解React生命周期

    文章目录 人工智能福利文章 前言 React技能树 React的生命周期是什么 React v16 0前的生命周期 组件初始化 initialization 阶段 组件挂载 Mounting 阶段 组件更新 update 阶段 组件销毁阶段
  • 2.4.8 Profile虚拟IO设备

    最后更新2021 07 21 虚拟IO设备由HMC发出配置信息 由Hypervisor创建 虚拟IO设备并非真实存在 只是一些Hypervisor的参数 所以通常你可以根据需要 任意增删虚拟IO设备 但是创建虚拟IO设备依然有一些规则需要遵
  • Vue3.0——vite项目搭建

    2021 10 26 因为技术不断更新 故有些命令行不是最新的 随着后期补丁的更新 部分错误后期可能不存在了 建议大家参照时间节点看本片文章 1 搭建vite项目 npm init vitejs app 2 npm init vitejs
  • 用rsync命令和scp命令实现本机带进度条提示拷贝

    rsync命令 rsync av progress mnt yidong2 full20100526 tar gz mnt yidong1 以上命令 可以实现本机带进度条提示拷贝 可以实现不同机器带进度条提示拷贝 可以拷贝多个文件 scp命
  • 在Ubuntu20.04安装单节点ClickHouse22.8.4并解决DB::NetException: Connection refused NETWORK_ERROR导致无法远程访问的问题

    在Ubuntu20 04安装单节点ClickHouse22 8 4并解决DB NetException Connection refused 192 168 88 22 9000 NETWORK ERROR 导致无法远程访问的问题 前言 参
  • git将项目的其他分支合并到自己的分支

    步骤1 查看本地的所有分支 如果有即将合并的分支 则跳到 步骤3 git checkout 他人的分支名 git branch 步骤2 查看所有分支 确定即将合并的分支名 git branch a 步骤3 检出即将合并的分支到你的本地 gi
  • js中的class类

    js中的class类 函数声明和类声明之间的一个重要区别是函数声明会提升 类声明不会 需要先进行声明 再去访问 否则会报错 var father new Father 我是爸爸 class Father constructor name t
  • 跑路了,去东北国企干软件测试一个月的感触

    前言 不知不觉入职新公司快一个月了 突然心血来潮想跟大家唠唠 在新公司上班的感受 有好有坏 喜忧参半吧 工作环境 我新入职的公司是哈尔滨的一家国企下的二级子公司 新成立的研发公司 目前还处于蓬勃发展的阶段 业务水准也算的上是不错了 目前人数
  • 笔记本计算机硬盘如何分盘,笔记本电脑怎样分盘_笔记本电脑如何自己分盘-win7之家...

    在购买笔记本电脑之后 很多用户没有考虑清楚就随便将磁盘分盘 之后发现磁盘不够用 所以就想要重新分盘 不过许多小伙伴可能还不知道笔记本电脑怎样分盘吧 方法并不难 我们可以进入到计算机的管理中进行操作 这就给大家讲述一下笔记本电脑自己分盘的详细
  • 秦朝的军功制度

    作者 李四郎 链接 https www zhihu com question 35082355 answer 126247488 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 二十级爵位可以按实际地位和待遇
  • 计算机视觉(十一):目标检测算法:R-CNN、Fast R-CNN、Faster R-CNN

    1 引言 在计算机视觉的发展中 我们的任务也越来越复杂 对于一张图像 我们不仅要实现对于目标的分类问题 还要准确的定位目标所在图片的位置 这个就是目标检测技术 在基于深度学习的目标检测技术中 就不得不提到最著名的三个算法了 R CNN Fa
  • 解决XML中符号解析问题

    当在xml中使用大于号 gt 小于号 lt 等字符时 会影响xml的解析 1 使用转义字符 lt lt 小于号 gt gt 大于号 amp 和 apos 单引号 quot 双引号 2 使用 被这个标记所包含的内容将表示为纯文本 比如表示文本
  • LeetCode 第7天 动态规划 (子序列问题 二)编辑距离 python

    以下题目来来源 力扣 LeetCode 链接 https leetcode cn problems uncrossed lines 著作权归领扣网络所有 商业转载请联系官方授权 非商业转载请注明出处 1035 不相交的线 在两条独立的水平线
  • redis主从同步 主机down

    redis主机设置了密码 将master和slave的密码配置相同 然后将slave的配置文件中的masterauth属性进行填写 将master的密码写上去即可使用命令slaveof或者在配置文件中 replicaof对master进行指
  • 一步一步教你Pycharm的配置Python环境

    1 点开你的pycharm 创建一个python文件 很多人学习python 不知道从何学起 很多人学习python 掌握了基本语法过后 不知道在哪里寻找案例上手 很多已经做案例的人 却不知道如何去学习更加高深的知识 那么针对这三类人 我给
  • LSTM与Bi-LSTM的时间序列预测(负荷预测)——附代码

    目录 摘要 1 电力负荷预测 2 滑动窗输入结构的构建 3 LSTM 4 Bi LSTM 5 程序运行结果 6 本文Matlab代码实现 摘要 本文使用LSTM和Bi LSTM 以电力负荷预测为例对比了两者的预测性能 其中将电力负荷构造为滑