Augmentez les transactions frauduleuses à l'aide de données synthétiques dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Augmentez les transactions frauduleuses à l'aide de données synthétiques dans Amazon SageMaker

Le développement et la formation de modèles de fraude par apprentissage automatique (ML) performants nécessitent l'accès à de grandes quantités de données de haute qualité. L'obtention de ces données est difficile car les ensembles de données disponibles ne sont parfois pas assez volumineux ou suffisamment impartiaux pour former utilement le modèle ML et peuvent nécessiter des coûts et du temps importants. La réglementation et les exigences de confidentialité empêchent en outre l'utilisation ou le partage des données, même au sein d'une organisation d'entreprise. Le processus d'autorisation d'utilisation et d'accès aux données sensibles retarde ou fait souvent dérailler les projets de ML. Alternativement, nous pouvons relever ces défis en générant et en utilisant des données synthétiques.

Les données synthétiques décrivent des ensembles de données créés artificiellement qui imitent le contenu et les modèles de l'ensemble de données d'origine afin de gérer les risques réglementaires et la conformité, le temps et les coûts d'approvisionnement. Les générateurs de données synthétiques utilisent les données réelles pour apprendre les caractéristiques, les corrélations et les modèles pertinents afin de générer les quantités requises de données synthétiques correspondant aux qualités statistiques de l'ensemble de données ingéré à l'origine.

Les données synthétiques sont utilisées dans des environnements de laboratoire depuis sur deux décennies; le marché a des preuves d'utilité qui accélèrent l'adoption dans les secteurs commerciaux et publics. Gartner prédit que d'ici 2024, 60 % des données utilisées pour le développement de solutions de ML et d'analyse seront générées de manière synthétique et que l'utilisation de données synthétiques continuera d'augmenter considérablement.

La Financial Conduct Authority, un organisme de réglementation britannique, reconnaît que "l'accès aux données est le catalyseur de l'innovation, et les données financières synthétiques pourraient jouer un rôle pour soutenir l'innovation et permettre aux nouveaux entrants de développer, tester et démontrer la valeur de nouvelles solutions".

Amazon SageMaker GroundTruth prend actuellement en charge génération de données synthétiques de données d'images synthétiques étiquetées. Ce billet de blog explore la génération de données synthétiques tabulaires. Les données structurées, telles que les tables simples et relationnelles, et les données de séries chronologiques sont les types les plus souvent rencontrés dans l'analyse d'entreprise.

Ceci est un article de blog en deux parties; nous créons des données synthétiques dans la première partie et évaluons leur qualité dans deuxième partie.

Dans cet article de blog, vous apprendrez à utiliser la bibliothèque open source ydata-synthétique ainsi que Blocs-notes AWS SageMaker pour synthétiser des données tabulaires pour un cas d'utilisation de fraude, où nous n'avons pas suffisamment de transactions frauduleuses pour former un modèle de fraude de haute précision. Le processus général de formation d'un modèle de fraude est couvert dans ce poster.

Aperçu de la solution

L'objectif de ce didacticiel est de synthétiser la classe minoritaire d'un ensemble de données de fraude à la carte de crédit très déséquilibré à l'aide d'un réseau antagoniste génératif (GAN) appelé WGAN-GP pour apprendre les modèles et les propriétés statistiques des données d'origine, puis créer des échantillons sans fin de données synthétiques qui ressemblent aux données d'origine. Ce processus peut également être utilisé pour améliorer les données d'origine en sur-échantillonnant des événements rares comme la fraude ou pour générer des cas extrêmes qui ne sont pas présents dans l'original.

Nous utilisons un ensemble de données sur la fraude à la carte de crédit publié par ULB, téléchargeable sur Kaggle. La génération de données synthétiques pour la classe minoritaire aide à résoudre les problèmes liés aux ensembles de données déséquilibrés, ce qui peut aider à développer des modèles plus précis.

Nous utilisons les services AWS, y compris Amazon SageMaker et Amazon S3, qui entraînent des coûts pour utiliser les ressources cloud.

Configurer l'environnement de développement

SageMaker fournit une instance de bloc-notes Jupyter gérée pour la création, la formation et le déploiement de modèles.

Pré-requis :

Vous devez avoir un compte AWS pour exécuter SageMaker. Tu peux recevoir j'ai commencé avec SageMaker et essayez tutoriels pratiques.

Pour obtenir des instructions sur la configuration de votre environnement de travail Jupyter Notebook, consultez Premiers pas avec les instances de bloc-notes Amazon SageMaker.

Étape 1 : configurer votre instance Amazon SageMaker

  1. Connectez-vous à la console AWS et recherchez « SageMaker ».
  2. Sélectionnez Studio.
  3. Sélectionnez Instances de bloc-notes dans la barre de gauche, et sélectionnez Créer une instance de bloc-notes.
  4. À partir de la page suivante (comme illustré dans l'image suivante), sélectionnez les configurations de la machine virtuelle (VM) en fonction de vos besoins, puis sélectionnez Créer une instance de bloc-notes. Notez que nous avons utilisé une machine virtuelle optimisée ML sans GPU et 5 Go de données, ml.t3.medium exécutant un noyau Amazon Linux 2 et Jupyter Lab 3.
    Créer une instance de bloc-notes
  5. Une instance de bloc-notes sera prête à être utilisée en quelques minutes.
  6. Sélectionnez Ouvrez JupyterLab lancer.
    Augmentez les transactions frauduleuses à l'aide de données synthétiques dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  7. Maintenant que nous avons un JupyterLab avec nos spécifications requises, nous allons installer la bibliothèque synthétique.
pip install ydata-synthetic

Étape 2 : Téléchargez ou extrayez le jeu de données réel pour créer des données synthétiques

Télécharger les données de référence de Kaggle soit manuellement, comme nous le faisons ici, soit par programmation via l'API Kaggle si vous avez un compte Kaggle. Si vous explorez cet ensemble de données, vous remarquerez que la classe "fraud" contient beaucoup moins de données que la classe "not fraud".

Si vous utilisez ces données directement pour les prédictions d'apprentissage automatique, les modèles peuvent toujours apprendre à prédire "pas de fraude". Un modèle aura facilement une plus grande précision dans les cas non frauduleux puisque les cas de fraude sont rares. Cependant, puisque la détection des cas de fraude est notre objectif dans cet exercice, nous allons augmenter le nombre de classes de fraude avec des données synthétiques modélisées sur les données réelles.

Créez un dossier de données dans JupyterLab et téléchargez-y le fichier de données Kaggle. Cela vous permettra d'utiliser les données du bloc-notes depuis SageMaker livré avec rangement que vous auriez spécifié lors de l'instanciation du notebook.

Augmentez les transactions frauduleuses à l'aide de données synthétiques dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Ce jeu de données fait 144 Mo

Augmentez les transactions frauduleuses à l'aide de données synthétiques dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Vous pouvez ensuite lire les données en utilisant du code standard via la bibliothèque pandas :

import pandas as pd
data = pd.read_csv('./data/creditcard.csv')

Les données de détection de fraude présentent certaines caractéristiques, à savoir :

  • Grands déséquilibres de classe (généralement vers des points de données non frauduleux).
  • Préoccupations liées à la confidentialité (en raison de la présence de données sensibles).
  • Un degré de dynamisme, dans la mesure où un utilisateur malveillant essaie toujours d'éviter la détection par les systèmes de surveillance des transactions frauduleuses.
  • Les ensembles de données disponibles sont très volumineux et souvent non étiquetés.

Maintenant que vous avez inspecté l'ensemble de données, filtrons la classe minoritaire (la classe "fraude" de l'ensemble de données de carte de crédit) et effectuons les transformations nécessaires. Vous pouvez consulter les transformations de données à partir de ce cahier.

Lorsque cet ensemble de données de classe minoritaire est synthétisé et rajouté à l'ensemble de données d'origine, il permet la génération d'un ensemble de données synthétisé plus grand qui corrige le déséquilibre des données. Nous pouvons obtenir une plus grande précision de prédiction en former un modèle de détection de fraude en utilisant le nouveau jeu de données.

Synthétisons le nouvel ensemble de données sur la fraude.

Étape 3 : Entraînez les synthétiseurs et créez le modèle

Étant donné que les données sont facilement disponibles dans SageMaker, il est temps de mettre nos modèles GAN synthétiques au travail.

Un réseau antagoniste génératif (GAN) comporte deux parties :

Les générateur apprend à générer des données plausibles. Les instances générées deviennent des exemples d'apprentissage négatifs pour le discriminateur.

Les discriminateur apprend à distinguer les fausses données du générateur des vraies données. Le discriminateur pénalise le générateur pour avoir produit des résultats non plausibles.

Lorsque la formation commence, le générateur produit des données manifestement fausses, et le discriminateur apprend rapidement à dire que c'est faux. Au fur et à mesure que l'entraînement progresse, le générateur se rapproche de la production d'une sortie qui peut tromper le discriminateur. Enfin, si la formation du générateur se passe bien, le discriminateur devient moins efficace pour faire la différence entre le vrai et le faux. Il commence à classer les fausses données comme réelles et leur précision diminue.

Le générateur et le discriminateur sont tous deux des réseaux de neurones. La sortie du générateur est connectée directement à l'entrée du discriminateur. Par rétropropagation, la classification du discriminateur fournit un signal que le générateur utilise pour mettre à jour ses poids.

Étape 4 : Échantillonner les données synthétiques du synthétiseur

Maintenant que vous avez construit et formé votre modèle, il est temps d'échantillonner les données requises en alimentant le modèle en bruit. Cela vous permet de générer autant de données synthétiques que vous le souhaitez.

Dans ce cas, vous générez une quantité de données synthétiques égale à la quantité de données réelles, car cela facilite la comparaison des tailles d'échantillons similaires à l'étape 5.

Nous avons la possibilité d'échantillonner les lignes contenant des transactions frauduleuses qui, lorsqu'elles sont combinées avec les données de fraude non synthétiques, conduiront à une répartition égale des classes « fraude » et « non-fraude ». L'original Ensemble de données Kaggle contenait 492 fraudes sur 284,807 XNUMX transactions, nous créons donc un même échantillon à partir du synthétiseur.

# use the same shape as the real data
synthetic_fraud = synthesizer.sample(492)

Nous avons la possibilité de sur-échantillonner les lignes contenant des transactions frauduleuses dans un processus appelé augmentation de données qui, lorsqu'il est combiné avec les données de fraude non synthétiques, conduira à une répartition égale des classes « fraude » et « non-fraude ».

Étape 5 : Comparez et évaluez les données synthétiques par rapport aux données réelles

Bien que cette étape soit facultative, vous pouvez visualiser et évaluer qualitativement les données synthétiques générées par rapport aux données réelles à l'aide d'un nuage de points.

Cela nous aide à itérer notre modèle en ajustant les paramètres, en modifiant la taille de l'échantillon et en effectuant d'autres transformations pour générer les données synthétiques les plus précises. Cette nature de précision dépend toujours de l'objectif de la synthèse

L'image ci-dessous montre à quel point la fraude réelle et les points de données sur la fraude synthétique sont similaires au cours des étapes de formation. Cela donne une bonne inspection qualitative de la similitude entre les données synthétiques et réelles et comment cela s'améliore au fur et à mesure que nous l'exécutons à travers plus d'époques (transit de l'ensemble de données d'entraînement via l'algorithme). Notez qu'à mesure que nous exécutons plus d'époques, l'ensemble de modèles de données synthétiques se rapproche des données d'origine.

Augmentez les transactions frauduleuses à l'aide de données synthétiques dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Étape 6: nettoyer

Enfin, arrêtez votre instance de bloc-notes lorsque vous avez terminé la synthèse pour éviter des coûts imprévus.

Conclusion

En tant qu'algorithmes d'apprentissage automatique et cadres de codage évoluer rapidement, les données de haute qualité à grande échelle sont la ressource la plus rare en ML. Des ensembles de données synthétiques de bonne qualité peuvent être utilisés dans une variété de tâches.

Dans cet article de blog, vous avez appris l'importance de synthétiser l'ensemble de données à l'aide d'une bibliothèque open source qui utilise WGAN-GP. Il s'agit d'un domaine de recherche actif avec des milliers d'articles sur les GAN publiés et plusieurs centaines de GAN nommés que vous pouvez expérimenter. Il existe des variantes optimisées pour des cas d'utilisation spécifiques tels que les tables relationnelles et les données de séries chronologiques.

Vous pouvez trouver tout le code utilisé pour cet article dans ce cahier, et bien sûr, d'autres tutoriels comme celui-ci sont disponibles sur SageMaker page de documentation officielle.

Dans le la deuxième partie de cette série d'articles de blog en deux parties, nous approfondirons la manière d'évaluer la qualité des données synthétiques du point de vue de la fidélité, de l'utilité et de la confidentialité.


À propos de l’auteur

Augmentez les transactions frauduleuses à l'aide de données synthétiques dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Faris Haddad est le responsable des données et des informations au sein de l'équipe des poursuites stratégiques de l'AABG. Il aide les entreprises à devenir data-driven avec succès.

Horodatage:

Plus de Apprentissage automatique AWS