【lstm预测】基于遗传优化算法改进的lstm预测matlab源码

508 阅读2分钟

​1 简介

一种基于遗传算法优化LSTM神经网络的交通流预测方法,包括如下步骤:步骤S1,交通流数据采集,并进行数据归一化预处理,分为训练数据集和测试数据集;步骤S2,采用遗传算法优化LSTM神经网络预测模型的各个参数;步骤S3,输入遗传算法优化好的参数,训练数据集,进行LSTM神经网络预测模型的迭代优化;步骤S4,利用已训练好的LSTM神经网络模型对测试数据集进行预测,并评估模型误差.本发明利用了遗传算法和LSTM神经网络对参数组合快速寻优的特性,可以得到更高的预测精度,且对不同间隔数据样本有良好的适用性,模型减少了计算量,表现出更好的预测性能.

1.1 遗传算法

1.2 LSTM模型

img

img

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

img

2 部分代码

clc;
clear all;
close all;
data=xlsread('yuceshuju.xlsx','预测用(2019.9.5-2020.4.14)','G2:M21410');
NN=900;%floor(size(data,1)*0.95);
train_x=data(1:NN,1:6);%训练集输入
train_y=data(1:NN,7);%训练集输出
test_x=data(NN+1:1000,1:6);%测试集输入
test_y=data(NN+1:1000,7);%测试集输出
train_x=train_x';%转置
train_y=train_y';%转置
test_x=test_x';%转置
test_y=test_y';%转置
train_zong=[train_x, test_x];%
test_zong=[train_y, test_y];
[train_M,train_N]=size(train_x);%train_N是有多少个样本,train_M有多少个输入特征
[test_M,test_N]=size(test_x);%test_N是有多少个样本,test_M有多少个输入特征
%% 数据归一化
[XTrain, ps_input] = mapminmax(train_x,0,1);
[YTrain, ps_output] = mapminmax(train_y,0,1);
XTest= mapminmax('apply',test_x,ps_input);%测试集输入
YTest =test_y;%测试集输出

%%
%创建LSTM回归网络,指定LSTM层的隐含单元个数96*3
%序列预测,因此,输入一维,输出一维
numFeatures = train_M;%输入层数
numResponses = 1;%输出层数
numHiddenUnits = 30*3;
%----------------参数设置-----------------------

   if newbestfitness<best.fitness
       best.fitness=newbestfitness;
       best.binary=binary(newbestindex,:);
       best.chrom=chrom([2*newbestindex-1:2*newbestindex],:);
       best.X=X(newbestindex,:);
       Ypred_best=Ypred(newbestindex,:);
   end
   trace(gen)=best.fitness;
end
figure(2)
%% 画进化曲线
plot(1:MAXGEN,trace);
title('进化过程');
xlabel('进化代数');
ylabel('每代的最佳适应度');

%% 显示优化结果
disp(['最优解X:',num2str(best.X)])
disp(['最大值Y:',num2str(best.fitness)]);

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('均方差值')

3 仿真结果

4 参考文献

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

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

[3]温惠英, 张东冉. 基于遗传算法优化LSTM神经网络的交通流预测方法:. 

5 MATLAB代码与数据下载地址

见博客主页