【lstm预测】基于粒子群算法改进的lstm预测matlab源码

2021/10/5 22:41:16

本文主要是介绍【lstm预测】基于粒子群算法改进的lstm预测matlab源码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 简介

基于精确的铁路客运量预测对于国家和企业的规划管理非常重要,为提高预测的精度,提出粒子群算法(PSO)与长短时记忆神经网络相结合的预测模型(PSO-LSTM).LSTM与传统的全连接神经网络不同,其避免梯度消失,具有记忆过去信息的能力.由于LSTM的神经元数量,学习率和迭代次数难以确定,利用IPSO对这些参数进行优化.将相关性分析得到的铁路营业里程,国家铁路客车拥有量,国内生产总值和年末总人口作为铁路客运量的影响因素并对铁路客运量进行预测.预测结果表明,当LSTM具有2层隐含层时,PSO-LSTM具有更高的精确度.

1.1 粒子群算法

1.2 LSTM模型

img

img

1.3 基于鲸鱼算法优化LSTM流程

img

2 部分代码

%%
clc
clear all
close all
%加载数据,重构为行向量
num=100;
x=1:num;
db=0.1;
data =abs(0.5.*sin(x)+0.5.*cos(x)+db*rand(1,num));
data1 =data;%把你的负荷数据赋值给data变量就可以了。
%data是行向量。要是还不明白,就留言吧。

%%
%序列的前 90% 用于训练,后 10% 用于测试
numTimeStepsTrain = floor(0.9*numel(data));
dataTrain = data(1:numTimeStepsTrain+1);
dataTest = data1(numTimeStepsTrain+1:end);

%数据预处理,将训练数据标准化为具有零均值和单位方差。
mu = mean(dataTrain);
sig = std(dataTrain);
dataTrainStandardized = dataTrain;

%输入LSTM的时间序列交替一个时间步
XTrain = dataTrainStandardized(1:end-1);
YTrain = dataTrainStandardized(2:end);
%%
%创建LSTM回归网络,指定LSTM层的隐含单元个数96*3
%序列预测,因此,输入一维,输出一维
numFeatures = 1;
numResponses = 1;
numHiddenUnits = 20*3;

layers = [ ...
  sequenceInputLayer(numFeatures)
  lstmLayer(numHiddenUnits)
  fullyConnectedLayer(numResponses)
  regressionLayer];
%% WOA
lb=0.001;%学习率下限
ub=0.1;%学习率上限

% Main loop

while t<Max_iter
  t
 
end

%将预测值与测试数据进行比较。
figure(1)
subplot(2,1,1)
plot(YTest,'gs-','LineWidth',2)
hold on
plot(YPred_best,'ro-','LineWidth',2)
hold off
legend('观测值','预测值')
xlabel('时间')
ylabel('数据值')
title('Forecast with Updates')

subplot(2,1,2)
stem(YPred_best - YTest)
xlabel('时间')
ylabel('均方差值')
title('均方差图 ' )


figure(2)
plot(dataTrain(1:end-1))
hold on
idx = numTimeStepsTrain:(numTimeStepsTrain+numTimeStepsTest);
plot(idx,[data(numTimeStepsTrain) YPred_best],'.-')
hold off
xlabel('时间')
ylabel('数据值')
title('预测图')
legend('观测值', '预测值')

figure(3)
plot(1:Max_iter,Convergence_curve,'bo-');
hold on;
title('鲸鱼优化后Error-Cost曲线图');
xlabel('迭代次数')
ylabel('误差适应度值')

3 仿真结果

4 参考文献

[1]曹开田, 高莘尧, 姜梦彦. 一种基于鲸鱼算法优化LSTM的频谱感知方法:.

[2]刘昊东, 邹必昌. 基于鲸鱼算法优化长短期记忆网络的短期负荷预测[J]. 电子世界(3):2.



这篇关于【lstm预测】基于粒子群算法改进的lstm预测matlab源码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程