Data organisation for a Time Series Neural Network

6 views (last 30 days)
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.

Accepted Answer

Mahesh Taparia
Mahesh Taparia on 28 Aug 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 Comments
Mahesh Taparia
Mahesh Taparia on 30 Aug 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 on 30 Aug 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

Sign in to comment.

More Answers (0)

Categories

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

Community Treasure Hunt

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

Start Hunting!