Привет народ! Не могли бы вы мне помочь пожалуйста?
Я хочу предсказать One Step за пределами исходных данных, используя NARNET. Исходные данные имеют 62000 шагов. Хочу узнать 62001.
Но то, что я получаю для прогнозирования, — это точно такие же существующие шаги в обучающих данных. (Те же N шагов, те же кривые)
Почему сеть не может предсказать следующий будущий шаг за пределами исходных данных? Я использовал Removedelay. (Хочу N+1)
В приложении: исходные данные (EURUSD), статистика производительности. Беллоу, используемый код.
% Solve an Autoregression Time-Series Problem with a NAR Neural Network % Script generated by Neural Time Series app % This script assumes this variable is defined: % EURUSD - feedback time series. T = tonndata(EURUSD,true,false); % Choose a Training Function trainFcn = 'trainbr'; % Bayesian Regularization backpropagation. % Create a Nonlinear Autoregressive Network feedbackDelays = 1:1; hiddenLayerSize = 30; net = narnet(feedbackDelays,hiddenLayerSize,'open',trainFcn); % Choose Feedback Pre/Post-Processing Functions net.input.processFcns = {'removeconstantrows','mapminmax'}; net.trainParam.min_grad = 3e-8; % Prepare the Data for Training and Simulation [x,xi,ai,t] = preparets(net,{},{},T); % Setup Division of Data for Training, Validation, Testing net.divideFcn = 'dividetrain'; net.divideMode = 'time'; % Divide up every sample % Choose a Performance Function net.performFcn = 'mse'; % Mean Squared Error % Choose Plot Functions net.plotFcns = {'plotperform','plottrainstate', 'ploterrhist', ... 'plotregression', 'plotresponse', 'ploterrcorr', 'plotinerrcorr'}; % Train the Network [net,tr] = train(net,x,t,xi,ai); % Test the Network y = net(x,xi,ai); e = gsubtract(t,y); performance = perform(net,t,y) % Step-Ahead Prediction Network % For some applications it helps to get the prediction a timestep early. % The original network returns predicted y(t+1) at the same time it is % given y(t+1). For some applications such as decision making, it would % help to have predicted y(t+1) once y(t) is available, but before the % actual y(t+1) occurs. The network can be made to return its output a % timestep early by removing one delay so that its minimal tap delay is now % 0 instead of 1. The new network returns the same outputs as the original % network, but outputs are shifted left one timestep. nets = removedelay(net); nets.name = [net.name ' - Predict One Step Ahead']; view(nets) [xs,xis,ais,ts] = preparets(nets,{},{},T); ys = nets(xs,xis,ais); stepAheadPerformance = perform(nets,ts,ys)
ОТВЕЧАТЬ
Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.
Не используйте команду REMOVEDELAY
It is not necessary and it is too confusing.
Если вам нужна подробная помощь, используйте один из наборов примеров MATLAB.
help nndatasets
и/или
doc nndatasets.
Почти все, что вам нужно сделать, находится в предыдущем посте. Попробуйте выполнить поиск в ОБА ГРУППЕ НОВОСТЕЙ и ОТВЕТАХ, используя
СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ