Problem Scenario

I am working on an industry specific problem focussed on predicting the failure of a seal/gasket in the given time interval(T) in a high-pressure-compression environment. Whenever this seal/gasket is broken there is loss of pressure and a leak. This leak is extremely dangerous. The gas in question is H2 and this makes things even scarier. The specific problem would be this, "Predict the likelihood of this Seal Surviving past a time Ti provided that the event has not happened yet". This Ti is typically in the future for example, 2 days, 2 weeks, 2 months etc.


The Dataset I have is timeseries, which are sensor measurements which have been collected over the past couple of months. Please note that these sensor readings are done every 100 ms and each machine has ~ 60 of these. There are 7 such machines where the gasket/seal had to be changed a couple of times (1-3 per machine) in the last year. So these would be the 'Event' in my prediction task. You could imagine the dataset as the following for each machine where S_1 to S_34 are the sensor readings for simplicity.

0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 --> No Seal Change
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 --> No Seal Change
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 --> No Seal Change
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 --> No Seal Change
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 --> Seal had to be changed

P.S. I am aware this isn't in the typical format survival analysis data is structured.

Problems I am facing - All related to Data Scarcity

  1. There is a huge class-imbalance if I can call it that. The times the seal have been changed is very little compared to all the data being logged. Any suggestions on how I can tackle this would be appreciated?

  2. Can I get suggestions for any other way to predict the likelihood of this Event happening in a given time Ti without Survival analysis if that is better?

  3. I would also know of any other methods usually used in Survival Analysis, of restructuring the data in a certain way if that helps me solve the Class Imbalance?



Research Papers

Python Libraries


2 Answers 2


I'm not sure to understand all the ins and outs of your problem, however here are a few suggestions that might help:

  • Are the 60 sensors significant enough to make a prediction? Probably not. Maybe you could detect which ones are the most relevant first in order to have clean data and improve prediction results.
  • 100ms might be too precise for predictive ML models. In addition to that, you can't replace a seal if your prediction comes in 300ms. You will want to size the problem to a human or physical realistic scale. Maybe having minutes containing the average or the max value of the 100ms set of values? Maybe hours? Therefore, some study about chain reactions of your problem could be necessary to have the right time scale.
  • Like any other industrial problem, sensors' sensitivity may differ from one machine to another and there could be noise that alter them. If it is the case, you could also check if the sensors behavior are similar from one machine to another and set acceptance range, and reduce the noise to have comparable values between machines.
  • $\begingroup$ First off, thanks for the reply. Point 1 This is not currently my area of concern and the goal of this project is to predict the likelihood of a seal breaking, it is assumed that the data is rich enough to contain a concept. Point 2 All the sensors note the readings at a certain time interval, but i feel that is more of a Data cleaning/Data pre-processing concern, Survival models output the predictions with respect to time, so the risk is evaluated days before it actually happens(atleast should ^^'), Point 3 This is not my concern too. $\endgroup$
    – AvidJoe
    Jun 17, 2021 at 13:34
  • $\begingroup$ So you believe it is possible to have a good survival model of a seal breaking, predicting in hours or days, having a sampling of 100ms, without changing the time scale? Why? $\endgroup$ Jun 17, 2021 at 14:08
  • $\begingroup$ I dont believe or dont believe in what you are saying that i do. It is just not my point of concern with respect to the questions asked. that is all. $\endgroup$
    – AvidJoe
    Jun 17, 2021 at 14:14
  • $\begingroup$ Ok understood. About data scarcity, either you have to produce new data artificially (by simulations or maybe Generative Adversarial Networks), or by understanding the industrial mechanisms behind the data in order to tune the scarce data to such mechanisms and learn to detect what is meaningful. Does it answer to your questions? Making predictions with scarce data is very difficult otherwise. $\endgroup$ Jun 17, 2021 at 14:50

Did you make an improvement in your reflection?

I am working on a similar subject.

The way I see this:

  1. We have windows of record (1h or 1day, ...) for one machine coming from many sensors (a time series for each)

  2. We cannot rely on the raw data, on this period we can extract features (such as statistical and/or temporal features) using a library such tsfel (in Python)

    fts = tsfel.time_series_features_extractor(cfg, x[t : d], verbose = 0)

where x is the data vector during the window time for 1 sensor and t and d the win size.

  1. Then for each time interval (windows) we also a flag event = 0 if everything ok or = 1 if something happen (Note I'm talking about training data - so that suppose a hand labelisation on the data)

  2. So we have : TimeInterval (d-t) | ft1 | ft2 .... | event

  3. On this base we start working on survival model (+machine learning)

That is the way I see thing, let me know what are your advance

Also, articles you may consider:

Lifetime prediction of sealing

Bearing remaining useful life prediction


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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