How to implement LSTM Time-series prediction using multi-features?

12 views (last 30 days)
Hello everyone,
I have the attached code and the attached data file here. I want to modify that code to proceed time-series prediction for 1 output using 5 inputs.
When I the training finishes I get the following error:
The prediction sequences are of feature dimension 1 but the input layer expects sequences of feature dimension 4.
Error in multi_lstmOMNI_noStand (line 110)
[net,YPred] = predictAndUpdateState(net,YTrain);
Can you please tell me how to fix it?
I appreciate your help.
  5 Comments
Mohamed Nedal
Mohamed Nedal on 9 May 2020
Great!, Thanks a lot
If you were going to forecast the future data (Y) that you don't have, and there are no data for input features yet (X; because they are in the future), What would you do in this case?
Mohamed Nedal
Mohamed Nedal on 3 Jul 2020
Hi @Marcelo,
I tried to add a few lines of code to predict new future values of the target output, here's what I added:
%% Forecast the Future
net = resetState(net);
Yforecast = [];
numTimeStepsTest = numel(XTest) + 500; % to forecast new 500 steps in the future
for i = 1:numTimeStepsTest
[net, Yforecast(:,i)] = predictAndUpdateState(net, XTest(:,i), 'ExecutionEnvironment','cpu');
end
but I got this error:
Conversion to double from cell is not possible.
Error in LSTM_multi_motores (line 82)
[net, Yforecast(:,i)] = predictAndUpdateState(net, XTest(:,i),
'ExecutionEnvironment','cpu');
Can you please tell me how to fix this part?

Sign in to comment.

Accepted Answer

Marcelo Olmedo
Marcelo Olmedo on 6 May 2020
Hello people; I found the problem; the key is in the correct loading of data as the published documents say. I attach my code and used tables so you don't have problems to run it; I upload data from excel to train and test. I do not use standardized data. The model fits quite well. Cheers
  4 Comments
Asli
Asli on 21 May 2021
Hi Marcelo, i am really new in this topic and i am trying to predict time series of Y depending on two external variables (X1 and X2). I have two questions. (i) Why don’t you use the “predictAndUpdateState” and why do you use the “predict” statement? Is it used for time series prediction? (ii) Why are the previous y values not input into this function? Only x values are input.

Sign in to comment.

More Answers (0)

Categories

Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!