How can I use LSTM networks to solve a time series regression problem?

71 views (last 30 days)
How can I use LSTM networks to solve a time series regression problem? I would like to train a LSTM regression network using all but the last 10 time steps and then test it to see how well the model has done using the last 10 steps of time series that were not used in the training.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 10 May 2018
To forecast the values of future time steps of a sequence, you can train a sequence-to-sequence regression LSTM network, where the responses are the training sequences with values shifted by one time step. That is, at each time step of the input sequence, the LSTM network learns to predict the value of the next time step.
Please refer to the attached example, "TimeSeriesForecastLSTM.mlx", which demonstrates how to forecast time-series data using a long short-term memory (LSTM) network.
This example trains an LSTM network to forecast the number of chickenpox cases given the number of cases in previous months. The training data contains a single time series, with time steps corresponding to months and values corresponding to the number of cases.
Further, you mentioned that you need to forecast the values for the last 10 steps. To forecast the values of multiple time steps in the future, you can use the "predictAndUpdateState" function to predict time steps one at a time and update the network state at each prediction. Please refer to the documentation of the "predictAndUpdateState" function for more information on how to use the function by typing the following command in the Command Window:
>> doc predictAndUpdateState
Dan Hendrickson
Dan Hendrickson on 1 May 2020
Hi Mohamed and Viktor,
If you have additonal questions about LSTM nets please contact MathWorths technical support and they can assist you further.

Sign in to comment.

More Answers (2)

Abolfazl Nejatian
Abolfazl Nejatian on 8 Dec 2018
here is my code,
this piece of code predicts time series data by use of deep learning and shallow learning algorithm.
best wishes
Abolfazl Nejatian

Ana Correia
Ana Correia on 4 Jun 2018
I can't seem to use this example with MATLAB r2017b. It says 'adam' is not a valid solver name and when I switch to 'sgdm' i get this error: "Regression is not supported for networks with LSTM layers."
Is this example only supported by r2018a?
Thanks in advance for your help.

Community Treasure Hunt

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

Start Hunting!