## 3 Materials and Methods
### Overview of Used Architectures  
During the training phase, several architectures were used. This section will describe and analyze the main architectures that showed the best performance. The code for the model implementations was developed using PyTorch 2.4.0, one of the most widely used and flexible deep learning libraries. It was chosen for its high degree of customization for training and the availability of numerous tools for monitoring the training process. In fact, Tensorboard, a monitoring library that allows visual tracking of performance metrics, was used in combination with PyTorch, facilitating comparative analysis between the different architectures developed. The models used are as follows:  
* Single-Layer Perceptron [49]: One of the most basic artificial neural network models. This architecture was chosen because, despite its simplicity, it represents an ideal starting point for understanding the magnitude of the problem and developing more complex neural networks. It consists of a single layer of neurons, i.e., the output layer, which directly receives input from the initial data and provides an output result. Therefore, there are no hidden layers, making the architecture capable of only making linear predictions. It therefore allows for an understanding of the basic characteristics of the data without introducing unnecessary complexity. However, this simplicity limits it to being used as a baseline rather than a true definitive solution. * Shallow Network: A more advanced neural network architecture compared to the Single-Layer Perceptron, it represents a step forward in tackling more complex problems. The addition of the hidden layer, which processes data from the input layer and applies a nonlinear activation function to the result of the processing, enables the network to learn nonlinear relationships between the input features, significantly improving its classification ability. It therefore introduces greater flexibility and represents a fundamental intermediate step for understanding how the addition of a hidden layer and the ability to model nonlinear relationships actually affect the results. However, it remains limited in its ability to capture the temporal dynamics of the data, as it lacks a structure specifically designed to handle sequential data. * Random Forest [50]: A supervised learning model that uses a large number of independent decision trees to make predictions or classifications. Each tree is constructed using the bootstrap method, meaning a random subset of the Training-Set data is used. Additionally, at each node of the tree, a random subset of the available features is selected to determine the best split, which is crucial for introducing diversity among the trees. In classification tasks, the result is obtained through majority voting, where each tree \"votes\" for a class, and the class with the highest number of votes is returned as the final output. Therefore, it represents a powerful and flexible approach for classification, thanks to the combination of multiple independent decision trees. It was selected for its robustness against noisy datasets and its ability to identify complex patterns without assuming linear relationships. This approach does not require extensive pre-processing and proves to be versatile, but, once again, the lack of an inherently temporal structure limits its ability to analyze data with sequential dependencies. * Long Short-Term Memory [51; 52]: An architecture suitable for processing sequential or temporal data. Its operation is based on a complex internal structure that allows the network to learn both long-term and short-term dependencies through the use of memory cells and gating mechanisms. The main variables used by the architecture to maintain information over time are \(C_{t}\), which represents the long-term memory of the LSTM units, and \(h_{t}\), which represents the short-term memory.