## 2 Materials and Methods
### Methodology
#### 2.2.3 Classifiers  
A total of 7 classifiers were employed, namely, Decision Trees, Support Vector Machines (SVMs), K-Nearest Neighbors (KNN), Random Forest, Logistic Regression, Naive Bayes, and Neural Networks, available in the _sklearn_ library in Python 3.9 [53], in order to classify the surrogate data. All classifiers were trained with the Hold-out cross-validation method by dividing the dataset into training and test sets. We utilized different ratios of the training set and the test set, and, more specifically, sizes in the range from 10% to 90%, in order to find the best ratio in our case. Each classifier was tested in a number of independent computer experiments, and the obtained average performance was utilized as a metric. The suitability of these different classifiers was evaluated with unbiased decision-making. Figure 1 shows the seven simple classifiers utilized in the present study. In all these classifiers, parameter tuning was implemented to achieve adequate results. A decision tree classifier is a supervised machine learning algorithm used for classification and regression problems. It works by recursively partitioning the data into subsets based on the values of features. At each node of the tree, a decision is made based on the feature that provides the best split according to some criterion, such as \"gini\" [54]. We used different functions to measure the quality of the split. Both the \"gini\" criterion and \"entropy\" gave good results. Also, the strategy to choose the split at each node is \"best\" and \"random\", and we utilized both of them with similar results. Random Forest Classifier  
A random forest is a meta-estimator that fits a number of decision tree classifiers on sub-samples of a dataset and uses averaging to improve the accuracy and control the over-fitting [55]. Again, we used different functions to measure the quality of the split, and, similar to the decision tree classifier, we used both the \"gini\" criterion and the \"entropy\", and the \"gini\" was better performed. KNN Classifier  
KNN is another widely used algorithm in classification tasks. This particular algorithm is nonparametric, meaning that no assumptions are made about the data [54]. The basic idea of the algorithm is to categorize the data based on a distance metric, i.e., Euclidean or Manhattan. The selection of the K-Nearest Neighbors is not an easy task, and there are no pre-defined methods to find the best value of \(k\). A small \(k\) leads to unstable decision boundaries, but a high value of \(k\) leads to high bias. Therefore, we trained the model with different values of \(k\). In our case, the best selection was \(k=3\). Also, we used the Manhattan metric to measure the distance of a new point to be classified, as a sufficient number of  
Figure 1: Utilized simple classifiers. independent computer experiments showed that it performed better than the Euclidean distance. We also utilized the _kd_tree algorithm_[54], which rearranges the whole dataset into a binary tree structure. When the data were provided, it gave the result by traversing through the tree, taking less computing time than brute search. SVM Classifier  
Support Vector Machines (SVMs) are supervised algorithms used for classification as well as regression and outlier detection. They are very effective methods in high dimensional spaces and even in cases where the number of features is much greater than the samples (though this is not our case). We utilized a linear kernel (LinearSVC), which is a faster implementation, and for the parameters, we used L2 penalization (ridge regularization) [54]. L2 regularization penalizes large weights by adding the sum of squared weights to the cost function. This implementation prevents overfitting and helps generalization to new, unseen data. We used also the parameter _dual_ = \"_False_\", which affects the formulation of the underlying optimization problem.