# Relaxed Rule-Based Learning for Automated Predictive Maintenance: Proof of Concept
## 2 Relaxed Separate-and-Conquer Rule Learning approach
If in additional to many extra variables some relevant variables contain many extra values, the negative effects specified above are, of course moderately aggravated. For instance, the RSC algorithm did not manage to correctly guess the function only in about 3% of cases. 3. **The influence of noise. ** The noise does not significantly affect the behavior of the algorithm as specified above. In particular, the RSC algorithm is still able to recognize the main rules and does not try to 'collate' the 'noisy' rows with the main ones. 4. **Comparison of RSC with DT based and Separate-and-Conquer (SeCo) rule learners. ** Finally, it is important to say that on this domain the RSC algorithm works much better than the DT and SeCo (with _ChooseNext_ heuristic) rule learners. Indeed, in those rare cases where RSC returns an incorrect collection of rules, the difference between the output and the original collection of rules has never been more than 2%. On the other hand, the rules returned by the DT based rule learner even in case of few extra variables and small domains are at least 20% different from the original collection of rules. In case of many extra variables, the difference can be up to 40%. The SeCo (with _ChooseNext_ heuristic) is only marginally better than DT. A typical situation when both DT and SeCo fail to discover the right set of rules can be described by the following simple example. Suppose that the dataset consists of 10 attributes \(attr_{1},\ldots,attr_{10}\), each attribute can take values \(1,\ldots,5\) and the outcome is 1 only for rows covered by one of the following two rules. 1. \(attr_{1}\in[1,4]\wedge attr_{4}\in[2,5]\) 2. \(attr_{2}\in[1,3]\wedge attr_{3}\in[3,5]\) Both RSC and SeCo easily discover the first rule. RSC quickly discovers the second rule. However, the SeCo rule have been removed. It picks an unrelated variable and then creates many irrelevant rules just to cover the remaining rows. Unsurprisingly, on the testing set such rules are far from being accurate. ### Failure Prediction Using a Real Industrial Dataset

For our experiments we use a real industrial dataset collected from a machine which manufactures the plastic bottle caps. This dataset consists of two following parts. **The first part** is a collection of tuples of sensor readings provided in CSV format that have been collected over more than one year from this machine. Each tuple of sensor readings is associated with a timestamp. We create a table \(R\) with columns (attributes) corresponding to the sensors and the rows being the tuples of corresponding readings. To make connection with the second part of the data, we also keep the timestamps of the tuples in the memory. **The second part** is information about alarms. This data consists of tuples having three components: start and end timestamps of an alarm and alarm error code. The alarms are associated with failures in this industrial machine, in the sense that if an alarm occurs, the machine should be switched off to find the failure. The alarm error codes are organized into four groups: shutdown, stoppage, mandatory action and message. The first two groups (shutdown and stoppage) are main errors that should be predicted to prevent failures in the machine. Five types of shutdown and stoppage alarms happen most often. In this section we refer to them by index \(i\in\{1,2,3,4,5\}\) for the purpose of explanation. The rest of this subsection is divided into the following four parts. 1. Testing the ability of the considered algorithms to predict the actual alarms occurring at the given moment of time. 2. Testing the remaining useful life prediction (RUL), this is effectively the ability to predict an alarm to occur in the near future. 3. Testing the true and false positive rates. 4. Making conclusion based on the obtained empirical results. **Prediction of actual alarms. **

For all alarms, we form the respective datasets \(D_{1},\ldots,D_{5}\). Each \(D_{i}\) is formed as follows.