Skip to content

Marco-ai-foundation/bank-client-scoring-eda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏦 Scoring Client Bancaire — Analyse de Risque de Crédit

Analyse complète de 120 000+ clients bancaires pour identifier les profils à risque de défaut de paiement. Pipeline de données, feature engineering, scoring de risque et rapport Excel automatisé.

Python Pandas Scikit-learn Status


🎯 Contexte métier

Scénario : En tant que Data Analyst dans une banque, le Risk Manager demande une analyse des données clients pour comprendre les profils à risque de défaut et orienter les décisions d'octroi de crédit.

Questions business :

  • Quel est le profil type d'un client qui fait défaut ?
  • Quelles variables sont les plus prédictives du défaut ?
  • Quelles tranches d'âge nécessitent une surveillance renforcée ?
  • À partir de quel seuil d'utilisation du crédit le risque explose ?

📈 Résultats clés

Insight Détail
Taux de défaut global ~6.7% (1 défaut pour 13 bons payeurs)
Tranche d'âge la plus risquée 18-30 ans
Variable la plus prédictive Retards de paiement passés (30j, 60j, 90j)
Seuil critique d'utilisation crédit Au-delà de 80%, le risque explose
Scoring : taux de défaut chez les "Critiques" ~3x le taux moyen

🖼️ Visualisations

Déséquilibre de la variable cible

Variable cible

Distribution de l'âge : Bons payeurs vs Défauts

Âge

Analyse des revenus

Revenus

Matrice de corrélation

Corrélation

Taux de défaut par tranche d'âge

Défaut par âge

Validation du scoring de risque

Validation scoring

Profil comparatif : Bon payeur vs Défaut

Profil

Impact des retards sur le défaut

Retards

Utilisation du crédit vs Défaut

Crédit

Résumé exécutif

Résumé

🧠 Feature Engineering

7 nouvelles features créées à partir des données brutes :

Feature Logique Impact
total_retards Somme de tous les retards (30j + 60j + 90j) Agrège les signaux de retard
a_retard_grave 1 si retard 90j+, 0 sinon Signal binaire fort
tranche_age Catégorisation de l'âge Permet l'analyse par segment
revenu_par_personne Revenu / (personnes à charge + 1) Mesure la pression financière réelle
charge_mensuelle DebtRatio × MonthlyIncome Estime les dettes mensuelles
score_risque Scoring pondéré multi-critères Synthèse des signaux de risque
categorie_risque Faible / Modéré / Élevé / Critique Classification actionnable

🛠️ Stack technique

  • Langage : Python 3.14
  • Data : Pandas, NumPy
  • Visualisation : Matplotlib, Seaborn
  • Rapport : openpyxl (Excel automatisé)
  • Dataset : Give Me Some Credit — Kaggle

📁 Structure du projet

bank-client-scoring-eda/
├── README.md
├── requirements.txt
├── data/
│   ├── raw/                    # Dataset Kaggle (non versionné)
│   └── cleaned/                # Données nettoyées + features
├── src/
│   ├── explore.py              # Analyse exploratoire (EDA)
│   ├── clean.py                # Nettoyage + Feature Engineering
│   ├── analyze.py              # Analyse de risque approfondie
│   └── export_report.py        # Génération rapport Excel
├── reports/
│   ├── figures/                # 10 graphiques (PNG, 300dpi)
│   └── rapport_risque_client.xlsx  # Rapport Excel 4 onglets
└── notebooks/

🔄 Pipeline de données

Dataset Kaggle → EDA (explore.py) → Nettoyage (clean.py) → Analyse (analyze.py) → Rapport (export_report.py)
     ↓                ↓                    ↓                     ↓                        ↓
  data/raw/     reports/figures/     data/cleaned/        reports/figures/         reports/*.xlsx

🚀 Installation & Utilisation

git clone https://github.com/Marco-ai-foundation/bank-client-scoring-eda.git
cd bank-client-scoring-eda
pip install -r requirements.txt

# 1. Placer le dataset Kaggle dans data/raw/cs-training.csv
# 2. Exécuter le pipeline :
python src/explore.py          # Analyse exploratoire
python src/clean.py            # Nettoyage + features
python src/analyze.py          # Analyse de risque
python src/export_report.py    # Rapport Excel

📚 Ce que j'ai appris

  • Nettoyage avancé : imputation par médiane groupée (par tranche d'âge), traitement des codes aberrants (96/98), gestion des outliers par seuils métier
  • Feature Engineering : création de 7 features à partir des données brutes, dont un scoring de risque multi-critères
  • Analyse de déséquilibre de classes : 93% vs 7%, compréhension de l'impact sur les métriques
  • Data Storytelling : 10 visualisations orientées décision pour le Risk Manager
  • Automatisation Excel : rapport professionnel 4 onglets avec openpyxl
  • Vocabulaire métier : variable cible, corrélation de Pearson, class imbalance, outlier, binning, Pyramid Principle

🔮 Améliorations possibles

  • Modèle prédictif (Logistic Regression, Random Forest, XGBoost)
  • Gestion du déséquilibre avec SMOTE
  • Dashboard interactif avec Streamlit
  • API de scoring en temps réel (FastAPI)
  • Tests unitaires sur le pipeline de nettoyage

👤 Auteur

Marco — Étudiant en ingénierie informatique (ESIEA), future spécialisation IA & Data Science. En recherche d'alternance Data Analyst / Data Scientist.

LinkedIn GitHub

About

Scoring Client Bancaire — Analyse de Risque de Crédit

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages