I have a big amount of light curves (image below).

enter image description here

I am trying to label the points as signal or background (the signal appears usually periodically, several times, for a given light curve).

More precisely, I want to identify the downward spikes (class label = 1) from the background (class label = 0).

However, the data is not labeled. I tried labeling it by hand, and using a bi-directional LSTM succeeds in labeling the data points properly. However, there are thousands of light curves and labeling all of them would take very long.

Is there any good unsupervised approach to do this (unsupervised LSTM maybe, but any other method that might work on time series would do just fine)?

  • $\begingroup$ It sounds like you’ve labeled some of the data by hand. Can you use a clustering algorithm trained on the small amount of data you’ve already labeled? If the dataset is quite imbalanced, you may be able to separate the data into two clusters and check some of the results for signal by hand? Or maybe you can set it up as an “anomaly detection” network, which you can find many example implementations of online. That way you could separate signal (which would appear as anomaly) from noise (which seemingly dominates the signal). $\endgroup$
    – Hanzy
    Commented Apr 28, 2019 at 22:03

1 Answer 1


You can try to work with Gated Recurrent Units or GRU. This will solve your problem of with too much latency time that LSTM required. LSTM also doesn't give preference on newer data too. For more information, you can follow more on this great article

GRU Cells

  • $\begingroup$ How do GRUs help labelling the dataset? $\endgroup$
    – nbro
    Commented Apr 12, 2020 at 19:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .