I have a component and I need to predict when it will wear out and will need replacement. I monitor, let's say 5 parameters of this component, each one is monitored for every run cycle. So, the dataset can look like this:

No_of_runs    Para1    Para2    Para3    Para4    Para5
1              100      32        45      230       86
2              101      34        65      234       90
3              120      24        32      242       80
4              105      45        40      213       75
5              90       42        54      200       77
...            ...      ...       ...     ...       ...

In addition to the above, I have a dataset saying at which point this component needed replacement in the past. So, if the above dataset reaches up to 500 rows (run cycles of the component), the other dataset says that the component nedded replacement in cycles 50, 130, 340, 400.

Based on these data, the goal is to create a model able to predict when this component is going to fail in the future giving it the parameters' data up to this time.

I struggle to come up with a solution to the problem and as I have not much of experience in the field, I'm not sure of which approach to take.

It's a supervised problem, but I'm not sure of how to integrate the information of 'degradation' of the component (run cycles) or how to structure my features matrix.


1 Answer 1


Looks to me like a sequence labeling problem, where the class is binary indicating whether the component is still working or failed. In this option you should build a training dataset which each cycle which looks like this:

No_of_runs    Para1    Para2    Para3    Para4    Para5    status
1              100      32        45      230       86       ok
2              101      34        65      234       90       ok
3              120      24        32      242       80       ok
4              105      45        40      213       75       ok
5              90       42        54      200       77       ok
...            ...      ...       ...     ...       ...
1234           ..       ..        ..      ..        ..       fail

The order of the instances matters. After training, the model can tell you the probability of failing for an instance given its sequence of runs.

Conditional Random Fields are a standard option for such problems.

  • $\begingroup$ Thank you for your answer. I gave a try shaping my matrix like that and tried to use CRF using the sklearn-crfsuite for python. The thing is that every example I see on that has to do with NLP and I'm struggling to embed my numerical features into the model. $\endgroup$ Commented Jun 24, 2019 at 11:19
  • $\begingroup$ Yes CRF is used a lot in NLP with categorical features, that's what I know myself but it can be also used with numerical feaures (see e.g. stackoverflow.com/questions/26152381/…). I don't know about python libraries, sorry. $\endgroup$
    – Erwan
    Commented Jun 24, 2019 at 13:26

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.