Un projet de machine learning supervisé qui prédit le risque de diabète à partir d'indicateurs de santé standards (taux de glucose, IMC, âge, tension artérielle, et caractéristiques similaires), construit comme un pipeline allant de l'exploration à la production : exploration des données, ingénierie des variables, entraînement du modèle, et une vue de résultats interactive.
Le problème et les contraintes
La prédiction du risque de diabète est un problème de classification bien étudié, mais le vrai travail réside dans les détails qui déterminent si un modèle est fiable : gérer les classes déséquilibrées (bien moins de cas positifs que négatifs dans les jeux de données typiques), éviter les variables qui font fuiter l'étiquette, et présenter les résultats d'une manière qu'un lecteur non technique puisse tout de même vérifier.
Approche
- Analyse exploratoire des données pour comprendre les distributions et corrélations des variables avant de toucher à un quelconque modèle.
- Ingénierie des variables sur les indicateurs de santé bruts pour améliorer le signal (gestion des valeurs manquantes/invalides, mise à l'échelle, et variables dérivées).
- Entraînement et comparaison de plusieurs classifieurs supervisés avec Scikit-learn, évalués avec des métriques adaptées à un jeu de données médical déséquilibré (pas seulement l'exactitude brute).
- Construction d'une couche de visualisation interactive des résultats : courbe ROC et matrice de confusion, pour que la performance du modèle soit inspectable plutôt qu'un score opaque unique.
Compromis faits
Decision
Des classifieurs interprétables et bien compris plutôt qu'un ensemble boîte noire : pour un cas d'usage de risque santé, pouvoir expliquer pourquoi le modèle signale un cas comme à haut risque comptait plus que de gagner quelques points de précision marginale avec un modèle plus difficile à interpréter.
Decision
Visualisation ROC/matrice de confusion plutôt qu'un simple chiffre d'exactitude : l'exactitude seule est trompeuse sur des données médicales déséquilibrées ; montrer la matrice de confusion complète et la courbe ROC rend visible le vrai compromis du modèle entre faux positifs et faux négatifs.
Ce compromis se ressent mieux qu'il ne se lit. Le seuil ci-dessous est exactement la décision décrite dans l'encadré ci-dessus — déplacez-le et observez ce que coûte chaque choix :
| Signalé | Non signalé | |
|---|---|---|
| Diabétique | 72détectés | 68manqués |
| Non diabétique | 24fausses alertes | 236écartés à raison |
À ce seuil : 68 cas réels manqués, 24 fausses alertes.
Tester un patient avec le même modèle
Risque prédit 69%. Signalé pour suivi à ce seuil.
Simulation — une cohorte de 400 cas synthétiques (35% de diabétiques), générée dans votre navigateur à partir d'un modèle logistique déclaré. La matrice, la courbe et les métriques en sont calculées en direct ; aucune n'est un résultat mesuré sur le modèle du projet d'origine.
Résultats
Livraison d'un pipeline de classification fonctionnel avec un tableau de bord interactif pour inspecter la performance du modèle (courbe ROC, matrice de confusion) plutôt qu'une seule métrique résumée — l'accent a été mis sur des résultats auditables, pas seulement sur la production d'un chiffre.
Ce que je referais différemment
Ajouter une validation croisée à folds stratifiés dès le départ (plutôt qu'un simple split train/test) pour obtenir une estimation de performance plus fiable sur un jeu de données déséquilibré, et comparer avec une sortie de probabilité calibrée plutôt que des prédictions de classe brutes.