Détection de fraude dans l'apprentissage automatique : ce que vous devez savoir [2022]
Publié: 2021-01-02Nourriture, vêtements, accessoires ou meubles. Tout ce que vous aviez l'habitude d'acheter dans les magasins situés le long des routes très fréquentées peut désormais être acheté en ligne. Le commerce électronique est une industrie de plusieurs milliards de dollars et il ne fait qu'augmenter de plus en plus. Inutile de dire que cela aussi est à la portée du monde criminel. Les criminels en ligne sont présents dans tous les secteurs en ligne que vous pouvez nommer.
La détection de fraude avec l'apprentissage automatique est possible grâce à la capacité des modèles à apprendre des données de fraude passées pour reconnaître les modèles et prédire la légitimité des transactions futures. Dans la plupart des cas, il est plus efficace que les humains en raison de la rapidité et de l'efficacité du traitement de l'information.
Certains types de fraudes sur Internet sont :
- Falsification d'identité. De nos jours , les pièces d'identité sont si bien fabriquées qu'il est presque impossible pour les humains de vérifier leur légitimité et d'empêcher toute usurpation d'identité.
Grâce à l'utilisation de l'IA, diverses caractéristiques de l'apparence de la carte d'identité peuvent être analysées pour donner un résultat sur l'authenticité du document. Cela permet aux entreprises d'établir leurs propres critères de sécurité lors de demandes nécessitant certaines pièces d'identité.
- Escroqueries aux prêts bancaires. Cela peut se produire si une personne vous contacte et vous propose un programme de prêt avec des conditions suspectes. Ici, la personne qui vous contacte vous demandera vos coordonnées bancaires ou un paiement à l'avance, sans avoir aucune information appropriée sur l'entreprise ni même utiliser un numéro de contact international. Ces fraudes peuvent facilement être gérées par l'IA en utilisant les dossiers de demande de prêt précédents pour filtrer les défauts de paiement.
- Hameçonnage par e-mail. Il s'agit d'une sorte de cybercriminalité où de faux sites et messages sont annoncés aux utilisateurs, leur demandant de partager des données personnelles. Si une personne n'est pas trop prudente, elle peut entrer des données confidentielles qui peuvent la rendre vulnérable aux menaces. La meilleure façon d'éviter cette fraude est que l'utilisateur fasse lui-même attention, cependant, l'IA peut faire le travail de découvrir les e-mails frauduleux en les filtrant à l'aide d'algorithmes d'apprentissage automatique de base comme la régression.
- Fraudes à la carte de crédit. Il s'agit du type de fraude au paiement le plus courant. En effet, tous les détails sont stockés en ligne, ce qui facilite l'accès des criminels et des pirates. Les cartes envoyées par courrier peuvent également être facilement interceptées. Une façon de filtrer ces transactions frauduleuses à l'aide de l'apprentissage automatique est décrite ci-dessous.
- Vol d'identité. L'apprentissage automatique pour détecter le vol d'identité permet de vérifier en temps réel des documents d'identité précieux tels que des passeports, des cartes PAN ou des permis de conduire. De plus, des informations biométriques peuvent parfois être nécessaires pour améliorer encore plus la sécurité. Ces méthodes de sécurité nécessitent une authentification en personne, ce qui réduit considérablement les risques de fraude.
Lisez aussi à propos de: Salaire d'un ingénieur en apprentissage automatique en Inde
Modèle pour prédire la fraude à l'aide des données de carte de crédit
Ici, un ensemble de données Kaggle très célèbre est utilisé pour démontrer le fonctionnement de la détection des fraudes à l'aide d'un modèle de réseau neuronal simple.

Importations:
importer des pandas en tant que pd
importer numpy en tant que np
importer tensorflow en tant que tf
importer des keras
depuis sklearn.preprocessing importer StandardScaler
depuis keras.models import séquentiel
de keras.layers importer Dense
depuis sklearn.model_selection importer train_test_split
de sklearn.metrics importer classification_report
Jetez un oeil à l'ensemble de données ici . La colonne Montant est normalisée comme toutes les autres fonctionnalités et la colonne Heure est supprimée car elle n'est pas pertinente.
data= pd.read_csv ( 'creditcard.csv' )
data [ 'Amount_norm' ] = StandardScaler () .fit_transform ( data [ 'Amount' ] .values.reshape ( -1 , 1 ))

data= data.drop ([ 'Montant' ], axe= 1 )
data= data.drop ([ 'Time' ], axe= 1 )
données= données [: -1 ]
data.info()
Maintenant, après un certain nettoyage des données, notre jeu de données contient un total de 28 fonctionnalités et une cible, toutes ayant des valeurs flottantes qui ne sont pas vides.
Notre cible est la colonne Classe qui détermine si la transaction par carte de crédit est frauduleuse ou non. Ainsi, l'ensemble de données est divisé en conséquence en train et en test, en conservant le rapport de division habituel de 80:20. ( random_state est corrigé pour vous aider à reproduire vos données fractionnées)
X = data.iloc [:, data.columns != 'Classe' ]
y = data.iloc [:, data.columns == 'Classe' ]
X_train , X_test , y_train , y_test = train_test_split ( X , y , test_size = 0.2 , random_state= 0 )
Nous utilisons le modèle séquentiel de la bibliothèque keras pour construire un réseau de neurones à 3 couches denses. La couche de sortie ne contient qu'un seul neurone qui utilisera la fonction sigmoïde pour aboutir à une classe positive ou à une classe négative.
Le modèle est ensuite compilé avec l'optimiseur Adam , bien qu'il soit fortement suggéré que vous essayiez vous-même différentes valeurs d'hyper paramètres, telles que le nombre d'unités dans chaque couche, l'activation, l'optimiseur, etc. pour voir ce qui fonctionne le mieux pour un donné. base de données.
modèle= Séquentiel ()
model.add ( Dense ( unités= 16 , activation = 'relu' , input_dim = 29 ))
model.add ( Dense ( units= 16 , activation = 'relu' ))
model.add ( Dense ( units= 1 , activation = 'sigmoïde' ))
maquette. compile ( optimiseur = 'adam' , loss = 'binary_crossentropy' , metrics = [ 'accuracy' ])
model.fit ( X_train , y_train , batch_size = 32 , epochs = 15 )
C'est le résultat après avoir exécuté le modèle pendant quelques époques.
On voit que le modèle donne une précision de 99,97% très rapidement. Ci-dessous, y_pred contient les prédictions faites par notre modèle sur les données de test, et un résumé soigné de ses performances est présenté.
y_pred = model.predict ( X_test )

y_pred = ( y_pred > 0.5 )
print ( rapport_classification ( y_test , y_pred ))
Lire : Idées de projets d'apprentissage automatique pour les débutants
Conclusion
Ainsi, nous avons réussi à créer un modèle très précis pour déterminer les transactions frauduleuses. Ceux-ci sont très utiles à des fins de gestion des risques.
Si vous souhaitez en savoir plus sur l'apprentissage automatique, consultez le diplôme PG en apprentissage automatique et IA de IIIT-B & upGrad, conçu pour les professionnels en activité et offrant plus de 450 heures de formation rigoureuse, plus de 30 études de cas et missions, IIIT- Statut B Alumni, plus de 5 projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.