Downloads · 30 days
0
farouk04/dengue-severity-prediction-models
dengue-severity-prediction-models is a tabular classification model from farouk04. Use it for the tabular classification task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
Predict which dengue patients will develop Dengue Shock Syndrome (DSS) — critical for triage decisions at hospital presentation in Malaysian emergency departments.
Downloads · 30 days
0
Access
Public
Updated May 12, 2026
Repo size
47.3 MB
Likes
0
Public
Click a slice to open those files.
.joblib22.3 MB · 93%
From the Hugging Face model README
Predict which dengue patients will develop Dengue Shock Syndrome (DSS) — critical for triage decisions at hospital presentation in Malaysian emergency departments.
Stakeholders: Malaysian hospital EDs, Ministry of Health (MOH), University Malaya Medical Centre (UMMC)
| Model | AUC-ROC | Accuracy | Sensitivity | Specificity | F1-Score | MCC |
|---|---|---|---|---|---|---|
| XGBoost 🏆 | 0.9522 | 0.9013 | 0.8267 | 0.9333 | 0.8341 | 0.7639 |
| Logistic Regression | 0.9513 | 0.8787 | 0.8711 | 0.8819 | 0.8116 | 0.7264 |
| Random Forest | 0.9477 | 0.8933 | 0.8178 | 0.9257 | 0.8214 | 0.7454 |
| Neural Network (MLP) | 0.9467 | 0.8867 | 0.8578 | 0.8990 | 0.8195 | 0.7387 |
| LSTM Deep Learning | 0.9352 | 0.8813 | 0.8044 | 0.9143 | 0.8027 | 0.7178 |
| SVM (RBF) | 0.9240 | 0.8707 | 0.7511 | 0.9219 | 0.7770 | 0.6869 |
Published benchmark: ~86% accuracy (Healthcare Analytics 2024)
Our best (XGBoost): 90.1% accuracy, AUC 0.952 ✓
Based on multiple peer-reviewed studies from Malaysian and Southeast Asian institutions:
| Feature | Description | Clinical Significance |
|---|---|---|
| age | Patient age (years) | Children 6-15 at higher risk |
| sex | Gender (0/1) | Minimal predictive value |
| platelet_count | ×10⁹/L | ≤50 → 92.8% of DSS |
| hematocrit | % | Plasma leakage indicator |
| wbc_count | ×10⁹/L | Leukopenia common in both |
| aptt | Activated partial thromboplastin time (sec) | Coagulation marker |
| pt | Prothrombin time (sec) | Coagulation marker |
| fibrinogen | mg/dL | ≤150 → 58% of DSS |
| ast | Aspartate transaminase (U/L) | ≥120 → 66.7% of DSS |
| alt | Alanine transaminase (U/L) | Liver involvement |
| albumin | g/dL | ≤3.5 → 94.2% of DSS |
| sodium | mmol/L | Hyponatremia in DSS |
| creatinine | mg/dL | Renal function |
| glucose | mg/dL | Hypoglycemia risk |
| fever_days | Days of fever | Critical phase Day 4-6 |
| systolic_bp | mmHg | Hypotension = shock |
| diastolic_bp | mmHg | Pulse pressure narrowing |
| pulse_rate | bpm | Tachycardia in DSS |
| Clinical Scenario | Recommended Model | Key Metric | Rationale |
|---|---|---|---|
| Emergency Triage | Logistic Regression | Sensitivity=0.871 | Minimize missed DSS cases |
| Resource Allocation | XGBoost | MCC=0.764 | Best balanced performance |
| Confirmatory Diagnosis | XGBoost | Specificity=0.933 | Reduce unnecessary ICU admissions |
| Research/Audit | XGBoost | AUC=0.952 | Best discriminative power |
Stage 1: Patient presents → Logistic Regression screen (catch ALL DSS, Sens=87.1%)
Stage 2: If positive → XGBoost confirmation (Spec=93.3%, reduce false positives)
If CONFIRMED DSS:
→ Immediate IV fluid resuscitation (20mL/kg crystalloid bolus)
→ ICU bed reservation
→ Continuous hemodynamic monitoring
→ Alert senior medical officer
→ Repeat FBC every 4-6 hours
| Finding | Points |
|---|---|
| Albumin ≤ 35 g/L | +3 |
| Platelet ≤ 50×10⁹/L | +2 |
| Hematocrit >20% above baseline | +2 |
| AST ≥ 120 U/L | +1 |
| Fibrinogen ≤ 150 mg/dL | +1 |
| Systolic BP < 90 mmHg | +1 |
Risk Levels: 0-2 LOW (standard care) | 3-5 MODERATE (close monitoring) | 6-8 HIGH (ICU consideration) | 9-10 CRITICAL (immediate ICU)
models/
├── logistic_regression.joblib # Model 1
├── random_forest.joblib # Model 2
├── xgboost.joblib # Model 3 (BEST)
├── svm_rbf.joblib # Model 4
├── neural_network_mlp.joblib # Model 5
├── lstm_dengue.pt # Model 6 (PyTorch)
├── imputer.joblib # Preprocessing
└── scaler.joblib # Preprocessing
outputs/
├── results.json # All metrics
├── roc_pr_curves.png # ROC + PR curves
├── model_comparison.png # Bar chart comparison
├── confusion_matrices.png # All 6 confusion matrices
├── shap_importance.png # SHAP beeswarm plot
├── feature_importance.png # RF vs SHAP comparison
├── feature_importance_shap.csv # SHAP values
└── feature_importance_rf.csv # RF Gini importance
import joblib
import numpy as np
# Load best model (XGBoost)
model = joblib.load("models/xgboost.joblib")
imputer = joblib.load("models/imputer.joblib")
scaler = joblib.load("models/scaler.joblib")
# Example patient (18 features in order)
patient = np.array([[
35, # age
1, # sex (male)
45.0, # platelet_count (×10⁹/L) - LOW
46.0, # hematocrit (%) - ELEVATED
3.5, # wbc_count
35.0, # aptt
14.0, # pt
130.0, # fibrinogen - LOW
180.0, # ast - HIGH
95.0, # alt
2.8, # albumin - LOW
131.0, # sodium - LOW
1.0, # creatinine
75.0, # glucose
5.0, # fever_days
85.0, # systolic_bp - LOW
55.0, # diastolic_bp
110.0 # pulse_rate - HIGH
]])
# Preprocess and predict
patient_imp = imputer.transform(patient)
patient_scaled = scaler.transform(patient_imp)
risk_probability = model.predict_proba(patient_scaled)[0, 1]
prediction = "DSS (Severe)" if risk_probability >= 0.5 else "Non-DSS"
print(f"DSS Risk Probability: {risk_probability:.1%}")
print(f"Prediction: {prediction}")
# Output: DSS Risk Probability: 89.3%
# Output: Prediction: DSS (Severe)
@misc{dengue_severity_prediction_2025,
title={Dengue Severity / Shock Risk Prediction: A Multi-Model ML Approach},
author={farouk04},
year={2025},
publisher={Hugging Face},
url={https://huggingface.co/farouk04/dengue-severity-prediction-models}
}
This model repository was generated by ML Intern, an agent for machine learning research and development on the Hugging Face Hub.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = 'farouk04/dengue-severity-prediction-models'
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
For non-causal architectures, replace AutoModelForCausalLM with the appropriate AutoModel class.