3

Given a multivariate time series, which method could be applied to segment it into partitions of stationary signals.

To give more context: I am given a set of acceleration signals in XYZ-Direction. Based on these signals, I have to map a segment of the signal to a behaviour. The test-signals are not segmented. So I have to find a way to segment it and apply standard classifier on it.

kjetil b halvorsen
  • 63,378
  • 26
  • 142
  • 467
Grunwalski
  • 495
  • 2
  • 6
  • 11

1 Answers1

2

I have a similar problem and found out that Hidden Markov models work quite well.

But do you know the pattern of the behaviour you want to detect in advance? Or at least the segment duration? Because in that case you might also be able to use other techniques such as a sliding window with autocorrelation algorithm for example.

Dynamic programming techniques such as top-down or bottom-up algorithms (see: An online algorithm for segmenting time series) should provide an alternative solution too.

DimP
  • 236
  • 3
  • 13
  • @Ferdi Could you identify the "new question" you think appears in this reply? – whuber Apr 07 '17 at 18:13
  • Sorry. That was an error from my side – Ferdi Apr 07 '17 at 18:16
  • @DimP , yes my current solution is using sliding windows. By autocorrelation algorithm, do you computing autocorrelation as a feature ? Also can you share a source for the Hidden Markov Solution ? – Grunwalski Apr 08 '17 at 13:03
  • Sorry, I meant cross-correlation. If you know the pattern you want to detect, you can use the sliding window over the time-series data and cross-correlate until you find the best match. Otherwise, look into Dynamic Time Wrapping too, as an alternative. I don't currently have a source for the HMM, but I am using [hmmlearn] (https://github.com/hmmlearn/hmmlearn) to first EM-train my model using the full time-series dataset and then the Viterbi algorithm to find the hidden states which should at least provide you with some insight of when there is a change point. – DimP Apr 09 '17 at 17:04