approach for predicting machine failure using maintenance history I have been struggling with this problem for a while now and I finally decided to post a question here to get some help. The problem i'm trying to solve is about predictive maintenance.

Specifically, a system produces 2 kinds of maintenance messages when it runs, a basic-msg and a fatal-msg, a basic message indicates that there is a problem with the system that needs to be checked (its not serious), a fatal-msg on the other hand signals that the machine must be shut down and the fatal problem be addressed before it is allowed to run again. All maintenance messages have a unique message-id associated with them.

For example:

Basic-msgs: 

112234: Check Valve 3 

162746: Main switch power fluctuating 

Fatal-msgs:

7432955: Valve 3 Broken

3358399: Startup Failed

Some key Details:
A basic-msg can occur without a fatal-msg, but a fatal-msg must occur with a corresponding basic-msg. Every time the machine is run it gets a unique run-id. 

Problem: By looking at the basic-msgs occurred in the previous 4 runs of the machine, predict what fatal-msgs could occur in the next run. I have the data for previous 8 years (includes basic-msgs, fatal-msgs, corresponding run-ids. 

I am stuck with this for about 3 weeks now, can someone guide me about a machine learning approach I can take to solve this, and what tools should i use.

Thanks!
Sequence labeling seems like a good fit for your problem. Your features could be the frequency of each kind of basic-msg in the past 4 runs (but maybe it would work better normalized by unit of time).

There are a good few libraries for Conditional Random Fields for example.