Application Python/Tkinter de data mining pour une plateforme de paiement électronique : prédiction du churn, segmentation client RFM, recommandation de services fintech et aide à la décision marketing.
- Compréhension métier — réduire l'attrition et développer la vente croisée de services fintech.
- Compréhension des données — 5 000 clients, 12 variables (transactions, démographie, churn).
- Préparation des données — feature engineering RFM (Récence, Fréquence, Montant), encodage one-hot.
- Modélisation :
- Random Forest (300 arbres, pondération des classes) → probabilité de churn par client ;
- K-Means (k=4) sur les variables RFM → segments « Champions », « Fidèles réguliers », « À risque », « Perdus/dormants » ;
- Recommandeur hybride : filtrage collaboratif K-NN (clients fidèles similaires) + règles métier expertes, avec justification de chaque recommandation.
- Évaluation — hold-out stratifié 75/25 : exactitude, précision, rappel, F1, AUC-ROC, matrice de confusion.
- Déploiement — interface Tkinter à 6 onglets.
py -m pip install -r requirements.txtpy app.pyAu démarrage, l'application charge automatiquement dataset_churn_5000_lignes.xlsx
s'il est présent dans le dossier.
Le bouton 📂 Charger un dataset (bandeau supérieur) permet d'importer un fichier
Excel (.xlsx/.xls) ou CSV (séparateur , ou ; détecté automatiquement).
Le pipeline complet (RFM → churn → segmentation → recommandations) est relancé et
tous les écrans sont actualisés.
Colonnes obligatoires :
| Colonne | Type |
|---|---|
user_id |
identifiant unique |
transaction_amount |
numérique |
transaction_frequency |
numérique |
last_transaction_date |
date |
merchant_category |
texte |
device_type |
texte |
account_age |
numérique (mois) |
churn_status |
0/1 (les deux classes requises) |
age |
numérique |
sexe |
texte |
pays |
texte |
La colonne user_name est optionnelle. Les lignes incomplètes sont écartées ;
un message explicite s'affiche si le schéma est invalide (colonnes manquantes,
format non supporté, moins de 50 lignes valides, une seule classe de churn).
| Onglet | Contenu |
|---|---|
| 📊 Données | Table interactive avec recherche, indicateurs clés (KPI) |
| 📈 Exploration | 9 visualisations (churn par pays/catégorie/âge, corrélations…) |
| 🎯 Segmentation RFM | Clusters K-Means, profil et action marketing par segment |
| 🤖 Modèle de churn | Métriques, importance des variables, matrice de confusion, ROC |
| 💡 Recommandations | Top 5 services par client avec justification + clients similaires |
| 📢 Décisions marketing | Valeur à risque par segment, top clients à sauver, export CSV |
├── app.py # Interface Tkinter (6 onglets)
├── data_processing.py # Chargement + feature engineering RFM
├── models.py # Random Forest (churn) + K-Means (segmentation)
├── recommender.py # Moteur hybride règles métier + K-NN
├── requirements.txt
└── dataset_churn_5000_lignes.xlsx