Maxime & Emir
#machine-learning #diabetes-prediction #healthcare #classification
#scikit-learn #nested-cross-validation #shap #fairness
Prédiction du risque de diabète précoce à partir de symptômes cliniques, avec nested cross-validation, pipeline scikit-learn, et zéro data leakage.
Projet académique — HELMo 2026, Maxime & Emir.
data/diabetes_data_upload.csv : 520 patients, Sylhet Diabetes Hospital (Bangladesh, 2020).
Après déduplication : 251 observations uniques, 16 features (1 numérique, 15 catégorielles binaires).
| Champ | Description |
|---|---|
Age |
Âge du patient |
Gender |
Homme / Femme |
Polyuria |
Urination excessive |
Polydipsia |
Soif excessive |
sudden weight loss |
Perte de poids soudaine |
weakness |
Faiblesse générale |
Polyphagia |
Faim excessive |
Genital thrush |
Mycose génitale |
visual blurring |
Vision floue |
Itching |
Démangeaisons |
Irritability |
Irritabilité |
delayed healing |
Cicatrisation lente |
partial paresis |
Paralysie partielle |
muscle stiffness |
Raideur musculaire |
Alopecia |
Perte de cheveux |
Obesity |
Obésité |
class |
Target : Positif / Négatif |
Construire un pipeline de classification supervisée avec validation croisée imbriquée (nested cross-validation) et zéro fuite de données.
Trois algorithmes. Une évaluation rigoureuse. Un modèle documenté.
| Modèle | Rôle |
|---|---|
LogisticRegression (elastic-net, saga) |
Baseline interprétable : odds ratios directement lisibles |
RandomForestClassifier |
Non-linéaire, robuste aux features binaires, feature importance native |
HistGradientBoostingClassifier |
Boosting tabulaire performant : support natif de class_weight et des NaN |
HistGradientBoostingpréféré àGradientBoostingpour ses performances, son support declass_weightet la gestion native des NaN.
| Métrique | Logistic Regression | Random Forest | HistGradientBoosting |
|---|---|---|---|
| ROC AUC | 0.950 ± 0.012 | 0.977 ± 0.016 | 0.958 ± 0.019 |
| Recall (Positive) | 0.833 ± 0.089 | 0.926 ± 0.069 | 0.914 ± 0.048 |
| F1 (Positive) | 0.874 ± 0.036 | 0.929 ± 0.025 | 0.932 ± 0.022 |
Random Forest retenu comme modèle de référence. Bootstrap apparié confirme son avantage significatif sur la régression logistique ; HistGradientBoosting est statistiquement indistinguable.
Analyse détaillée dans le notebook : baseline heuristique clinique, bootstrap apparié, interprétabilité (SHAP), fairness par genre avec ablation sans Gender, calibration, seuil F2, ablation de la déduplication.
├── data/
│ └── diabetes_data_upload.csv
├── notebooks/
│ ├── eda.ipynb
│ └── diabetes_final.ipynb # Notebook principal
├── reports/
│ ├── eda_analysis.md
│ ├── model_card.md # Model Card du modèle retenu
│ └── results.md
├── consignes.md
├── requirements.txt
├── assets/hero.png
└── .gitignore
pip install -r requirements.txt
jupyter notebook notebooks/diabetes_final.ipynbRé-exécution complète en quelques minutes sur un CPU récent. Graine fixée à 42 : résultats identiques à chaque run (scikit-learn 1.9).
| Livrable | Emplacement |
|---|---|
| Notebook principal | notebooks/diabetes_final.ipynb |
| Model Card | reports/model_card.md |
| Résultats détaillés | reports/results.md |
| Analyse exploratoire | notebooks/eda.ipynb + reports/eda_analysis.md |
Python · scikit-learn · pandas · numpy · scipy · matplotlib · seaborn · shap
| Resource | Description |
|---|---|
| CONTRIBUTING.md | Setup, workflow, PR process |
| CODE_OF_CONDUCT.md | Community standards |
| SECURITY.md | Vulnerability reporting |
| LICENSE | MIT — free to use, modify, distribute |
Early Stage Diabetes Risk Prediction — De la clinique aux prédictions, rigoureusement.
