## 2 Materials and Methods
### Methods Used  
#### 2.2.1 Artificial Neural Network  
One of the most widely used methods in the field of data mining and Machine Learning is ANN, introduced in 1943 by [PERSON] and [PERSON] [47]. This concept, inspired by the biological neural networks of human brains, is an inter-connected group of artificial nodes performing computational tasks [48]. Similar to a biological neuron composed of dendrites, a cell body, axon and synapse [34], an artificial neuron has inputs, variable weights and outputs [49]. Such an inter-connected system of nodes is able to understand and solve complex problems that exhibit a nonlinear relationship between causal factors and responses [50; 51]. Indeed, the ANN model has relevant benefits not found in conventional computational models. Hypotheses or pre-constraints during modelling are not necessary when training the ANN model [28; 52]. The technique is able to analyze and discover complex relationships and processes in the data [53; 54]. From a computational point of view, ANN is very efficient for high-dimensional problems, because of its excellent capacity in parallel processing [55; 56], however, it is still very limited to real-time and industrial applications [57; 58]. Nonetheless, the performance of ANN is affected by other problems, including over-fitting [59], noisy data [60] and susceptibility to training data [61]. The structure of an ANN model comprises three types of layer: input (variables), hidden (functional layer), and output layers (network's outcomes). These layers are connected by the artificial computational neurons, which compute the weighting parameters of the model. ANN can contain multiple hidden layers. For simplification purposes, the following description is presented for a single hidden-layer neural network. The following nonlinear function is generalized by the ANN model [62; 63; 64; 65]:  
\[Y=f(X), \tag{1}\]  
where \(X\) is the input vector and \(Y\) is the predicted variable. The function \(f\) can be fully detailed as follows:  
\[f(X)=fo(M\times(fh(b+W\times X))+b_{o}), \tag{2}\]  
where \(W,fh\) and \(b\) are the weight matrix, activation function and bias vector of the hidden layer; while \(M\), \(fo\) and \(b_{o}\) are the weight matrix, activation function and bias vector of the output layer, respectively. Figure 3 introduces the architecture of the ANN model involving one hidden layer. The ANN model is trained (i.e., estimation of the weight matrix and bias vector) with an optimization method, using backpropagagation as a gradient computing technique [66; 67]. More precisely, the optimizer allows locating the minimum of the cost function based on gradient descent, whereas the backpropagation allows computing such gradient that the optimizer uses. For a given ML problem, it is very difficult to determine which activation function and training algorithm are appropriate. This depends on many factors, including the complexity of the problem, the number of data points in the training set, the number of weights and biases in the network and the error goal [68]. Therefore, in this study, a parametric study was conducted to select the most appropriate parameters for the problem at hand. According to various works (e.g., [22; 34; 38]), one hidden layer can solve any complex function in a network. Therefore, the number of hidden layers was fixed at 1 in this study. However, other parameters needing to be calibrated include the activation function, cost function, training function and the number of neurons in the hidden layer. In any ML model, activation functions could affect: (i) the output response, (ii) the accuracy and (iii) the computational efficiency during the training process [69; 70].