I have 3 sets of time series data generated from sensors, I believe they have some correlation themselves. Certain "modes" of the system can be defined from the patterns from these signals. The signal representation of one mode can be different in terms of duration and amplitude from time to time, but this mode in general would have a similar shape.

I am interested in identifying the transitions between the modes, and not forecasting what mode will come up next from my data stream.

Here is my approach and definition of the problem: 1. I want to treat it as a classification but not a prediction problem, I will manually label the historical data for supervising learning. From these 3 time series input, feature engineering will be performed and serves as input to my model.

  1. It is a multivariate time series classification problem, and I will be using LSTM. It can be a binary classification to start from, e.g I label all different types of transitions as 1, and when the system is in a mode and not transitioning, it is label as 0. It can also be a multi classes problem, here I label each type of transitions as 1, 2, 3 4, 5 and so on, and all the modes being 0.

My question is:

  1. Can I actually treat it as a classification problem?

  2. If so, how should I label my data? This is where I am stuck and confused, should I just label the moment of the particular transition? or should I label that moment plus a few of the data before that, which makes a pattern for recognition rather than a single point?

enter image description here

In the attached above, the black lines show where 2 transitions happened, and this is how I may label the 'moment transition'. The red boxes also show the same 2 transitions, however it is a set of data points and which include more information and form a 'pattern'.

  1. By labeling the transition as a single moment in the time series or a pattern across a few time samples, will it lead to different choices of algorithms?

Many thanks


Have you tried looking at switching linear dynamical systems?


  • $\begingroup$ No, can you briefly introduce me this system and why is it suitable for my question please? $\endgroup$ – Victor Oct 11 '18 at 12:56
  • $\begingroup$ To go into it further, your timeseries looks piecewise (in time) like it might be well-described by an AR model, with a single AR model being a reasonable description in each piece, but AR model and order might change when your system undergoes a transition. You want to detect these transitions, and also find a suitable model for each piece. The paper I pasted claims has 2 methods that tries to find these individual dynamics in each temporal segment, and also the # of transitions. $\endgroup$ – ken Oct 11 '18 at 13:02
  • $\begingroup$ 1. yes 2. your data will be labeled by segments in which during that segment, the timeseries model is the same. The paper I cited finds the # of transitions, the time of transition and the appropriate model for each of the segments. 3. right before question #3, you say "the black lines show where 2 transitions happened". this knowledge is based on some other covariate you haven't presented here? or some other sensor reading? $\endgroup$ – ken Oct 11 '18 at 13:15
  • $\begingroup$ Visually, it seems like a transition is also happening around 49.96 - the timeseries looks more oscillatory with a much bigger amplitude. So again, I'm wondering on what basis you drew the black lines labeled transition 1 and transition 2. $\endgroup$ – ken Oct 11 '18 at 13:23
  • $\begingroup$ just to confirm, does AR in this context mean Autoregression/Autoregressive? You are saying that I need to label it by segment, so is a data set within a time window? and when I input the data, I should use sliding window? $\endgroup$ – Victor Oct 11 '18 at 13:49

Question 1: Yes, you can.

Question 2: It seems that you have quite a bit more data consisting of observations of your actual states, rather than the transitions between them. It also seems that the nature of the transitions is less consistent and to a certain degree only identifiable with the broader context of the states surrounding it.

Given those observations, you should use object recognition techniques (think convolutional net) to identify time-bound “state objects” within your data and, from there, identifying the transitions should be as simple as calculating the gap between states.

Question 3: Yes, it will, in my opinion, be a much harder problem to solve. The state “object” you are trying to recognize will cluster much better into the more distinct states than the transitions (and therefore be more readily separable by an estimator), and the “size” of the states vs the transitions should make them easier to detect as well.

Like trying to detect cars in images vs detecting the empty space between cars...not a perfect analogy but paints a picture

  • $\begingroup$ Regarding your suggestion for my question 2, do you have any paper or github/kaggle/ipython notebook as example for me to study please? $\endgroup$ – Victor Oct 11 '18 at 13:56
  • $\begingroup$ I'll look around for you, although if I were you, I'd just start with a convolutional net used for object recognition in images and tweak it to expect your sensor data as the "image" $\endgroup$ – John H Oct 11 '18 at 14:13
  • $\begingroup$ So is this an usual approach? as Ken said, I should probably clarify that I am training a classifier in the way of supervised learning, could it lead to different approach? $\endgroup$ – Victor Oct 11 '18 at 15:44
  • $\begingroup$ I understood your requirements, and my recommendation stands. $\endgroup$ – John H Oct 11 '18 at 16:19
  • $\begingroup$ This is an unusual problem, and so I doubt you'll find a usual approach. $\endgroup$ – John H Oct 11 '18 at 16:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.