Narx时间序列错误

1视图(30天)
乔治•莱维特
乔治•莱维特 2016年11月26日
编辑: 乔治•莱维特2016年11月26日
所以下面我使用narx模型时间序列。我处理订单和使用时间序列模型来预测量输出对于一个给定的产品ID为一个特定的城市关系。下面的for循环我让我整理的数据选择部分数据涉及到的16个不同的组合产品id与49岁的城市之一。当我运行它解释的时间序列模型和错误的没有足够的输入参数。请帮助
y =(1 2 3 4 23日24日25日26日53 54 55 56 75 76 77 78);
(x =一49)
(i = 1:长度(y))
指数= (Data_mat (:, 2) = = y (i) & Data_mat (:, 3) = = x);
Data = Data_mat(指数[1 - 4])'
X = mat2cell(数据(1:));
:T = mat2cell(数据(2));
%选择训练函数%所有培训的列表功能类型:帮助nntrain %的trainlm通常是最快的。%的trainbr花费更长的时间,但是这可能是更好的具有挑战性的问题。%的trainscg使用更少的内存。在低内存的情况下适用。
trainFcn =“trainlm”;% Levenberg-Marquardt反向传播。
%建立一个非线性自回归网络与外部输入
inputDelays = 1:2;
feedbackDelays = 1:2;
hiddenLayerSize = 10;
网= narxnet (inputDelays feedbackDelays hiddenLayerSize,“开放”,trainFcn);
%为训练和仿真数据%函数PREPARETS准备timeseries数据为一个特定的网络,%转移时间最少的输入状态和层%。使用PREPARETS可使你保持原始时间序列数据%不变,而轻松地定制它网络不同%多的延迟,与开环或闭环反馈模式。
[x, xi,人工智能,t] = preparets(净,x, {}, t);
%设置部门的数据进行训练、验证测试
net.divideParam。trainRatio = 70/100;
net.divideParam。valRatio = 15/100;
net.divideParam。testRatio = 15/100;
%训练网络
(净,tr) =火车(净,x, t, xi, ai);
%测试网络
净(y = x, xi, ai);
e = gsubtract (t、y);
性能=执行(净、t、y)
%查看网络视图(净)
%情节%取消这些线,使各种各样的情节。图中,plotperform (tr) %图,plottrainstate (tr) %图,ploterrhist (e)图,plotregression (t, y) %图,plotresponse (t, y) %图,ploterrcorr (e) %图,plotinerrcorr (x, e)
%闭环网络%使用这个网络进行多步预测。%的函数CLOSELOOP取代直接的反馈输入%从文稿层连接。netc = closeloop(净);netc.name = [net.name”——闭环”);视图(netc) (xc、xic aic, tc) = preparets (netc, X, {}, T);yc = netc (xc、xic aic);closedLoopPerformance =执行(净、tc、yc)
% %提前预测网络对于某些应用程序有助于早期预测一个步伐。%原网络收益预测y (t + 1)同时是%给y (t + 1)。对于某些应用程序,如决策,它将%有助于预测y (t + 1) y (t)是可用的,但在实际y % (t + 1)。网络可以提前返回其输出%步伐通过移除一个延迟,使其最小抽头延迟现在% 0,而不是1。新的网络返回原始%网络相同的输出,但是输出左移一个步伐。网= removedelay(净);nets.name = [net.name”——预测领先一步”);视图(网)[X,切除酶、ais ts] = preparets(网,X, {}, T);y =网(xs,切除酶,ais);stepAheadPerformance =执行(网、t、y)
结束
结束

答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!