Machine Learning-Based Prediction of Dengue Infection Using Clinical and Hematological Data from Bangladesh: A Comparative Analysis of Benchmark and Extended Prediction Models
Organizations: School of Engineering, Computer and Mathematical Sciences, Auckland University of Technology (AUT), Auckland,New Zealand · Department of Mathematical Sciences, Auckland University of Technology (AUT), Auckland,New Zealand
Abstract
Dengue is a viral infection caused by the dengue virus (DENV) and a major public health concern in Bangladesh, where symptom overlap with other febrile illnesses complicates early diagnosis. This study compares Logistic Regression, Random Forest and XGBoost to predict dengue from clinical and hematological data using two Bangladeshi hospital datasets (2024, n=1,511; 2025, n=1,283) with SMOTE. Extended models outperformed benchmarks within 2024 (Random Forest ROC-AUC 0.640 to 0.661), with RDW-CV the most consistently influential added predictor. 2025 benchmark performance was higher (ROC-AUC 0.904), unexplained by class imbalance and possibly reflecting data quality. External validation is needed.
Figures & tables
| Variable | Dataset 1 (2024) | Dataset 2 (2025) | Notes |
|---|---|---|---|
| Age | Age | Age | Common; D1 integer years; D2 has a 0.5 value (infant, in years) |
| Sex | Gender | Sex | Common; Male/Female, no missing |
| Red blood cell count | RBC | RBC | Common; Same scale (millions/µL) but D2 has extreme outliers (min 0.5, max 66.9) needing cleaning. |
| Haematocrit | HCT(%) | HCT | Common; Both (%),comparable range |
| Neutrophils % | Neutrophils(%) | Neut% | Common |
| Lymphocytes % | Lymphocytes(%) | Lymph% | Common |
| Recall (Negative) | F1-score | ROC-AUC | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Model | None | SMOTE | Under | None | SMOTE | Under | None | SMOTE | Under |
| Logistic Regression | 0.189 | 0.484 | 0.453 | 0.825 | 0.679 | 0.646 | 0.570 | 0.570 | 0.552 |
| Random Forest | 0.274 | 0.347 | 0.463 | 0.834 | 0.816 | 0.711 | 0.635 | 0.640 | 0.610 |
| XGBoost | 0.347 | 0.379 | 0.526 | 0.792 | 0.786 | 0.632 | 0.647 | 0.645 | 0.588 |
| Model | Accuracy | Precision | Recall | F1-score | ROC-AUC | Recall (Neg) | Precision (Neg) |
|---|---|---|---|---|---|---|---|
| Logistic Regression | 0.587 | 0.729 | 0.635 | 0.679 | 0.570 | 0.484 | 0.377 |
| Random Forest | 0.723 | 0.750 | 0.894 | 0.816 | 0.640 | 0.347 | 0.600 |
| XGBoost | 0.690 | 0.746 | 0.832 | 0.786 | 0.645 | 0.379 | 0.507 |
| Model | Accuracy | Precision | Recall | F1-score | ROC-AUC | Recall (Neg) | Precision (Neg) |
|---|---|---|---|---|---|---|---|
| Logistic Regression | 0.653 | 0.754 | 0.736 | 0.745 | 0.635 | 0.474 | 0.450 |
| Random Forest | 0.762 | 0.770 | 0.933 | 0.843 | 0.661 | 0.389 | 0.725 |
| XGBoost | 0.726 | 0.757 | 0.885 | 0.816 | 0.664 | 0.379 | 0.600 |
| Model | F1-score | ROC-AUC | ||||
|---|---|---|---|---|---|---|
| Benchmark | Extended | F1 | Benchmark | Extended | AUC | |
| Logistic Regression | 0.679 | 0.745 | +0.066 | 0.570 | 0.635 | +0.065 |
| Random Forest | 0.816 | 0.843 | +0.027 | 0.640 | 0.661 | +0.021 |
| XGBoost | 0.786 | 0.816 | +0.030 | 0.645 | 0.664 | +0.019 |
| Recall (Negative) | F1-score | ROC-AUC | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Model | None | SMOTE | Under | None | SMOTE | Under | None | SMOTE | Under |
| Logistic Regression | 0.446 | 0.785 | 0.769 | 0.891 | 0.874 | 0.887 | 0.844 | 0.848 | 0.857 |
| Random Forest | 0.631 | 0.723 | 0.785 | 0.920 | 0.915 | 0.895 | 0.895 | 0.904 | 0.905 |
| XGBoost | 0.692 | 0.677 | 0.769 | 0.929 | 0.919 | 0.860 | 0.903 | 0.902 | 0.892 |
| Model | Accuracy | Precision | Recall | F1-score | ROC-AUC | Recall (Neg) | Precision (Neg) |
|---|---|---|---|---|---|---|---|
| Logistic Regression | 0.821 | 0.920 | 0.833 | 0.874 | 0.848 | 0.785 | 0.614 |
| Random Forest | 0.872 | 0.908 | 0.922 | 0.915 | 0.904 | 0.723 | 0.758 |
| XGBoost | 0.875 | 0.896 | 0.943 | 0.919 | 0.902 | 0.677 | 0.800 |
| Model | 2024 F1 | 2025 F1 | 2024 ROC-AUC | 2025 ROC-AUC |
|---|---|---|---|---|
| Logistic Regression | 0.679 | 0.874 | 0.570 | 0.848 |
| Random Forest | 0.816 | 0.915 | 0.640 | 0.904 |
| XGBoost | 0.786 | 0.919 | 0.645 | 0.902 |
| Predictor | Random Forest | XGBoost | LR coef | Mean rank |
|---|---|---|---|---|
| Monocytes% | 0.0587 | 0.1043 | 0.3012 | 1.67 |
| Eosinophils% | 0.0546 | 0.1283 | 0.2005 | 2.33 |
| RDW-CV | 0.0835 | 0.0672 | 0.1585 | 3.00 |
| MCH | 0.0545 | 0.0419 | 0.1853 | 4.00 |
| PCT | 0.0566 | 0.0386 | 0.1516 | 4.67 |
| MPV | 0.0494 | 0.0317 | 0.1345 | 7.00 |
| Predictor | 2024 individual AUC | 2025 individual AUC |
|---|---|---|
| Age | 0.553 | 0.564 |
| RBC | 0.583 | 0.531 |
| HCT | 0.544 | 0.546 |
| Neutrophils% | 0.571 | 0.555 |
| Lymphocytes% | 0.580 | 0.560 |
| Platelet Count | 0.528 | 0.870 |
| Predictor | 2024 distinct values ( ) | 2025 distinct values ( ) | Coarser in |
|---|---|---|---|
| Age | 67 | 59 | 2025 |
| RBC | 4 | 480 | 2024 |
| HCT | 829 | 392 | 2025 |
| Neutrophils% | 23 | 183 | 2024 |
| Lymphocytes% | 23 | 172 | 2024 |
| Platelet Count | 1,157 | 332 | 2025 |
| Uncertainty | Question raised | Proposed design |
|---|---|---|
| Cause of the 2024–2025 gap | Does it reflect data quality, case mix or recording practice? | Data audit with the source hospitals; compare patient characteristics and laboratory methods |
| Transferability | Does a model trained on one dataset work on the other? | Cross-dataset training and testing on the eight common predictors |
| Stability of estimates | How much do results depend on one split? | Repeated stratified cross-validation with confidence intervals |
| Role of RDW-CV | Does it add value beyond 2024? | Independent validation in a dataset recording RDW-CV |
Appendix figures & tables2 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Positive (%) | Negative (%) | |
|---|---|---|---|
| 2024 Benchmark (8 predictors) | 1,511 | 68.5 | 31.5 |
| 2024 Extended (18 predictors) | 1,511 | 68.5 | 31.5 |
| 2025 Benchmark (8 predictors) | 1,283 | 74.8 | 25.2 |
| Task | Library |
|---|---|
| Data handling and cleaning | pandas, numpy |
| Data visualisation | matplotlib, seaborn |
| Machine learning models | scikit-learn |
| XGBoost model | xgboost |
| Class imbalance handling | imbalanced-learn (SMOTE, RandomUnderSampler) |
| Model evaluation | sklearn.metrics |