## 2 Materials and Methods
### Software and Tools  
The computational framework for this study was built in Python (version 3.12.0), chosen for its robust ecosystem of data science libraries and straightforward syntax. Several key frameworks and libraries were employed to implement and evaluate our machine learning models. Specifically,'scikit-learn' (version 1.5.2) [36] served as the foundational toolkit for model construction, evaluation, and cross-validation routines [1]. In tandem with'scikit-learn', the gradient boosting libraries 'xgboost' (version 2.1.1) [37], 'lightgbm' (version 4.5.0) [38], and 'catboost' (version 1.2.7) [39] were utilized to harness their state-of-the-art performance characteristics, particularly beneficial for tabular datasets.  
To optimize model hyperparameters, we leveraged the 'hyperopt'(version 0.2.7) [40] package, employing the Tree-structured Parzen Estimator (TPE) for Bayesian optimization. Within each Bayesian optimization routine, the 'cross_val_score' function from'sklearn_model_selection' was used to fine-tune each model's hyperparameters by maximizing the F1 score. For the final model evaluations based on multiple train-test splits, the 'cross_validate' function from'sklearn_model_selection' enabled consistent and reproducible cross-validation performance metrics.  
Statistical power analyses to determine appropriate sample sizes were conducted using 'ttestindpower' from'statsmodels_stats_power' (version 0.14.4) [41]. Moreover, we employed functions from'mlxtend_evaluate' (version 0.23.1) [42]--namely, 'paired_ttest_5 x2 cv' and 'paired_ttest_kfold_cv'--to perform statistical tests across cross-validation folds, providing greater rigor in performance comparisons. For the assessment of classification model misclassifications, the'mcnemar_table' and'mcnemar' [42] methods were harnessed to conduct the McNemar test. Finally, for conducting non-parametric analyses such as the Friedman and Wilcoxon tests, we utilized the 'friedmanchisquare' and 'wilcoxon' functions from'scipy.stats' (version 1.14.1) [43].  
To address the issue of inflated Type I error rates associated with traditional statistical tests on correlated samples, the 'correctopy' package (commit 99 cc7e87 from GitHub) [35] was incorporated into the computational framework of this study. This Python package is designed to implement corrected test statistics specifically tailored for scenarios involving non-independent samples, such as those generated through resampling and k-fold cross-validation procedures. Within 'correctopy', the functions'resampled_ttest', 'kfold_ttest', and'repkfold_ttest' were utilized to perform statistical comparisons between machine learning models. Modifications were applied to all the aforementioned functionsto enhance the accuracy and validity of the statistical analyses. Discrepancies, such as the absence of a square root operation in the denominator of the t-statistic computation or similar straightforward errors, were identified. These issues were corrected to align the computations with the appropriate statistical methodology. All machine learning models were constructed using a consistent random seed (random state = 39) to ensure full reproducibility of results across experiments and mitigate variability due to stochastic processes inherent in model initialization and data partitioning.  
All computational experiments were performed on an HP-250-G7 Notebook PC, powered by an Intel64 Family 6 Model 142 CPU operating at 2300 MHz and equipped with 16 GB of RAM. The training times and hyperparameter optimization durations for each model were recorded on this hardware configuration and will be reported in the subsequent results section.