I know this is primarily a statistics site, so if I am off-topic, please redirect me.

I have a system with pumps that sometimes break and need to be replaced. I would like to be able to predict the failures, and thereby give early warning to the people replacing the pumps. I have historical data for the pump process, such as flow, pressure, liquid height etc.

I have only a small amount of experience in using machine learning techniques to classify data - basically I have followed and done the exercises of Andrew Ng's machine learning course on coursera, as well as Andrew Conway's Statistics One, - and I have never used machine learning to classify time series. I am thinking of ways I can transform the my problem so that I can use my existing knowledge on it. With my limited knowledge, I will not get a very optimal prediction, but I hope to learn from this, and for this problem, any small improvement in prediction is useful, versus just waiting for the faults to occur.

My proposed approach is to turn the time series into a normal classification problem. The input would be a summary of a time series window, with mean value, standard deviation, max values etc. for each type of data in the window. For the output, I am not sure what would work best. One approach is that the output would be a binary classification of whether the pump failed within a certain time period from the end of the window or not. Another is that the output would be the time left before the pump fails, so not a classification, but a regression (in the machine learning sense) instead.

Do you think this approach is likely to yield results? Is it a question of "depends on the domain and historical data". Are there better transforms (of both input and output) that I haven't considered, or is fault prediction based on time series data so different from more standard fault prediction, that my time would be better spent reading up on machine learning with time series?

  • $\begingroup$ Real time vibration/noise measurement of the pumps would be a real bonus here. $\endgroup$ Dec 11, 2012 at 17:01
  • $\begingroup$ @image_doctor: I might be able to get that. Do you mean that it would be good, because vibration/noise is relevant to the problem domain? In that case, couldn't I summarize it like the other data? Or is it inherently about the information processing being in real time? I would like to be able to predict faults well in advance, like a day or (preferably) more. I don't know if it is feasible with the domain and the data. But this timescale doesn't suggest to me, that real time processing really helps. If you mean that the real time is significant, have I misunderstood something? $\endgroup$
    – Boris
    Dec 11, 2012 at 21:45
  • $\begingroup$ It is relevant to the problem domain. Pumps often show signs of imbalance or changes in vibrational modes prior to failure. Real time spectral analysis, or at least something like hourly samples, should be a very useful feature for failure prediction. $\endgroup$ Dec 12, 2012 at 0:30
  • $\begingroup$ I have a similar problem and I am currently evaluating the potential of using Cox Proportional Hazard Models. Were you able to use this in your solution? Could you please share with us the final solution you took to achieving the result? $\endgroup$
    – user91331
    Oct 6, 2015 at 5:38

2 Answers 2


You may want to look at survival analysis, with which you can estimate the survival function (the probability that the time of failure is greater than a specific time) and the hazard function (the instantaneous probability that a unit will fail, given it has not experienced failure so far). With most survival analysis approaches you can enter time-invariant and time-varying predictors.

There are a variety of different survival analysis approaches including the semi-parametric Cox proportional hazards model (a.k.a. Cox regression) and parametric models. Cox regression doesn't require you to specify the underlying base hazard function but you might find that you need a parametric model to properly capture the failure patterns in your data. Sometimes parametric accelerated failure time models are appropriate, where the rate of failure increases over time.

You might try starting with Cox regression since it is the simplest to use and check how well you can predict failure on a holdout test set. I suspect you may have better results with some sort of survival analysis that explicitly takes into account time and censoring (pumps that have not failed yet) than with trying to turn this into a non-time-based classification problem.

  • $\begingroup$ I have a similar problem and I am also trying to frame that in a survival analysis framework: I basically have the same plant that keeps failing and works again after maintenance. I want to determine when and if the plant is going to fail. In that case, how to combine multiple measurements over each time interval because survival analysis will have one row per failure but I would have collected data for hours before failure. $\endgroup$
    – discipulus
    Sep 15, 2016 at 7:13

I'd base my decision on classification vs. regression based on the availability of data (the latter requires knowing the exact time at which the failure occurred, the former does not) and whether having estimates of the time to failure is really a requirement for your problem (my default would be to try classification first).

  • $\begingroup$ Thanks. Yes, in some way, estimating the time to failure is taking a longer route to the result, but it saves the problem of deciding which failure period to estimate: I don't know if the data supports classifying a 10-day failure period better than a 5-day period, so with the classification, I have to train many classifiers and then trade off giving the best results vs. giving a timely warning. Estimating the time to failure would sidestep that, but the estimation itself might be harder. $\endgroup$
    – Boris
    Dec 11, 2012 at 22:04

Your Answer

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

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