赞
踩
绘制三个图形来展示预测结果:
// An highlighted block clc;clear;close all; %% 数据准备 %加载数据,重构为行向量 data = xlsread('IMF.xlsx','Sheet1','A1:A1179')'; %序列的前 90% 用于训练,后 10% 用于测试 numTimeStepsTrain = floor(0.9*numel(data)); dataTrain = data(1:numTimeStepsTrain); dataTest = data(numTimeStepsTrain:end); % 数据标准化 mu = mean(dataTrain); sigma = std(dataTrain); dataTrainStandardized = (dataTrain - mu) / sigma; dataTestStandardized = (dataTest - mu) / sigma; %输入LSTM的时间序列交替一个时间步 XTrain = dataTrainStandardized(1:end-1);%训练集输入 YTrain = dataTrainStandardized(2:end);%训练集输出 XTest = dataTestStandardized(1:end-1);%测试集输入 YTest = dataTestStandardized(2:end);%测试集输出 %% 模型初始化 %创建LSTM回归网络,指定LSTM层的隐含单元个数96*3,序列预测,因此,输入一维,输出一维 numFeatures =1;%输入层数 numResponses = 1;%输出层数 numHiddenUnits = 100;%隐藏层,数值可以更改,可作为对比模型进行参数调试 layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits) fullyConnectedLayer(numResponses) regressionLayer]; %% WOA+LSTM lb=0.001;%学习率下限 ub=0.1;%学习率上限 dim=1;%维度,即一个优化参数 % 初始化搜索代理的数量 SearchAgents_no=1; % 搜索代理的数量 Max_iter=1; % 最大迭代次数 % 初始化领导者的位置向量和得分 Leader_pos=zeros(1,dim); % 领导者的位置初始化为零向量 Leader_score=inf; % 初始化领导者得分为无穷大,对于最小化问题 % 初始化搜索代理的位置 Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb; % 随机初始化搜索代理的位置 Convergence_curve=zeros(1,Max_iter); % 记录每次迭代中的最佳值 完整代码私信我发送
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。