时序预测 | MATLAB实现LSTM(长短期记忆神经网络)时间序列预测

加载序列数据,数据集包含一个时序,其时间步对应于月份,值对应于
输出是一个元胞数组,其中每个元素均为单一时间步。

clc,clear;warning off;
load data ;
data = [data{:}];
figure
plot(data,':.','Color',[0 0 180]./255,'linewidth',0.8,'Markersize',4,'MarkerFaceColor',[0 0 180]./255)
xlabel("Month")
ylabel("Cases")
title("Monthly Cases ")

对训练数据和测试数据进行分区。序列的前 90% 用于训练,后 10% 用于测试。

numTimeStepsTrain = floor(0.9*numel(data));
dataTrain = data(1:numTimeStepsTrain+1);
dataTest = data(numTimeStepsTrain+1:end);
% 标准化数据
% 为了获得较好的拟合并防止训练发散,将训练数据标准化为具有零均值和单位方差。
% 在预测时,您必须使用与训练数据相同的参数来标准化测试数据。
mu = mean(dataTrain);
sig = std(dataTrain);
dataTrainStandardized = (dataTrain - mu) / sig;
% 准备预测变量和响应
% 要预测序列在将来时间步的值,请将响应指定为将值移位了一个时间步的训练序列。
% 也就是说,在输入序列的每个时间步,LSTM网络都学习预测下一个时间步的值。预测变量

你可能感兴趣的:(时间序列,#,LSTM长短期记忆神经网络,#,RNN循环神经网络,深度学习,机器学习)