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

  

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

0 概述

1 电力负荷预测

2 滑动窗输入结构的构建

3 LSTM

4 Bi-LSTM

5 运行结果

6 Matlab代码实现

7 参考文献


0 概述

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

电力负荷预测

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

滑动窗输入结构的构建

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

        如上图所示,在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,即过去两个小时内的负荷预测下一时刻的负荷。

部分代码:

function [layer_lstm,layer_bilstm,options] = Net_definition(numFeatures,numResponses,numHiddenUnits,Train_number,dorp_rate)
%% LSTM
layer_lstm = [ ...
    sequenceInputLayer(numFeatures)
    lstmLayer(numHiddenUnits,'OutputMode','sequence')
    dropoutLayer(dorp_rate)
    fullyConnectedLayer(numResponses)
    regressionLayer];
%% BI-LSTM
layer_bilstm = [ ...
    sequenceInputLayer(numFeatures)
    lstmLayer(numHiddenUnits,'OutputMode','sequence')
    dropoutLayer(dorp_rate)
    fullyConnectedLayer(numResponses)
    regressionLayer];
%% 
options = trainingOptions('adam', ...
    'MaxEpochs',Train_number, ...
    'GradientThreshold',1, ...
    'InitialLearnRate',0.005, ...
    'LearnRateSchedule','piecewise', ...
    'LearnRateDropPeriod',Train_number/2, ...
    'LearnRateDropFactor',0.2, ...
    'Verbose',0, ...
    'Plots','training-progress');
end

6 Matlab代码实现

7 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]李玉志,刘晓亮,邢方方,温国强,卢楠滟,何慧,焦润海.基于Bi-LSTM和特征关联性分析的日尖峰负荷预测[J].电网技术,2021,45(07):2719-2730.DOI:10.13335/j.1000-3673.pst.2020.1390.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 学习记录52(ARM篇)

Linux 学习记录52(ARM篇) 本文目录 Linux 学习记录52(ARM篇)一、汇编语言相关语法1. 汇编语言的组成部分2. 汇编指令的类型3. 汇编指令的使用格式 二、基本数据处理指令1. 数据搬移指令(1. 格式(2. 指令码类型(3. 使用示例 2. 立即数(1. 一条指令的组成 3. 移位操作指令(1. 格式…

[QT编程系列-13]:QT快速学习 - 1- 初识

目录 第1章 QT的介绍 1.1 QT VS MFC 1.2 QT历史 1.3 QT的应用 1.4 QT学习方法 1.5 QT对象树 1.6 2-8定律 1.7 QT优势: 1.8 QT支持的平台 第2章 QT UI是各种控件对象的堆积 第3章 QT UI是各种控件的堆积 第4章 控件窗口的控制 第1章 QT的介绍 1.1 QT V…

回归预测 | MATLAB实现Attention-GRU多输入单输出回归预测(注意力机制融合门控循环单元,TPA-GRU)

回归预测 | MATLAB实现Attention-GRU多输入单输出回归预测----注意力机制融合门控循环单元,即TPA-GRU,时间注意力机制结合门控循环单元 目录 回归预测 | MATLAB实现Attention-GRU多输入单输出回归预测----注意力机制融合门控循环单元,即TPA-G…

GUI-Menu菜单实例(颜色+线型菜单)

运行代码: //GUI-Menu菜单实例(颜色线型菜单) #include"std_lib_facilities.h" #include"GUI/Simple_window.h" #include"GUI/GUI.h" #include"GUI/Graph.h" #include"GUI/Point.h"struc…

JS-27 前端数据请求方式;HTTP协议的解析;JavaScript XHR、Fetch的数据请求与响应函数;前端文件上传XHR、Fetch;安装浏览器插件FeHelper

目录 1_前端数据请求方式1.1_前后端分离的优势1.2_网页的渲染过程 – 服务器端渲染1.3_网页的渲染过程 – 前后端分离 2_HTTP协议的解析2.1_HTTP概念2.2_网页中资源的获取2.3_HTTP的组成2.4_HTTP的版本2.5_HTTP的请求方式2.6_HTTP Request Header2.7_HTTP Response响应状态码 3…

创建、发布npm包,并且应用在项目里面

实现一个函数去监听dom宽高的变化,并且发布NPM包,然后使用到项目中 步骤 1.5W3H 八何分析法 2.如何监听dom宽高变化 3.如何用vite 打包库 4.如何发布npm 一、NPM包新建过程 查看完整目录 1.生成 package.json npm init生成TS配置文件 tsconfig.js…

第二十一章:CCNet:Criss-Cross Attention for Semantic Segmentation ——用于语义分割的交叉注意力

0.摘要 全图像依赖关系为视觉理解问题提供了有用的上下文信息。在这项工作中,我们提出了一种称为Criss-Cross Network(CCNet)的方法,以更有效和高效的方式获取这种上下文信息。具体而言,对于每个像素,CCNet…

禁止浏览器自动填充密码功能,设置自动填充背景色。

禁止浏览器自动填充密码功能,设置自动填充背景色 1、禁止浏览器自动填充密码功能2、设置自动填充背景色(阴影效果) 1、禁止浏览器自动填充密码功能 text设置autocomplete“off” password设置 autocomplete“new-password” 两个一起设置&am…

Python Web框架 Flask 安装、使用

Python Web框架 Flask 安装 安装 Flask 框架 首先需要安装 Flask 框架, 可以通过以下命令安装: [rootlocalhost web]# pip3 install Flask Collecting FlaskDownloading Flask-2.0.3-py3-none-any.whl (95 kB)|██████████████████████████████…

websoket

websoket是html5新特性, 它提供一种基于TCP连接上进行全双工通讯的协议; 全双工通信的意思就是:允许客户端给服务器主动发送信息,也支持服务端给另一个客户端发送信息. Websoket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在we…

Appium: Windows系统桌面应用自动化测试(四) 【辅助工具】

[TOC](Appium: Windows系统桌面应用自动化测试(四) 辅助工具) 文件批量上传 文件批量上传和文件单个上传原理是相同的,单个上传直接传入文件路径即可,批量上传需要进入批量上传的文件所在目录,然后观察选中多个文件时【文件路径输入框】读取…

抖音seo源码-源代码开发搭建-开源部署(不加密)

抖音SEO矩阵系统源码开发功能模型是指在抖音平台上提高视频搜索排名的一种算法模型。该功能模型包括多个部分,如内容优化、用户交互、社交化推广等,通过对这些因素的优化和提升,达到提高视频搜索排名的目的。具体实现包括使用关键词、标签等优…

Elasticsearch--查询(nested、join)

nested 嵌套类型 数据的某个值是json、object对象;不再是简单的数据类型,或者简单数据类型的数组;那么还用之前的查询方式就有问题了。因为ES在存储复杂类型的时候会把对象的复杂层次结果扁平化为一个键值对列表 。此时,需要用n…

<Linux开发> linux开发工具-之-I2C TOOLS工具使用

<Linux开发> linux开发工具-之-I2C TOOLS工具使用 <Android开发> Android开发工具- 之-I2C TOOLS工具使用 <Linux开发>驱动开发 -之- Linux I2C 驱动 一 前言 在笔者的另一篇文章 <Android开…

MySQL 第七天作业 nosql作业

作业一:string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令 1、 string类型数据的命令操作: (1) 设置键值: set key1 re…

Spring Boot集成Redisson实现分布式锁

Spring Boot集成Redisson实现分布式锁 在分布式系统中,为保证数据的一致性和并发访问的安全性,我们经常会使用分布式锁来协调多个节点之间对共享资源的访问。Redisson是一个基于Redis的Java驻内存数据网格(In-Memory Data Grid)和…

centos 安装pyzbar

需求: 运行程序报错 ImportError: Unable to find zbar shared library 进程: 直接使用yum 安装 yum install python-devel && yum install zbar-devel 有时候会能成功,大多数时候python-devel 能成功但是 zbar-devel 会失败 下载…

TCP四次挥手过程

TCP 断开连接是通过四次挥手方式。 双方都可以主动断开连接,断开连接后主机中的「资源」将被释放, 刚开始双方都处于 establised 状态,假如是客户端先发起关闭请求,过程如下图: 第一次挥手:客户端打算关闭…

Ae 效果:CC Mr. Smoothie

风格化/CC Mr. Smoothie Stylize/CC Mr. Smoothie CC Mr. Smoothie(平滑先生)效果可以从一个图层上的两个点进行颜色采样,并将这个两点之间的颜色重映射到另一个图层上,可通过控制重映射的平滑度从而创建迷幻的外观效果。 ◆ ◆ …

JVM中的堆和栈到底存储了什么

JVM数据区 先上一张Java虚拟机运行时数据区中堆、栈以及方法区存储数据的概要图,如下所示: 然后我们来具体解析一下堆和栈 堆 堆是存储时的单位,对于绝大多数应用来说,这块区域是 JVM 所管理的内存中最大的一块。线程共享&#…