Supplementary Material S2. XGBoost Hyperparameter Configuration Model: XGBoost Gradient Boosting Classifier Python package: xgboost version 3.2.0 ┌─────────────────────────────────────┬──────────────┬──────────────────────────────────────────┐ │ Hyperparameter │ Value │ Rationale │ ├─────────────────────────────────────┼──────────────┼──────────────────────────────────────────┤ │ n_estimators │ 200 │ Sufficient for convergence │ ├─────────────────────────────────────┼──────────────┼──────────────────────────────────────────┤ │ max_depth │ 4 │ Moderate depth to prevent overfitting │ │ │ │ given limited EPV (~8.2) │ ├─────────────────────────────────────┼──────────────┼──────────────────────────────────────────┤ │ learning_rate │ 0.05 │ Conservative rate for stable training │ ├─────────────────────────────────────┼──────────────┼──────────────────────────────────────────┤ │ subsample │ 0.8 │ Row subsampling for regularization │ ├─────────────────────────────────────┼──────────────┼──────────────────────────────────────────┤ │ colsample_bytree │ 0.8 │ Column subsampling for regularization │ ├─────────────────────────────────────┼──────────────┼──────────────────────────────────────────┤ │ scale_pos_weight │ 4132/304 │ Class imbalance correction │ │ │ ≈ 13.6 │ (CS minority vs VB majority) │ ├─────────────────────────────────────┼──────────────┼──────────────────────────────────────────┤ │ eval_metric │ logloss │ Standard probabilistic loss │ ├─────────────────────────────────────┼──────────────┼──────────────────────────────────────────┤ │ random_state │ 42 │ Reproducibility seed │ ├─────────────────────────────────────┼──────────────┼──────────────────────────────────────────┤ │ n_jobs │ 4 │ Parallel processing │ └─────────────────────────────────────┴──────────────┴──────────────────────────────────────────┘ Hyperparameter selection rationale: Hyperparameters were selected based on published recommendations for clinical prediction models with limited events per variable (EPV=8.2), prioritizing regularization to prevent overfitting. The chosen configuration (max_depth=4, subsample=0.8, colsample_bytree=0.8) performed adequately on the temporal validation set, and no further grid search was deemed necessary given the primary objective of demonstrating generalizability across time rather than maximizing AUC.