如何实现移动窗口训练神经网络时间序列预测?

11视图(30天)
我有两个数据集包含每小时温度数据作为输入和目标为一年(8764步伐)。我已经尝试使用Narxnet提前多步预测。我预测温度24步骤之前。现在我试图实现移动窗口训练和我现有的模型。我将提前24小时预测但后来我和训练数据集将增加这个值来预测未来24次步骤。附图显示移动窗口的概念训练和预测。
% % 1。导入数据
filename_x =“input.xlsx”;
filename_y =“target.xlsx”;
x = ' (xlsread (filename_x 1));
y = ' (xlsread (filename_y 1));
X = con2seq (X);
T = con2seq (y);
% % 2。数据准备
N = 24;
%多步向前预测
%的输入和目标系列分为两组数据:
% 1组:用于训练网络
inputSeries = X (1: end-N);
targetSeries = T (1: end-N);
% 2组:这是用于模拟的新数据。inputSeriesVal将
%用于预测新的目标。targetSeriesVal将用于
%网络验证后的预测
inputSeriesVal = X (end-N + 1:结束);
targetSeriesVal = T (end-N + 1:结束);%这通常是不可用的
% % 3。网络体系结构
延迟= 1;
neuronsHiddenLayer = 20;
%创建网络
网= narxnet(1:延迟,1:延迟,neuronsHiddenLayer);
% % 4。培训网络
[x, Xi, Ai, Ts] = preparets(网,inputSeries, {}, targetSeries);
网=火车(净,x, Ts, Xi, Ai);
视图(净)
Y =净(Xs, Xi, Ai);
%串并联的性能实现
%领先一步预测
穿孔=执行(净,Ts, Y);
% % 5。多步向前预测
[Xs1、Xio Aio] = preparets(净,inputSeries (1: end-delay) {}, targetSeries (1: end-delay));
[Xfo日元,Afo] =净(Xs1、Xio Aio);
[netc、Xic Aic] = closeloop(网,Xfo, Afo);
[yPred, Xfc,亚足联]= netc (inputSeriesVal、Xic Aic);
multiStepPerformance =执行(网,yPred, targetSeriesVal);
视图(netc)
图;
情节([cell2mat (targetSeries)、南(1,N);
南(1、长度(targetSeries))、cell2mat (yPred);
南(1、长度(targetSeries))、cell2mat (targetSeriesVal)]”)
传奇(“最初的目标”,“网络预测”,预期输出的)

答案(0)