Parameter fitting using Machine Learning techniques on time series

4 views (last 30 days)
Hi,
I have a time variying quantity X(t) that can behave according to two different behaviors, let's call them A and B. Behavior A and B are respectively characterized by parameters a and b.
Two thinks I would like to do:
  1. be able to classify my time series Xi(t), according to which behavior they have, A or B
  2. measure the numerical value of the parameter corresponding to this behavior (I have no analytical formula so I was thinking doing this by ML as well).
I am new to Machine Learning. My questions:
  1. For the classification I was thinking of using LSTM networks. Is it the best option for my need? my time series usually have 1e3-1e4 elements. (what about if I have even longer datasets, say 1e05 elements?)
  2. Regarding the computation of the parameter values, should I need to train the neural networks with all the values I accept to sample (which will be the only candidate values I will be considering), or is there a Deep Learning method (or else) that I should use?
Thank you for your help and advice.
Cheers!

Answers (1)

Brahmadev
Brahmadev on 13 Feb 2024
Hi @LeChat,
Your approach to solving this problem involves two distinct tasks: classification and regression. Classification of whether a given Xi(t) exhibits behavior A or B, and regression to estimate the numerical value of the parameter (a or b) corresponding to the identified behavior.
  1. To answer your first question, LSTM are well-suited for sequence data like time series. LSTMs can handle long sequences, but very long sequences (e.g., 1e5 elements) may pose challenges in terms of computational resources and may lead to issues like vanishing or exploding gradients. Hence, it is better to onsider feature extraction methods (e.g., FFT, wavelet transform) to reduce the sequence length or capture important characteristics before feeding the data into an LSTM. As an alternative, we can consider other models like GRU, 1D CNNs, etc.
  2. For estimating the numerical values of parameters a and b, you can use regression models. You can use however much data you have, without over-training it. Also, it is recommended to split the dataset into training, validation, and test sets. A common split ratio might be 70% training, 15% validation, and 15% test.
Hope this helps in giving you some direction, thanks!

Community Treasure Hunt

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

Start Hunting!