3
$\begingroup$

Imagine that I have a set of short term time series data (signals) with different shapes and parameters. I would like to extract/select a set of features (parameters/functions/indeces) to identify each sequence and distinguish between them. Such features are simple features e.g. max and min value, mean, variance, start and end value, etc. or more complex ones e.g. entropy, no. peaks, power spectrum, etc. I am looking for more "representative" features to express the signals and distinguish them. What features do you know (in signal processing or data mining fields) that can represent a parameter in signals?
For example, in the following image, there are two signals with the same parameters such as mean, min-max values. But what are the features that differ them (for instance no. peaks, but generally what else?) enter image description here

$\endgroup$
  • $\begingroup$ You could look at the fourier transform or perhaps count peaks and troughs, maybe after applying varying degrees of low pass filtering. $\endgroup$ – image_doctor Aug 18 '15 at 14:02
  • 1
    $\begingroup$ Have a look at Wavelets because they provide a very powerful framework for comparing signals: en.wikipedia.org/wiki/Wavelet $\endgroup$ – Alex R. Aug 18 '15 at 19:27
3
$\begingroup$

The examples that you provided look similar to one another in duration and amplitude, so normalization might not be a problem. But consider whether you will always be comparing the same duration and whether you want to compare the relative change in the time series or the absolute change. The relative change can be measured by normalizing the series so that the first value (starting point) is set to 0. Depending on your problem, this might be worth considering.

Second, think about some sort of smoothing algorithm to get rid of some of the jitter in your data. Examples include an Exponentially Weighted Moving Average or a second order Holt-Winters EWMA.

The suggestions in the comments are good ones... both Fourier Transform via FFT or moving to a wavelet formulation are interesting, but they are still a one-to-one in terms of the amount of data in (in temporal space) being equal to the amount of data out (in frequency space).

I would suggest first including the raw data or a down-sampling of the raw data with some additional features like area under the curve, max, min. I would stay away from procedures which amplify the jitter of your data (like derivatives) in favor of those which decrease the jitter (like integrals).

A nice option, which implicitly smooths would be to take a running integration of your data and then plot the running integral rather than the values themselves. This wouldn't require apriori smoothing and is still deterministic.

Following this, I suggest doing a whole bunch of feature extraction/feature engineering and then trying a LASSO regression to pick out the most useful features.

Some feature engineering ideas include:

  • Fourier Transform via FFT
  • Possibly only keeping the n (~10) largest Fourier Modes from above rather than the full set.
  • Integrals of your data.
  • Min.
  • Max.
  • Number of zero crossings.

Suggestions to look at the number of changes in the second derivative are tough with time series data due to its stochastic nature. The slopes (derivatives) are very wild and depend largely on how much smoothing has been applied and how the data is being sampled.

| improve this answer | |
$\endgroup$

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.