Système d’aide au dépistage précoce du risque cardiovasculaire par IA

Contexte & Objectif
Une chaîne de cliniques privées souhaite améliorer la détection précoce des maladies cardiovasculaires grâce à la data science.
 
Aujourd’hui, les médecins analysent les patients
– au cas par cas
– pas d’outil automatisé
– certains patients à risque passent inaperçus
Parmi les conséquences :
– diagnostic tardif
– augmentation des coûts
– surcharge des services
 
Solution : Développer un système permettant d’identifier automatiquement les patients à risque élevé de maladie cardiaque dès leur première consultation ! Ce système pourra à terme être intégré dans les logiciels médicaux (Dossier Patient Informatisé) afin d’assister les professionnels de santé en temps réel.
 

Dans ce projet, ma mission consiste à : 

  1. Développer un modèle de machine learning qui prend en entrée des données cliniques (âge, cholestérol, tension…) puis retourne :
    – un score de risque
    – une prédiction (0/1)
  2. Déployer le modèle afin de permettre son intégration dans les logiciels médicaux (projet en cours de réalisation 🙂 ).
Outils & Méthodes

Data Science & Machine Learning : Python (matplotlib, seaborn, numpy, pandas, scikit-learn, shap, xgboost, catboost…)

Traçabilité des expérimentations : MLflow 

Versioning & Engineering : Github, Git, Visual Studio Code, Terminale, UV (=package manager).

Etape 0 – Configuration de l’environnement de travail

Etape 1 – Structuration et nettoyage des données + Feature Engineering (création d’une nouvelle variable clé)

Etape 2 – Réalisation d’une analyse exploratoire (EDA).

Identification des tendances, distributions, corrélations et variables discriminantes.

Etape 3 – Mise en place de la méthodologie de modélisation : problème de classification binaire, création de pipelines scikit-learn reproductibles avec deux préprocesseurs distincts (standardisation, encodage, gestion du déséquilibre des classes), split train/test stratifié, validation croisée (en 5 folds), comparaison de plusieurs types de modèles (baseline, modèles linéaires, modèles non linéaires à base d’arbres)

Etape 4 – Traçabilité et comparaison des expérimentations via MLflow

Etape 5 – Modélisation du modèle retenu (Random Forest balanced) : optimisation des paramètres via GridSearch, optimisation du seuil de décision via la courbe Précision-Rappel, sauvegarde du modèle retenu, exemple d’usage du modèle (fonction de scoring).

Etape 6 – Résultats : performance du modèle (métriques d’évaluation + matrice de confusion) , Interprétation globale (SHAP) puis interprétation locale (Waterfall plots enrichis par 4 cas contrastés) 

Etape 7 – Déploiement & mise en production : *en cours* pour intégration du modèle au sein des services médicaux.

Résultats & Livrables

Résultats obtenus

    • Développement d’un modèle de classification supervisée permettant d’identifier les patients à risque de maladie cardiaque à partir de données cliniques tabulaires.
    • Sélection du meilleur modèle via comparaison de plusieurs algorithmes (baseline, régression logistique, SVC, XGBoost, Random Forest).
    • Modèle final retenu : Random Forest avec équilibrage des classes, optimisé par validation croisée.
    • Amélioration des performances via :
      • optimisation des hyperparamètres (GridSearchCV),
      • ajustement du seuil de décision,
      • priorisation du rappel et du F2-score dans une logique métier orientée dépistage.

Performance métier

  • Détection renforcée des patients réellement à risque (réduction des faux négatifs).
  • Outil d’aide à la décision médicale permettant un triage précoce des patients.
  • Possibilité d’intégration future dans un système clinique ou dossier patient informatisé.

Interprétabilité & Confiance

  • Analyse globale des variables explicatives via SHAP Beeswarm Plot.
  • Analyse locale de cas patients via SHAP Waterfall.
  • Identification des facteurs les plus influents :
    • type de douleur thoracique,
    • pente du segment ST,
    • oldpeak,
    • fréquence cardiaque maximale,
    • âge.

Livrables réalisés

  1. Notebook EDA complet
  2. Notebook de modélisation reproductible
  3. Comparaison multi-modèles avec MLflow
  4. Optimisation du modèle final
  5. Matrice de confusion + ROC Curve + PR Curve
  6. Interprétabilité SHAP globale et locale
  7. Export du modèle prêt au déploiement
  8. Documentation technique du projet

Vision production (à effectuer)

  • API pour prédictions temps réel
  • Dashboard Streamlit / interface médecin
  • Monitoring des performances du modèle
  • Retraining périodique

Quelques exemples de visualisations extraites de l’analyse et de la modélisation :