Détectez des faux billets avec R ou Python
Développement d’un modèle de ML pour détecter les faux billets : comparaison de plusieurs algorithmes (K-means, régression logistique, KNN, Random Forest), sélection du modèle optimal et création d’une application de prédiction fonctionnelle.
Mission
Dans le cadre d'une mission pour l'Office National de Lutte contre le Faux-Monnayage (ONCFM), j'ai été chargé de concevoir un algorithme capable d'identifier automatiquement les faux billets à partir de leurs dimensions géométriques. L'enjeu était de fournir aux agents de terrain un outil d'aide à la décision fiable, rapide et interprétable, basé sur l'analyse de 1 500 billets (1 000 vrais et 500 faux).
Comment avez-vous procédé ?
1. Exploration et Préparation des Données : L'analyse a débuté par une phase d'exploration des caractéristiques physiques des billets : longueur, diagonale, hauteurs gauche et droite, ainsi que les marges supérieures et inférieures. Pour optimiser la performance des modèles, j'ai créé une nouvelle variable, "Centered", calculée à partir de l'asymétrie des marges, qui s'est révélée être un indicateur discriminant majeur.
2. Stratégie de Modélisation et Comparaison : J'ai testé et comparé quatre approches algorithmiques différentes pour identifier la plus adaptée à la problématique :
- K-Means : Pour une approche de clustering non supervisé.
- Régression Logistique : Pour une classification probabiliste linéaire.
- Random Forest : Pour sa puissance basée sur des arbres de décision.
- K-Nearest Neighbors (KNN) : Pour sa simplicité et sa performance sur ce type de données dimensionnelles.
3. Évaluation et Sélection du Modèle : Le modèle K-Nearest Neighbors (KNN) a été retenu avec une précision de 79,1 % et surtout un Recall exceptionnel de 96,3 %. Ce dernier indicateur était crucial pour la mission, car il permet de minimiser les "faux négatifs" (ne pas laisser passer un faux billet pour un vrai).
4. Développement de l'Application Opérationnelle : Pour rendre le modèle exploitable par les équipes, j'ai développé un script Python complet permettant :
- La prédiction individuelle via une saisie manuelle des dimensions.
- Le traitement par lot (Batch) via l'importation de fichiers CSV.
- Le calcul d'une probabilité d'authenticité pour nuancer le résultat.
Livrables réalisés
- Script de production (.py) : Un programme Python prêt à l'emploi intégrant le modèle entraîné via Joblib et offrant une interface utilisateur en ligne de commande.
- Support de présentation stratégique : Une synthèse de 10 pages vulgarisant la méthodologie, comparant les performances des algorithmes et justifiant le choix du modèle final pour le CODIR.
- Notebook d'analyse : Document regroupant l'ensemble de la démarche exploratoire, le nettoyage des données et les tests statistiques. Consultables ici : https://github.com/GaelleHenaf/OC_DA12---Detectez_des_faux_billets_avec_Python
Résultats Clés
- Identification des variables les plus discriminantes : la longueur du billet et l'asymétrie des marges.
- Mise en place d'un modèle KNN capable de détecter 96% des faux billets analysés.
- Livraison d'un outil fonctionnel permettant une vérification instantanée de l'authenticité d'un billet ou d'un lot de billets.