Détection de faux billets
Contexte & Objectif
Une organisation nationale souhaitait développer un outil capable de détecter automatiquement les faux billets à partir de leurs caractéristiques géométriques (diagonale, hauteur, marges, longueur).
L’objectif du projet était de concevoir un modèle de machine learning permettant de distinguer les billets authentiques des contrefaçons à partir d’un jeu de 1 500 observations.
Méthodes & Outils utilisés
Python (pandas, NumPy, scikit-learn, SciPy, matplotlib, seaborn)
- Import et nettoyage du jeu de données sous Python (traitement de valeurs manquantes par régression linéaire pour la variable margin + vérification des hypothèses avant imputation) .
- Analyse descriptive et exploratoire pour évaluer la pertinence des variables géométriques.
- Première approche non supervisée (K-Means) pour regrouper les billets selon leurs similarités.
- Évaluation des performances (Accuracy, ARI, NMI) et visualisation des clusters par ACP.
- Passage à une approche supervisée (régression logistique) :
- Division du jeu en 1200 billets d’entraînement et 300 de test,
- Création d’une pipeline automatisant imputation, standardisation et modélisation (en équilibrant les classes par pondération),
- Matrice de confusion,
- Évaluation des performances (accuracy, courbe ROC/AUC, F1-score, recall, precision),
- Test de robustesse.
- Ajustement du seuil de probabilité (0.22) pour maximiser le F1-score et minimiser les faux positifs.
- Création d’une fonction prédictive capable d’analyser tout nouveau fichier CSV et de détecter les faux billets.
Résultats & Livrables
Le modèle final présente des performances proches de la perfection, avec un F1-score de 0.995, une accuracy de 99.7 % et une AUC de 1.0 assurant une détection des faux billets d’une très grande précision.
Une fonction predict_file() permet de prédire automatiquement le statut (vrai ou faux) de nouveaux billets et d’identifier ceux situés en zone d’incertitude (proches du seuil optimal de 0.22).
Les résultats ont été restitués sous formes d’un Notebook Python complet, d’un modèle sauvegardé (seuil optimal intégré), et d’une présentation PowerPoint expliquant la démarche, les tests et les résultats.
Une démonstration en direct a également été effectuée lors de la présentation, à partir de fichiers de billets non connus à l’avance, pour prouver la fiabilité du modèle sur de nouvelles données.
Quelques visualisations extraites de l’analyse :






- Notebook complet
- Slides de présentation
- Vidéo de présentation