## 5 In the Search for a Missing Link
### Methods and Evaluation Metrics  
The dataset was randomly divided into training and testing sets in an 80:20 ratio. To mitigate the impact of the class imbalance problem, which leads to the degradation of the model's performance, in addition to training the models only on the original data, we oversampled the training part of the dataset using the SMOTE (synthetic minority oversampling technique) algorithm presented by [PERSON] et al. in 2002 [55]. The algorithm generates synthetic examples based on the minority class examples and their closest existing neighbors. These synthetic data can help in cases of unbalanced datasets, but they can also lead to performance deterioration. In the cases where the model trained only on the original data outperformed the one trained in the oversampled dataset, we reported only the better-performing version. In each table that presents the models' results, the use of the SMOTE is indicated by the \"+\" symbol in the appropriate column; the symbol \"-\" was used otherwise. To predict the selected offer and the game's outcome, we tested various types of models, ranging from logical and probabilistic approaches to artificial neural networks, tree-based methods, and ensembles. We started with a simple linear model, such as logistic regression (LR), and a support vector machine (SVM) with a radial-basis-function kernel (RBF). Next, we tested the performance of the k-nearest-neighbor model (kNN) based on example instances and both the Gaussian (GNB) and multinomial (MNB) naive Bayes probabilistic classifiers. In the next step, we investigated the performances of neural networks and decision-tree (DT) models. In each of the observed cases, we tested diverse feedforward neural network architectures and reported the best-performing one in each scenario. We used the Adam optimizer and the cross-entropy loss function (categorical for the selected offer prediction and binary for outcome predictions). For decision-tree building, we used the CART algorithm [56], first presented in 1984, which splits the tree based on the Gini impurity. To reduce the tree's complexity and improve the model's generalization abilities, we used cost-complexity pruning. Moreover, we tested several ensemble methods to evaluate the performances of different model combinations. In addition to using a voting classifier with independently trained models, we also tested a random forest (RF) and extreme gradient boosting (XGBoost). Although all the mentioned methods were tested in all the observed scenarios, only the results of the best-performing models are presented in the following two subsections. For the hyperparameter optimization, we used k-fold cross-validation with 10 folds in the training set, with the F1-score as the metric. In the case of neural networks, we used a different approach. This is the only case where we split the original dataset into three sets in a 70:15:15 ratio. The first 70% of the dataset was used for network training, while the next 15% was used for the model validation and selection of the optimal parameters. The last 15% was used for the final model evaluation. The pseudocodes for training neural networks and other models are presented in Appendix B.1 and Appendix B.2, respectively. To evaluate the models' performances, we used several standard evaluation metrics. In addition to extracting the confusion matrices, we also calculated the accuracy, precision, recall, and F1-score of each model. Because of the significant class imbalance for both the selected offer and outcome predictions, we used the weighted averaging of the selectedmetrics. The models' performances were compared according to the achieved F1-scores. The best-performing model, according to the F1-score, is highlighted in bold in the result tables (Tables 9-17) in the following subsections. To understand the models' reasoning, we used SHAP (Shapley additive explanations) values [57], which reveal how features influenced the models' outputs.