Projet de Machine Learning visant à prédire les coûts médicaux individuels à partir de caractéristiques socio-démographiques et comportementales (âge, sexe, IMC, tabagisme, région, etc.).
Le projet couvre l'ensemble du cycle Data Science : exploration des données, préparation, modélisation, évaluation, tests de robustesse et déploiement via une API FastAPI consommée par une interface web.
- Construire un modèle de prédiction fiable des coûts médicaux
- Comparer plusieurs algorithmes de régression
- Assurer la reproductibilité (pipelines, tests, artefacts)
- Déployer le modèle via une API REST
- Proposer une interface web simple pour l'utilisation du modèle
- Prétraitement via Pipeline & ColumnTransformer
- Modèles testés :
- Régression linéaire
- Régressions pénalisées
- Random Forest
- Gradient Boosting / XGBoost / LightGBM
- Sélection du meilleur modèle selon RMSE
- Sauvegarde du pipeline du meilleur modèle (
best_gradient_boost_model.joblib)
- API : FastAPI
- Hébergement API : Render
- Interface web : HTML / CSS / JavaScript (Netlify)
Medical-cost-prediction/
│
├── api/ # API FastAPI pour l'inférence
│ ├── app.py # Point d'entrée de l'API
│
├── models/ # Artefacts du Machine Learning
│ ├── best_gradient_boost_model.joblib # Pipeline complet avec le meilleur modèle
│
├── notebooks/ # Développement et expérimentation
│ ├── EDA_full_codes.ipynb # Analyse exploratoire complète des données
│ ├── Modélisation.ipynb # Entraînement, comparaison et sélection du modèle
│
├── documentation/ #Documentation du projet
│ ├── HealthCostsPrediction._presentation.pdf
│ ├── Health Costs Note technique.pdf
│ ├── lien_vers_note_technique.txt
│ ├── lien_vers_le_canva.txt
├── tests/ # Tests automatisés (pytest)
│ ├── conftest.py # Config globale et test sur la base
│ ├── test_api_contract.py # Tests des endpoints de l'API
│ ├── test_categories_domain.py # Validation des modalités catégorielles
│ ├── test_data_quality.py # Tests de qualité des données
│ ├── test_eda_findings.py # Vérification des constats issus de l'EDA
│ ├── test_model_artifact.py # Tests de chargement du modèle
│ ├── test_payload_validation.py # Validation des données d'entrée de l'API
│ ├── test_repo_sanity.py # Tests de cohérence globale du dépôt
│ ├── test_schema_and_types.py # Vérification des types et des schémas
│
│
├── web/ # Interface web cliente
│ ├── index.html # Page principale
│ ├── styles.css # Styles de l'interface
│ ├── script.js # Appels à l'API et logique front-end
│
├── requirements.txt # Dépendances d'exécution
├── requirements-dev.txt # Dépendances de développement et de tests
├── README.md # Documentation du projet
├── .gitignore # Fichiers ignorés par Git
Projet réalisé par un groupe de 5 membres :
- Validation du schéma d'entrée
- Vérification des catégories et domaines
- Tests de chargement du modèle
- Tests de cohérence des prédictions
- Tests de santé de l'API (
/health)
Ce projet met l'accent sur :
- la rigueur méthodologique
- la traçabilité des transformations
- la séparation claire entraînement / inférence
- les bonnes pratiques de déploiement ML