Scoring Crédit pour l'Inclusion Financière


Machine Learning XGBoost SMOTE Streamlit Python Analyse de Risque

Contexte


Réalisé dans le cadre du BUT Science des Données (IUT Caen Normandie, 2025-2026), ce projet consiste à prédire la solvabilité de clients ayant peu d'historique bancaire. L'enjeu majeur est de gérer un dataset fortement déséquilibré (92% de bons payeurs).

Objectifs du projet


  • Fusionner et nettoyer des sources de données complexes.
  • Optimiser les performances via XGBoost et SMOTE.
  • Déployer une interface interactive avec Streamlit.

Démarche Scientifique


1. Feature Engineering & Fusion

Fusion complexe de plusieurs sources (Bureau, Previous Applications, POS_CASH) par identifiant client (SK_ID_CURR). Nettoyage des valeurs aberrantes et création de variables synthétiques comme le ratio d'endettement ou l'ancienneté d'emploi en années.

2. Sélection et Entraînement des Modèles

Comparaison de plusieurs algorithmes pour identifier le plus performant :

  • Régression Logistique : Baseline pour la linéarité.
  • Random Forest : Pour capturer les interactions complexes.
  • XGBoost : Choisi comme modèle final pour sa précision supérieure (Boosting d'arbres) et sa rapidité de traitement.

3. Stratégie de Gestion du Déséquilibre

Le dataset présentait seulement 8% de défauts de paiement. Pour éviter un modèle biaisé, nous avons appliqué une technique de sur-échantillonnage afin d'équilibrer les classes et améliorer la détection des profils à risque.

4. Optimisation du Seuil Décisionnel

Mise en place d'une fonction de coût métier. Le seuil optimal a été fixé à 0.53 pour minimiser les pertes financières, en considérant qu'un défaut non prédit coûte beaucoup plus cher qu'un refus de prêt injustifié.

Résultats


Modèle Final : XGBoost
Score AUC : ~75%
Seuil de décision : 0.53
Optimisation : Seuil métier
Code GitHub Rapport
Aperçu interactif du script