## 3 Methodology
### Algorithms for Training and Prediction Steps  
This section introduces the two machine learning algorithms used in the training and prediction steps of our proposal: K-nearest neighbors and artificial neural networks (ANN). For the training step, the ML algorithms are trained considering (1) the set of 22 extracted features for the instances in the first step and (2) the suitable parameter values per instance obtained in the second step. The ML algorithms learn a non-linear mapping between a feature vector and metaheuristic parameter values. Then, for the prediction step, the ML algorithms consider a fixed-length vector of extracted features of the unseen instances as input. The output is a fixed-length vector of the suggested parameter values. K-nearest neighbors (KNN) is a supervised learning algorithm proposed by [PERSON] and [PERSON] in [26]. KNN predicts the target value of an input by selecting the \(k\) closest data points from its training set and averaging their values. In our case, KNN selects the instances whose features are most similar to the novel instance being predicted and produces parameter values by averaging their optimal parameter values. The advantage of using the KNN algorithm is that it can produce good results considering low amounts of data for the training step, as long as the unseen inputs are not too different from what the model has seen [27]. KNN can suggest parameter vectors for novel instances by finding which of our known instances is similar. We used the KNeighborsRegressor implementation of sklearn library [28] for the KNN experiments. A KNN model is first trained on the training set of instances. To determine the parametrization for a novel instance, we find its nearest neighbors and use the average of their optimal parameter vectors. Depending on the metaheuristic used, averaging parameters may not make sense, as a metaheuristic's parameter space will, in all likelihood, be non-linear. These cases are nevertheless included to provide a more robust parameter prediction that is less influenced by noise in the instance set. We evaluate KNN models with \(K\in\{1,3,5,7,9,11\}\). Artificial neural networks (ANN) are computational models inspired by interconnected neurons in the human brain [29]. Just as electrical signals propagate throughout the brain to transmit sensory and cognitive information, ANNs define propagation algorithms that process input and learn from expected output. A neuron is defined as a mathematicalfunction that takes a numerical input and produces a numerical output. Usually, the input of a neuron will be a linear combination of other neuron's outputs. An ANN can be defined as a sequence of interconnected neuron layers. For an input vector of length \(I\), the first layer of an ANN must be of the same length, since each feature of the input vector must be fed to its corresponding neuron. In the case of a two-layer ANN, the remaining layer corresponds to the output layer. Two-layered ANNs may prove sufficient for very simple classification problems, but their modeling capacities can not be enough for more complex scenarios. To increase the complexity of the model, additional hidden layers can be added between the input and output layers. The addition of hidden layers, dropout units, and a variety of problem-oriented pre-processing layers allows neural networks to develop the capacity to learn datasets of arbitrary complexity. The artificial neural network will take a vector of features as input and produce a vector of parameters as output. We design the neural network presented in Figure 8, where each layer of the proposed design is fully connected (denoted as dense in the figure). The network consists of a 22-neuron input layer (one neuron per feature of the instances), six hidden layers, and a five-neuron output layer (one neuron per parameter tuned of HGS). All hidden layers use a hyperbolic tangent _tanh_) as their activation function, while the output layer uses a linear function.