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

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

【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期”可获取下载链接。

相关文章
|
2天前
|
算法
MATLAB|【免费】融合正余弦和柯西变异的麻雀优化算法SCSSA-CNN-BiLSTM双向长短期记忆网络预测模型
这段内容介绍了一个使用改进的麻雀搜索算法优化CNN-BiLSTM模型进行多输入单输出预测的程序。程序通过融合正余弦和柯西变异提升算法性能,主要优化学习率、正则化参数及BiLSTM的隐层神经元数量。它利用一段简单的风速数据进行演示,对比了改进算法与粒子群、灰狼算法的优化效果。代码包括数据导入、预处理和模型构建部分,并展示了优化前后的效果。建议使用高版本MATLAB运行。
|
4天前
|
机器学习/深度学习 算法
Matlab|基于支持向量机的电力短期负荷预测【最小二乘、标准粒子群、改进粒子群】
Matlab|基于支持向量机的电力短期负荷预测【最小二乘、标准粒子群、改进粒子群】
|
4天前
|
机器学习/深度学习 存储 数据可视化
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码2
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
|
4天前
|
机器学习/深度学习 数据可视化 TensorFlow
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码1
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
|
4天前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
4天前
|
数据采集 自然语言处理 算法
疾病关联网络构建及并发症预测模型
疾病关联网络构建及并发症预测模型
|
4天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化
Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化
|
4天前
|
机器学习/深度学习 自然语言处理 数据可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
|
4天前
|
机器学习/深度学习 算法 算法框架/工具
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
|
4天前
|
机器学习/深度学习 数据挖掘 PyTorch
使用Python实现长短时记忆网络(LSTM)的博客教程
使用Python实现长短时记忆网络(LSTM)的博客教程
6 0

热门文章

最新文章