I am trying to predict machine failures based on alarm data.
There is approximately 4000 machine failures per year. These are labelled poorly (it is entered manually and can have multiple names for the same failure). This dataset consists of the timestamp, failure name and failure description in the following way.
timestamp, name, description 01/01/2020 - 08:10, Motor Failure, Motor failed due to overheating
Also there is approximately 1 million alarms per year showing possible issues (There are 8000 possible alarms in the system but only ~1200 makeup the 1 million that activate). Alarms fire at the point of failure, but also in a large percentage of cases there are multiple related alarms activating for weeks before hand that are unable to be acted upon due to the shear number. This dataset consists of the timestamp, alarm id, and alarm description like the following.
timestamp, alarm id, description 01/01/2020 - 08:10, MFHeatHiHi, Motor temperature critical
Please excuse my ignorance as I am new to data science. I am trying to work out the best way to clean up/modify the data first and then in which directions to go for creating the prediction. Please let me know if I am going about it the wrong way or have the incorrect idea on where to start.
Update the 4000 failures with the same name for same events (I estimate there are approximately 600 discrete failures within this). Or I call them all the same name "failure" and test the alarms against only one variable and use the alarm description to give me the issue that may cause the failure.
Break the alarms in to time windows proceeding the failure (possibly 30 days or less). Then use the alarm id - description as columns with the number of occurrences as the value.
Failure timestamp, MFHeatHiHi - Motor temperature critical, FanHeatHiHi - Fan temperature critical, 01/01/2020 - 08:10, 4, 3,
Then I was thinking of using random forest with R.
Is this the right way to go about it, should I be making failure just one variable, is removing the time component of the alarm and transforming to number of alarms the correct way to go about it and would that mean I need 8000 columns for every possible alarm.
I am pretty sure I have the wrong method so would really appreciate some guidance so I am heading in the right direction.
Thanks for your help,