Projet EpitechApplied AIApplication webLivré

Zoidberg 2.0

Projet ML Epitech : comparaison de modèles de classification sur radiographies thoraciques.

Projet académique de Machine Learning en équipe de 3 : comparer plusieurs approches (régression logistique, MLP, CNN, classifieur hiérarchique) sur le dataset Chest X-Ray Pneumonia, avec une application web pour entraîner, évaluer et prédire.

Contexte

Comparer plusieurs méthodes de classification pour distinguer des radiographies thoraciques normales de celles atteintes de pneumonie, avec une extension vers la distinction virale/bactérienne. Projet académique Epitech fortement encadré par un cahier des charges ML, avec liberté sur les modèles et optimisations.

Équipe

Équipe de 3 étudiants.

Rôle

Traitement et nettoyage des données, modèles classiques (notamment la régression logistique), réglages de data augmentation, ajout de presets de données (dont la distinction virus/bactérie), intégration du baseline et du MLP dans le dashboard d’entraînement.

Réalisation

Le système final : pipeline dataset → prétraitement/augmentation → plusieurs modèles (baseline, MLP, CNN, classifieur hiérarchique) → validation croisée stratifiée → métriques → checkpoints, exposé par une API FastAPI et un dashboard React permettant de lancer/mettre en pause l'entraînement, suivre pertes et précisions en direct, évaluer des checkpoints et prédire sur une image.

Architecture

Dataset → preprocessing/augmentation → modèles → métriques/validation → checkpoints, avec une couche FastAPI exposant le moteur ML et un dashboard React par-dessus (SSE pour le suivi d’entraînement en direct).

Galerie média

ArchitectureArchitecture

Décisions techniques

  • Choisir des métriques adaptées au déséquilibre des données

    Environ 74 % des radiographies du jeu d'entraînement correspondent à des cas de pneumonie. Une accuracy élevée peut donc masquer un modèle qui gère mal la classe minoritaire. L'évaluation s'appuie aussi sur le rappel, le macro-F1, le ROC-AUC et l'Average Precision.

  • Accorder plus d’importance aux cas de pneumonie manqués

    Dans ce cadre académique, manquer une radiographie présentant une pneumonie est considéré comme plus problématique qu'une fausse alerte. La sélection des modèles accorde donc une importance particulière au rappel sur ces cas.

  • Implémentations pédagogiques from scratch

    Le projet sépare clairement moteur ML, API et dashboard, avec des implémentations from scratch plutôt qu’une dépendance complète à des librairies haut niveau.

Stack

PythonPyTorchNumPy / scikit-learn-style MLFastAPIReactTypeScript

Compétence → preuve

  • Compare plusieurs familles de modèles avec un protocole d’évaluation adapté

    Régression logistique, MLP, CNN et classifieur hiérarchique, validation croisée stratifiée, métriques centrées sur le rappel plutôt que l’accuracy seule.

  • Nettoie et prépare un dataset déséquilibré

    Chargement, nettoyage, augmentation et équilibrage des données ; presets dont la distinction virus/bactérie.

  • Expose un moteur ML via une API et un dashboard temps réel

    API FastAPI + dashboard React : lancement/pause d’entraînement, suivi SSE des pertes/précisions, évaluation de checkpoints, prédiction sur image.

Résultats

La comparaison tient compte du déséquilibre des classes et ne repose pas sur l'accuracy seule. Le rappel, le macro-F1, le ROC-AUC et l'Average Precision font partie des métriques utilisées pour comparer les modèles.

Limites

Le projet ne présente pas de tableau final de scores (meilleur checkpoint, seuil de décision retenu, note académique chiffrée).