Retour aux projets

Détection de Fraude Bancaire

Pipeline complet de détection de fraude sur transactions par carte bancaire

Python Machine Learning Data Engineering Données déséquilibrées

Aperçu du Projet

Ce projet met en place une approche complète de détection de fraude bancaire sur des transactions par carte de crédit, en s'appuyant sur un jeu de données réel fortement déséquilibré. L'objectif est de construire une chaîne de traitement robuste, de l'exploration des données à l'évaluation des modèles, en passant par la gestion fine du déséquilibre de classes.

  • Exploration des données (EDA) : compréhension des distributions, corrélations et spécificités des transactions frauduleuses.
  • Préparation des données : normalisation et création de variables pertinentes pour mieux distinguer les transactions habituelles des comportements suspects.
  • Gestion du déséquilibre : comparaison de plusieurs stratégies (sous-échantillonnage, sur-échantillonnage, SMOTE, ajustement des poids de classes).
  • Modélisation : entraînement de modèles de classification (par ex. régression logistique, Random Forest, Gradient Boosting) adaptés au contexte de fraude.
  • Évaluation métier : utilisation de métriques adaptées (Recall, Precision, F1-score, AUC-ROC) et analyse du compromis faux positifs / faux négatifs.
Python Scikit-learn Analyse de performance Fraude

Pipeline de Détection de Fraude

1. Chargement & compréhension du jeu de données

Le jeu de données est chargé à partir d'un environnement Python (Kaggle) et d'un dossier projet structuré (data/, notebooks/, images/, rapport_synthese.md, etc.). Une première analyse met en évidence un fort déséquilibre entre transactions normales et frauduleuses.

2. Prétraitement & feature engineering

Nettoyage, normalisation des montants, transformation éventuelle de certaines variables, création de nouvelles features dérivées utiles pour différencier des comportements usuels et suspects.

3. Gestion du déséquilibre des classes

Plusieurs approches sont testées pour gérer le très faible taux de fraude : pondération des classes, resampling (sous-échantillonnage des transactions non frauduleuses, sur-échantillonnage des fraudes, techniques de type SMOTE) et calibration des seuils de décision.

4. Modélisation & comparaison des modèles

Plusieurs modèles sont entraînés et comparés via validation croisée, en se concentrant sur la capacité à détecter un maximum de fraudes tout en limitant les fausses alertes. Les résultats sont présentés et discutés dans les notebooks et le rapport de synthèse.

5. Interprétation & restitution

Les résultats sont synthétisés dans un rapport métier et dans un notebook dédié, avec des visualisations (matrices de confusion, courbes ROC/PR, importance des variables) pour faciliter la prise de décision des équipes métiers et risque.

Notebook & Documentation

Le projet est documenté dans un notebook unique et condensé sur Kaggle (version light) et dans un dossier complet sur Google Drive (avec README, explication des modèles, rapport de synthèse, etc.).

Le dossier contient notamment : requirements.txt, README_USAGE_FR.md, explication_modeles_ML.txt et rapport_synthese.md.

Enjeux & métriques

En contexte de fraude, l'objectif principal est de maximiser la détection des fraudes tout en maîtrisant le nombre de fausses alertes envoyées aux équipes.

Métriques clés

Recall (sensibilité), Precision, F1-score, AUC-ROC, courbe PR (Precision-Recall).

Contraintes métiers

Coût d'une fraude non détectée vs. coût d'une alerte injustifiée, temps de traitement, interprétabilité des modèles.

Structure du Projet

Le projet local est organisé pour être facilement réutilisable :

  • data/ – jeux de données préparés
  • notebooks/ – notebooks d'analyse et de modélisation
  • images/ – visuels et graphiques clés
  • rapport_synthese.md – synthèse des résultats
  • README_USAGE_FR.md – guide d'utilisation

Technologies Utilisées

Python

Scikit-learn

Visualisation

Pandas / NumPy