## 7 Forecasting Results with the Use of an LSTM Network  
The test results were indexed by a temporal range of values represented by the \(yy\) axis (the values from the tests). There was a correspondence on the \(xx\) axis representing the date on which that value was recorded. In this way, the data allowed the use of an LSTM network capable of making predictions by studying sequences of values. However, in order to constitute a prediction, this type of analysis must be based on future events to incorporate and project data related to the past in a predetermined and systematic way. In order to obtain a prediction on this type of data, the model must be able to interpret various sequences belonging to the data set already on record and project the appropriate prediction of future values. Next, we present the methodology used to fulfill the proposed objective, as well as the conclusions. The graph represented by Figure 10 illustrates the DC-CURR_SDARS test over a time range of approximately five months. After transforming the data, the next step involved selecting seventy percent of the data for a training dataset and the remaining thirty percent for a test dataset. The methodology used for creating the variables x_train and y_train considered sequences of 100 elements for x_train and element 101, i.e., the element following the sequence of the one hundred selected elements, was stored in y_train, representing the desired value that the model should achieve (or the prediction). The same applied to the test variables. The arrangement of the data and proper organization of these training and test variables allowed the data to be formatted for network training. Using the Keras library [16], the model was built by three LSTM layers (fifty units each) and a dense layer (with one neuron), see Figure 11.  
Figure 10: Graph for DC–CURR_SDARS tested values. After adequately inserting the training variables into the model and the test variables as validation, the model was trained for six seasons. Although the model had an acceptable accuracy, it could not be assured that these were predictions that projected the behavior of future values. The behavior of the predictions obtained followed the data represented. However, it did not guarantee how future behavior would look like, so the next step involved obtaining a prediction that suggested the behavior of the next 30 antennas to be recorded. To make this possible, the sequence of 100 antennas to be considered was the last 100 antennas recorded in the test dataset. The model then considered the input sequence of 100 elements and predicted element 101. The first element of the sequence was removed, and the predicted element (the one with index 101) was added to the end of the sequence generating a new sequence of 100 values for the next iteration. This process was repeated 30 times until the desired sequence of 30 elements was obtained, see Figure 12.  
Figure 11: LSTM architecture. Finally, after the 30 iterations, the result was placed on the graph along with the sequence considered in the first iteration. The reason we stuck with 30 iterations was because it felt like the \"safe zone\"; this number of iterations could be higher, although it could hurt the performance of the algorithm and make it biased. A higher number of iterations could result in having a sequence used to predict new values (100), where more than a third of its elements (30) would already be a prediction, which means the model would be doing predictions based on predictions. As such, the goal was to then validate the prediction and keep training the model once the forecasted values were validated; this way, we ensured that at least two thirds of the data were real and not forecasted. Figure 13 displays the prediction result (red color) as well as the initial value sequence (blue color). This type of usage allows the LSTM network to play the role of predictive maintenance.