Modèle de Credit Scoring et MLOps avec MLflow
Python, Machine Learning, MLOps, MLflow, LightGBM, XGBoost, Scikit-learn, Credit Scoring, Optuna, Feature Engineering
Modèle de Credit Scoring et MLOps avec MLflow
Contexte
Dans le cadre d'un projet de Data Science orienté MLOps, j'ai développé un modèle de Credit Scoring permettant d'estimer le risque de défaut de remboursement d'un client à partir de données financières et comportementales. Le projet intègre l'ensemble du cycle de vie du modèle, depuis la préparation des données jusqu'au suivi des expérimentations et à la gestion des versions avec MLflow.
Objectifs
- Construire un modèle de classification pour le risque de défaut de paiement.
- Gérer un jeu de données fortement déséquilibré.
- Optimiser le seuil de décision selon un coût métier.
- Comparer plusieurs algorithmes de Machine Learning.
- Mettre en œuvre une démarche MLOps avec MLflow.
- Assurer la traçabilité des expérimentations et des modèles.
Architecture
Sources de données
(Home Credit)
│
▼
Fusion & Nettoyage
│
▼
Feature Engineering
│
▼
Entraînement des modèles
│
▼
MLflow Tracking
│
▼
Model Registry
│
▼
MLflow Model Serving
Technologies utilisées
- Python
- Pandas
- NumPy
- Scikit-learn
- LightGBM
- XGBoost
- MLflow
- Optuna / GridSearchCV
- Matplotlib
- Jupyter Notebook
Réalisations
Préparation des données
- Fusion de plusieurs jeux de données.
- Nettoyage et gestion des valeurs manquantes.
- Encodage des variables catégorielles.
- Création de nouvelles variables (Feature Engineering).
- Analyse du déséquilibre des classes.
Modélisation
Comparaison de plusieurs modèles de classification :
- Régression Logistique
- Random Forest
- LightGBM
- XGBoost
- Multi-Layer Perceptron (MLP)
Évaluation des performances grâce à une validation croisée stratifiée.
Optimisation
- Recherche d'hyperparamètres avec GridSearchCV ou Optuna.
- Optimisation du seuil de décision.
- Définition d'une fonction de coût métier donnant davantage de poids aux faux négatifs.
- Comparaison des modèles selon des métriques métier et techniques.
MLOps
Mise en place d'une première chaîne MLOps avec MLflow :
- suivi des expérimentations (Experiment Tracking)
- enregistrement automatique des paramètres
- suivi des métriques
- stockage des artefacts
- gestion des versions du modèle (Model Registry)
- test du Model Serving
Évaluation
Comparaison des modèles à l'aide de plusieurs indicateurs :
- AUC-ROC
- Recall
- Precision
- F1-Score
- Accuracy
- Coût métier personnalisé
Compétences démontrées
Data Science
- Préparation de données
- Feature Engineering
- Analyse exploratoire (EDA)
- Gestion des données déséquilibrées
Machine Learning
- Classification supervisée
- Validation croisée
- Optimisation d'hyperparamètres
- Optimisation du seuil de décision
- Évaluation métier des modèles
MLOps
- MLflow Tracking
- Experiment Tracking
- Model Registry
- Model Serving
- Gestion des versions des modèles
- Reproductibilité des expérimentations
Développement Python
- Pandas
- Scikit-learn
- LightGBM
- XGBoost
- Pipelines d'entraînement
Analyse métier
- Credit Scoring
- Analyse du risque
- Optimisation d'une fonction de coût métier
- Aide à la décision financière
Résultat
Ce projet m'a permis de développer un modèle de Credit Scoring robuste tout en mettant en œuvre les premières pratiques MLOps. L'utilisation de MLflow a permis d'assurer la traçabilité complète des expérimentations, la gestion des versions des modèles et leur préparation à une industrialisation future.
Compétences acquises
- Python
- Pandas
- NumPy
- Scikit-learn
- Machine Learning
- Classification
- Credit Scoring
- LightGBM
- XGBoost
- MLflow
- MLOps
- Experiment Tracking
- Model Registry
- Model Serving
- Feature Engineering
- Cross Validation
- GridSearchCV
- Optuna
- Data Visualization
- Jupyter Notebook