top of page
Rechercher

Détection de Faux Billets avec Python

  • geopolitoon
  • 11 juil. 2024
  • 3 min de lecture

Imaginez pouvoir construire un algorithme capable de déterminer, à partir des caractéristiques géométriques d'un billet, s'il est authentique ou contrefait. C'est le défi fascinant que nous explorons dans cet article : comment utiliser la technologie pour distinguer avec précision entre vrais billets et faux billets.


Nous avons utilisé un fichier d’exemple contenant 1 500 billets avec une variable qui a été ajoutée pour préciser la nature du billet.


L'algorithme développé a pour objectif de détecter les billets contrefaits en analysant leurs caractéristiques géométriques.


1. Analyse Descriptive


Tracé des histogrammes

Les distributions des variables semblent suivre une forme de cloche symétrique, caractéristique d'une distribution normale, tant pour les vrais que pour les faux billets. Cependant, nous devrons évaluer plus tard la variable 'length' avec un test statistique, car elle semble présenter une distribution différente.

Par ailleurs, il semble y avoir des différences significatives entre les valeurs des variables pour les vrais et les faux billets, à l'exception notable de la variable 'diagonal'. Les distinctions les plus marquées apparaissent particulièrement pour les variables 'margin_low', 'margin_up' et 'length'.


Boxplot pour chaque variable explicative

Il est notable de distinguer des différences entre les vrais et les faux billets, à l'exception de la variable 'diagonale'. Les valeurs qui semblent être des aberrations dans ce boxplot ne le sont pas nécessairement, mais peuvent simplement refléter la variabilité inhérente aux données.


Matrice de corrélation

Les variables les plus corrélées à is_genuine sont margin_lowmargin_up, et length.












Pairplot

Fichier de paramétrisation :

66,6% Vrais billets 33,3% Faux billets

À travers ces différents graphiques, il apparaît que les variables 'margin_low' et 'length' forment des groupes plus distincts que les autres variables. Il serait donc intéressant de se concentrer sur ces deux variables. Toutefois, il est important de ne pas négliger les autres variables, car elles peuvent également fournir des informations précieuses.


L'analyse de la variance

Depuis le début de nos analyses, nous observons une différence assez nette entre les vrais et les faux billets pour la plupart des variables, à l'exception de la variable 'diagonal'. Pour approfondir cette observation, j’ai effectué un test d’analyse de variance (ANOVA).

L'objectif de cette analyse est de déterminer si nos six variables montrent des différences significatives entre les vrais et les faux billets. Les résultats révèlent que la p-value pour chaque variable est bien inférieure à 0,05. Cela signifie que nous rejetons l'hypothèse nulle (H0), qui stipule qu'il n'y a pas de différence significative entre les groupes pour ces variables. Par conséquent, même la variable 'diagonal' peut être considérée comme pertinente pour notre modèle.


2. Traitement des valeurs manquantes

Vérifier la colinéarité des variables
  • Hypothèse : Les variables indépendantes ne doivent pas être trop fortement corrélées.

  • Conclusion : Tous les coefficients sont inférieurs à 10, il n'y a donc pas de problème de colinéarité, validant ainsi notre hypothèse.


Tester l’homoscédasticité

Pour tester l’homoscédasticité (constance de la variance) des résidus, nous utilisons le test de Breusch-Pagan.

  • Hypothèse : La variance des erreurs est constante à travers toutes les valeurs des variables indépendantes.

  • Conclusion : La p-value est inférieure à 5 %, ce qui nous conduit à rejeter l'hypothèse selon laquelle les variances sont constantes. Il y a donc une hétéroscédasticité dans les résidus du modèle de régression, indiquant que la variabilité des erreurs n'est pas uniforme pour toutes les observations de l'échantillon.


Tester la normalité des résidus

Dans le cadre d'une régression linéaire, les résidus doivent suivre une distribution normale.

  • Hypothèse : Les erreurs suivent une distribution normale.

  • Interprétation : La statistique de Shapiro-Wilk donne une p-value bien inférieure à 0,05, indiquant que nous rejetons l'hypothèse nulle de normalité des résidus. Cependant, en observant les résidus, on constate qu'ils ne s'écartent pas fortement de la normalité et sont centrés autour de 1. Le Q-Q plot montre également une légère déviation avec des points qui s’écartent de la droite rouge, sans pour autant partir trop loin.


Spécification correcte du modèle
  • Hypothèse : Le modèle est correctement spécifié, incluant toutes les variables pertinentes.

  • Conclusion : Toutes les 5 variables sont retenues.


Tester la linéarité
  • Hypothèse : La relation entre les prédicteurs et la cible est linéaire.

  • Conclusion : Nous le voyons sur les graphiques en nuages de points.


Tester l'indépendance des erreurs

Nous effectuons un test Durbin-Watson pour détecter l'autocorrélation des résidus.

  • Hypothèse : Les erreurs sont indépendantes les unes des autres.

  • Conclusion : Le résultat est légèrement inférieur à 2, suggérant une légère autocorrélation positive des résidus dans notre modèle de régression linéaire multiple.


3. Modélisation

Régression logistique

Le numéro entouré en rouge indique une prédiction erronée : ce faux billet possède des caractéristiques très proches de celles d'un vrai billet.


Clustering

En conclusion, parmi les trois modèles évalués, celui de Scikit-Learn s'est révélé le plus performant, ne commettant que 4 erreurs lorsqu'il a été appliqué à l'ensemble du dataset, contre 5 erreurs pour le modèle de StatsModels et 16 pour K-means. C'est donc celui-là qui sera retenu.


 
 
 

Comments


bottom of page