Skip to content

Repository files navigation

FintechMiner — Système de recommandation & prédiction du churn

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.

Méthodologie (CRISP-DM)

  1. Compréhension métier — réduire l'attrition et développer la vente croisée de services fintech.
  2. Compréhension des données — 5 000 clients, 12 variables (transactions, démographie, churn).
  3. Préparation des données — feature engineering RFM (Récence, Fréquence, Montant), encodage one-hot.
  4. 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.
  5. Évaluation — hold-out stratifié 75/25 : exactitude, précision, rappel, F1, AUC-ROC, matrice de confusion.
  6. Déploiement — interface Tkinter à 6 onglets.

Installation

py -m pip install -r requirements.txt

Lancement

py app.py

Au démarrage, l'application charge automatiquement dataset_churn_5000_lignes.xlsx s'il est présent dans le dossier.

Charger votre propre dataset

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).

Onglets de l'application

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

Structure du projet

├── 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

About

Recommandation's system for the african fintechs

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages