【MATLAB第48期】基于MATLAB的REMR-LSTM多次循环递归拓展理论的长短期记忆网络LSTM回归预测模型,PCA预处理降维

news2024/9/24 11:25:31

【MATLAB第48期】基于MATLAB的REMR-LSTM多次循环递归拓展理论的长短期记忆网络LSTM回归预测模型,PCA预处理降维

在本文中,将展示一个使用多次循环递归拓展(REMR)理论来改进LSTM回归预测问题。
通过多次循环,优化训练集和测试集输入权重,从而更新输入数据, 其次通过PCA主成分分析降维,控制特征数量。从而优化输入变量,改善训练模型,优化预测结果。

一、数据情况

103*8 前七列输入,最后一列输出
前80为训练集,后23为测试集。

在这里插入图片描述

%%  导入数据
res = xlsread('数据集.xlsx');

%%  划分训练集和测试集
temp =1:size(res,1);

P_train = res(temp(1: 80), 1: 7)';
T_train = res(temp(1: 80), 8)';
M = size(P_train, 2);

P_test = res(temp(81: end), 1: 7)';
T_test = res(temp(81: end), 8)';
N = size(P_test, 2);


%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);

二、LSTM参数

layers = [
    sequenceInputLayer(7)               % 建立输入层
    
    lstmLayer(4,'OutputMode','sequence')  % LSTM层 , 'OutputMode', 'last'
    reluLayer                           % Relu激活层
    
    fullyConnectedLayer(1)              % 全连接层
    regressionLayer];                   % 回归层
 
%%  参数设置
options = trainingOptions('adam', ...      % Adam 梯度下降算法
    'MiniBatchSize', 30, ...               % 批大小
    'MaxEpochs', 1200, ...                 % 最大迭代次数
    'InitialLearnRate', 1e-2, ...          % 初始学习率为
    'LearnRateSchedule', 'piecewise', ...  % 学习率下降
    'LearnRateDropFactor', 0.5, ...        % 学习率下降因子
    'LearnRateDropPeriod', 800, ...        % 经过 800 次训练后 学习率为 0.01 * 0.5
    'Shuffle', 'every-epoch', ...          % 每次训练打乱数据集
    'Plots', 'none', ...      % 画出曲线
    'Verbose', 1);

三、LSTM运行结果

在这里插入图片描述

四、REMR-LSTM思路与运行结果

1.多次循环运行模型,设定循环次数。为了便于展示,循环次数设为5。

rounds=5;%循环次数5

2.建立训练模型 net

[network{j}]= LSTM_FUN(p_train,t_train);    

3.初始化训练集与测试集输入变量权重

[Q_tr]= LSTM_w(LSTM,p_train'); %训练集模型输入权重
[Q_ts]= LSTM_w(LSTM,p_test'); %测试集模型输入权重

4.更新训练集与测试集输入变量

xtr=[ Q_tr tim1];
xts=[Q_ts tim2];

5.降维控制变量数量,得到最终变量

pca(xtr)
pca(xts)

6.带入新变量预测,得到评价结果
在这里插入图片描述
第三个子图可看出,训练集和测试集平均指标,在第五次循环结果最佳。
故选取第五次循环结果绘图。
在这里插入图片描述
与未优化前对比明显得到改善。

五、代码获取

后台私信回复“49期”可获取下载链接。

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

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

相关文章

Linux下的tmux的使用

0.前言 您好,这里是limou3434,本次我将给您带来Linux下tmux的使用。 如果您感兴趣也可以看看我的其他内容。 1.tmux的基础概念 tmux是一款在Linux里运行在终端上的软件,可以使得终端具有强大的多任务管理功能(以下是在Ubuntu环…

如何做好迭代回顾 1/4

迭代回顾(Retrospective)、二八原则、五个“为什么”(5 Why)、以数据说话、三点估算(PERT)等,大家都可能听过,在网上也能找到相关理论知识,但很多软件开发团队自以为了解,但其实是有误解。“如何做好迭代回顾”会利用一些实际团队…

Linux Mint 21.2 “Victoria “的测试版即将到来

导读Linux Mint 21.2 “Victoria “几乎已经准备就绪,主要开发者Clement Lefebvre证实,开发周期已经结束,这意味着测试版应该很快就会到来。 Linux Mint 21.2是Linux Mint 21系列的第二次更新,它基于Ubuntu 22.04 LTS(…

Mybatis源码篇:Mybatis初始化过程分析

文章目录 1. Mybatis初始化过程简述2. Mybatis初始化源码分析2.1 Mybatis初始化时序图2.2 源码分析2.2.1 SqlSessionFactoryUtil测试类代码2.2.2 SqlSessionFactoryBuilder源码2.2.3 XMLConfigBuilder源码2.2.4 SqlSessionFactory相关属性2.2.5 SqlSession相关属性 3. 总结4. 使…

2:PCIe Header配置空间

目录 1.概述 2.Header Type0 2.1 HeaderType字段 2.2 Class寄存器 2.3 Cache Line Size 寄存器 2.4 Subsystem ID 和 Subsystem Vendor ID 寄存器 2.5 Capabilities Pointer 寄存器 2.6 Interrupt Line 寄存器 2.7 Interrupt Pin 寄存器 2.8 Base Address Registe…

el-select如何不显示value,显示value对应的label值

文章目录 select 显示如下发生错误的原因 select 显示如下 el-select在编辑调用的时候一直显示的不是label值,而是本身的value值。尝试了很多种方法,都没有解决。 正常的形式 错误的形式 发生错误的原因 显示不正常,多数是由于得到的数据…

人工智能期末复习(背题家的落幕)

文章目录 一、前言二、选择题(10 X 2)1、补充2、第一梯队⭐⭐⭐3、第二梯队⭐⭐4、第三梯队⭐ 三、判断题(10 X 1)1、错误的2、正确的 四、程序填空题(10 X 3)1、tensorflow搭建模型2、keras模型编译3、Pyt…

AI智慧安监视频融合平台EasyCVR播放HLS流出现报错404是什么原因?

EasyCVR平台支持多协议与多类型设备接入,具体包括国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等,能对外分发RTMP、RTSP、HTTP-FLV、WS-FLV、HLS、WebRTC等。平台既具备传统安防视频监控的能力,也能接入AI智能分析的…

【强化学习】什么是“强化学习”

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

MySQL的存储过程

MySQL 一、存储过程的概念存储过程的优点 二、创建简单的存储过程三、存储过程的参数IN 输入参数OUT 输出参数INOUT 输入输出参数 四、删除存储过程五、存储过程的控制语句条件语句循环语句 一、存储过程的概念 存储过程是一组为了完成特定功能的SQL语句。 存储过程再使用过程…

安装rabbitmqctl问题

RabbitMQ Server 311.18 Setup bat start xited with code 1. 主要对应得erlang版本不对(注意 安装过程中一定要对应指定版本,尽量装低一版本,并且erlang选择中间版本) RabbitMQ Erlang Version Requirements — RabbitMQ

adb shell后,getevent退出方法

adb shell后,getevent退出方法 输入 exit 然后回车退出

使用 Debian、Docker 和 Nginx 部署 Web 应用

前言 本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。 第 1 步:更新和升级 Debian 系统 通过 SSH 连接到服务器。更新软件包列表:sudo apt update升级已安装的软件…

pointNet训练预测自己的数据集Charles版本(二)

之前博客介绍了如何跑通charles版本的pointNet,这篇介绍下如何来训练和预测自己的数据集,介绍如何在自己的数据集上做点云语义分割,此篇的环境配置和博客中保持一致。点云分类较简单,方法差不多,这边就不特地说明了。 …

RFID智能物料仓库管理系统

文章目录 设计任务及要求一、需求分析1.1 硬件图1.1.1 GEC6818开发板模块介绍1.1.2 低频RFID模块 1.2 软件图 二、概要设计2.1 功能流程图2.1.1 模块层次关系2.1.2 防碰撞2.1.3 步骤流程图 三、详细设计3.1 摄像头模块代码3.2 串口初始化模块代码分析3.3 报警模块代码分析3.4 光…

java项目之房屋租赁系统ssm源码

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的房屋租赁系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风歌&#xff…

SDH接口能够用DAT3作为插入侦测引脚

SDH(Secure Digital Host)接口需要 9 个引脚来实现其功能,这些引脚包括: VDD:电源引脚,通常连接到3.3V的电源。 VSS:地引脚,通常连接到系统的地线。 DAT0:数据线0&…

【Linux】在simplescreenrecorder中录制的视频,打开的时候是黑屏,显示不了任何画面

一、问题背景 在simplescreenrecorder中录制的视频,打开的时候是黑屏,显示不了任何画面 当时我以为是软件本身设置有问题,于是乎就到处调。网上有些回答说可能是显卡驱动问题,这个驱动我可不敢随便重装啊,太花时间了…

PSP - AlphaFold2 根据 Species 进行 MSA Pairing 的源码解析

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131399818 AlphaFold2 Multimer 能够预测多肽链之间相互作用的方法,使用 MSA Pairing 的技术。MSA Pairing 是指通过比较 MS…

C# 实现全局鼠标钩子操作以及发送键盘事件

全局钩子定义 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Threading.Tasks;namespace WindowsFormsApp1 {public static class GlobalMousePositi…