## 3 Results
\begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline  & & \multicolumn{3}{c}{**Scenario 1**} & \multicolumn{3}{c}{**Scenario 2**} \\ \hline
**Parameter** & **Value** & \begin{tabular}{c} **Execution** \\ **Time (sec)** \\ \end{tabular} & **Recall** & **FPR** & \begin{tabular}{c} **Execution** \\ **Time (sec)** \\ \end{tabular} & **Recall** & **FPR** \\ \hline \hline \
\begin{tabular}{c} Initialization time \\ Amplitude of the sliding window \\ \end{tabular} &
\begin{tabular}{c} 100 cycles \\ 10 \\ \end{tabular} & 1.2 & 100\% & 61.42\% & 0.13 & 97.2\% & -\% \\ \hline \hline \end{tabular}
\end{table} 
Table 7: Parameters and results of kitNET of scenario 1 (S1) and scenario 2 (S2). \begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline  & & \multicolumn{3}{c}{**Scenario 1**} & \multicolumn{3}{c}{**Scenario 2**} \\ \hline
**Model** & \begin{tabular}{c} **Hyperparameters** \\ **(Hyp.)** \\ \end{tabular} & \begin{tabular}{c} **Optimal** \\ **Hyp.** \\ \end{tabular} & **Precision** & **Recall** & \
\begin{tabular}{c} **Optimal** \\ **Hyp.** \\ \end{tabular} & **Precision** & **Recall** &
\begin{tabular}{c} **Velocity and** \\ **Scalability** \\ \end{tabular} \\ \hline DT & Maximum depth & 9 & 92.3\% & 92.5\% & 5 & 100\% & 100\% & High \\ SVM & C & 1000 & 95.0\% & 93.6\% & 1 & 100\% & 100\% & High \\ k-NN & K & 3 & 95.1\% & 93.7\% & 1 & 100\% & 100\% & Low \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Fault diagnosis performance of scenario 1 (S1) and scenario 2 (S2). After the training phase, the online condition monitoring has been tested. The pseudo-code of that phase is shown in Table 8. For the scenario 1, the data flow has been generated by sequence the observations corresponding to the nominal condition (D1 + D7 + D8), fault 1 (D2 + D9), restored condition (D4 + D6), fault 2 (D3), and fault 3 (D5 + D10). In scenario 2, the online testing has been carried out on datasets D1, D7, D8, D2, D9, D4, D6, and D3. The first 300 cycles are used for the initialization. Hence, the anomaly detector is only activated after 300 cycles. Then, at each iteration k, i.e., every 800 ms, the following steps are carried out. First, the selected features are extracted. Then, the feature vector is input to kitNET, which computes the anomaly score. If the reconstruction error is lower than the fixed anomaly threshold (\(Th_{a}\)), the feature vector is considered nominal, and the algorithm goes to the next iteration. If the reconstruction error is greater than or equal to \(Th_{a}\) for two consecutive feature vectors (stored in the counter \(a\)), the feature vectors are input to the Decision Tree, which assigns the class probability membership to the labeled observations. If the maximum probability is greater than the fixed classification threshold (\(Th_{c}\)), the predicted class is considered accurate. Hence, if the predicted class is nominal, the algorithm goes to the next iteration. Otherwise, a warning message indicating the occurred fault is generated, and the machinery is stopped. If the maximum probability is lower than \(Th_{c}\), a possible novel behavior occurred, and a human check may be required to establish the anomaly's cause. Note that the choice of the minimum number of detected anomalies that have to occur before the classifier activation is made with the goal of finding a good trade-off between the false alarm rate and the latency of the classifier. A single anomaly would generate a greater probability of error. On the other hand, if the classifier is activated after more than two anomalies, the fault or the novel behavior would be recognized after