Data organisation for a Time Series Neural Network

6 vues (au cours des 30 derniers jours)
David O'Leary
David O'Leary le 24 Août 2019
Commenté : David O'Leary le 30 Août 2019
Hi there,
I would like to use the Deep Learning Tool box on Matlab to train a time series neural network, mostly likely using NARX, however I am having trouble with the data organsation for my specific problem.
My input data consists of several years of daily weather in the form of 12 independant variables from a site. I also have satellite derived Soil Mositure data for the site, however, due to Ireland being cloudy at lot, I only have these date for 16 days over the same time period. I would like to train a NARX network to try to predict Soil mositure using weather data as input.
I have easily being able to do this for say a single day, using a Fitting Neural Network, however we don't think that this form of network correctly mirrors the physical world in terms of our problem as it's expected that soil moisture is a function of several days of previous weather due to poor drainage on our site.
Therefore I would like to use NARX. However I do not understand how I can organise my input data. Basically I want to be able to train a network with say 7 days of weather data, which would result in a particular target value of soil moisture, for each of my 16 measured soil moisture days. To start with I ahve extracted a single pixel of data from my satellite images to test the theory.
My question is, is this possible using NARX? To have 7 days of an input time series which results in a single target output. From my reading of the help documents, NARX requires that both the input data and the target data need to be in a similar time series step. Is this the case or have I misunderstood the data structures?
Any help would be much apprecaited!
Thanks,
Dave
Note, I do have some codes for this problem but they are used for a fitting neural network whereas I would like to use a timeseries.

Réponse acceptée

Mahesh Taparia
Mahesh Taparia le 28 Août 2019
Hi,
You can train your NARX model with multi-dimensional input data. You can do this task in two ways, first using narxnet function in MATLAB, you can follow the below link for reference:
Secondly, you can use Neural Time Series Tool in MATLAB. You can launch the tool by the following command
ntstool
Regarding dataset organization, you can create a cell array of (1XNumber of samples) where each cell will consist of (1XD) vector, where D is the number of dimensions in dataset. You can load the existing dataset of ‘Pollution Mortality’ from the app in order to understand the dataset format.
  7 commentaires
Mahesh Taparia
Mahesh Taparia le 30 Août 2019
Hi David,
If you have 16 labelled data, then you can use Neural Time Series tool. You should train your model with those data.
Regarding number of steps, it all depends on problem to problem. You can make it a hyperparameter and vary the number of steps and select the particular step which is giving more accurate result.
16 is very very less, try to increase your data if possible (atleast 200).
David O'Leary
David O'Leary le 30 Août 2019
Mahesh,
Unfortunately my data is not category data, but numerical and so I need to do some form of regression.
I am having a go using LSTM networks at the moment with promising results, utilising the Sequence-to-one functions within the network structure.
Regardless, thanks, you have answered my question fully.
Cheers,
Dave

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Sequence and Numeric Feature Data Workflows dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by