## 2 Methodology
### Coding and Software Libraries
#### 2.2.3 AI Approach: Machine Learning Algorithms
SVMs can handle both linear and non-linear data, making them suitable for a wide range of classification tasks. Extra gradient boosting classifier (XGBOOST): XGBoost is a highly efficient implementation of gradient-boosted decision trees that prioritizes optimized memory usage and harnesses the full potential of hardware computing power. This results in a faster execution time and improved performance compared to many traditional machine learning algorithms and deep learning models. The core concept behind boosting is to construct subsequent sub-trees from the original tree in a sequential manner, with each new tree reducing the errors of the previous one. The new sub-trees modify the residuals from the previous iteration to minimize the error in the cost function [38]. Multilayer perceptron neural network (MLPNN): MLPNN is a supervised learning algorithm that learns a function \(f(\cdot):R^{m}\to R^{o}\) by training on a dataset in which \(m\) is the number of input dimensions and \(o\) is the number of dimensions for output ([PERSON] 2007). An MLPNN operates in three stages. Firstly, during the forward pass, the model inputs are multiplied by the weights, the bias is applied to each layer, and the model output is calculated. This predicted output is then evaluated against the given inputs, and the loss is determined at the output. The output model provides predicted results based on the input parameters, and a backpropagation algorithm is used to compare the predicted results with the actual results. Different loss functions may be employed, depending on the desired performance and requirements [39]. During the backward pass, partial derivatives of the cost function that concern various parameters are propagated back into the network [40]. This process involves the backpropagation of loss, and the model weights are updated using gradient descent. An MLPNN typically consists of at least three layers of nodes: an input layer, a hidden layer, and an output layer [38]. Given a set of features \(X=x_{1},\ \ x_{2},\ \ldots\ x_{m}\) and a target \(y\), an MLPNN can learn a non-linear function approximator for a classification problem [40]. The MLPNN was selected as one of the algorithms because of its capabilities of modeling complex, non-linear relationships between input and output variables with a wide range of input data types [40]. Additionally, MLPNNs can generalize well to new data and adapt to changes in the input data by adjusting their internal parameters, making them useful for applications in which the data are subject to change over time. With regard to handling complex data, an MLPNN can be scaled up by adding more layers or nodes to the overall neural network architecture [41]. Model Evaluation: After employing the five algorithms on the training data, the models were evaluated using an independent testing dataset to assess their performance. The confusion matrix was calculated, and performance metrics, including accuracy, recall, and precision, were measured using the following equations:  
\[Accuracy=\frac{TP+TN}{TP+TN+FP+FN} \tag{2}\]  
\[Recall=\frac{TP+TN}{TP+FN} \tag{3}\]\[Precision=\frac{TP}{TP+FP} \tag{4}\]  
\[F1\ score=2\times\frac{precision\times recall}{precision+recall} \tag{5}\]  
where _TP_ = true positives; _TN_ = true negatives; _FP_ = false positives; and _FN_ = false negatives. Accuracy measures the model's overall prediction correctness, recall measures the prediction sensitivity, and precision is known as positive predictive value. A way to balance the trade-off between precision and recall is the _F1 score._