Skip to content

Repository files navigation

Diabetes Risk Prediction

Early Stage Diabetes Risk Prediction 🩺

ML Classification · HELMo 2026

Maxime & Emir

Python scikit-learn SHAP License: MIT

#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.


Dataset

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

Objectif

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é.


Algorithmes comparés

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

HistGradientBoosting préféré à GradientBoosting pour ses performances, son support de class_weight et la gestion native des NaN.


Résultats (nested CV, estimation non biaisée)

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.


Structure

├── 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

Usage

pip install -r requirements.txt
jupyter notebook notebooks/diabetes_final.ipynb

Ré-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).


Livrables

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

Stack

Python · scikit-learn · pandas · numpy · scipy · matplotlib · seaborn · shap


Contributing

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.

About

Early Stage Diabetes Risk Prediction - classification supervisée avec nested cross-validation, SHAP, fairness. Projet ML HELMo 2026.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages