Erweitern Sie Betrugstransaktionen mithilfe synthetischer Daten in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Erweitern Sie Betrugstransaktionen mit synthetischen Daten in Amazon SageMaker

Die Entwicklung und Schulung erfolgreicher Betrugsmodelle für maschinelles Lernen (ML) erfordert den Zugriff auf große Mengen hochwertiger Daten. Die Beschaffung dieser Daten ist eine Herausforderung, da die verfügbaren Datensätze manchmal nicht groß genug oder ausreichend unvoreingenommen sind, um das ML-Modell sinnvoll zu trainieren, und erhebliche Kosten und Zeit erfordern können. Vorschriften und Datenschutzanforderungen verhindern die Verwendung oder Weitergabe von Daten sogar innerhalb einer Unternehmensorganisation. Der Prozess der Autorisierung der Verwendung von und des Zugriffs auf sensible Daten verzögert oder entgleist ML-Projekte häufig. Alternativ können wir diese Herausforderungen angehen, indem wir synthetische Daten generieren und verwenden.

Synthetische Daten beschreiben künstlich erstellte Datensätze, die den Inhalt und die Muster des ursprünglichen Datensatzes nachahmen, um regulatorische Risiken und Compliance, Zeit und Kosten der Beschaffung zu berücksichtigen. Synthetische Datengeneratoren verwenden die realen Daten, um relevante Merkmale, Korrelationen und Muster zu lernen, um die erforderlichen Mengen an synthetischen Daten zu generieren, die den statistischen Eigenschaften des ursprünglich aufgenommenen Datensatzes entsprechen.

Synthetische Daten werden in Laborumgebungen seit verwendet über zwei Jahrzehnte; Der Markt hat Beweise für den Nutzen, der die Akzeptanz im kommerziellen und öffentlichen Sektor beschleunigt. Gärtner prognostiziert dass bis 2024 60 Prozent der Daten, die für die Entwicklung von ML- und Analyselösungen verwendet werden, synthetisch generiert werden und dass die Verwendung synthetischer Daten weiter erheblich zunehmen wird.

Die Financial Conduct Authority, eine britische Aufsichtsbehörde, erkennt an dass „der Zugang zu Daten der Katalysator für Innovation ist und synthetische Finanzdaten eine Rolle bei der Unterstützung von Innovationen spielen und es neuen Marktteilnehmern ermöglichen könnten, neue Lösungen zu entwickeln, zu testen und zu demonstrieren.“

Amazon SageMaker GroundTruth derzeit unterstützt synthetische Datengenerierung von markierten synthetischen Bilddaten. Dieser Blogbeitrag untersucht die tabellarische Generierung synthetischer Daten. Strukturierte Daten wie einzelne und relationale Tabellen sowie Zeitreihendaten sind die Typen, denen man in der Unternehmensanalyse am häufigsten begegnet.

Dies ist ein zweiteiliger Blogbeitrag; Wir erstellen synthetische Daten in Teil eins und bewerten ihre Qualität in Zweiter Teil.

In diesem Blogbeitrag erfahren Sie, wie Sie die Open-Source-Bibliothek verwenden ydata-synthetisch und AWS SageMaker-Notebooks um tabellarische Daten für einen Betrugsanwendungsfall zu synthetisieren, bei dem wir nicht genügend betrügerische Transaktionen haben, um ein hochpräzises Betrugsmodell zu trainieren. Darin wird der allgemeine Prozess des Trainierens eines Betrugsmodells behandelt Post.

Überblick über die Lösung

Das Ziel dieses Tutorials ist es, die Minderheitsklasse eines stark unausgewogenen Datensatzes zu Kreditkartenbetrug mithilfe eines optimierten Generatives gegnerisches Netzwerk (GAN) namens WGAN-GP um Muster und statistische Eigenschaften von Originaldaten zu lernen und dann endlose Proben synthetischer Daten zu erstellen, die den Originaldaten ähneln. Dieser Prozess kann auch verwendet werden, um die Originaldaten durch Upsampling seltener Ereignisse wie Betrug zu verbessern oder Randfälle zu generieren, die im Original nicht vorhanden sind.

Wir verwenden einen Datensatz zu Kreditkartenbetrug, der von veröffentlicht wurde ULB, die heruntergeladen werden kann Kaggle. Die Generierung synthetischer Daten für die Minderheitsklasse hilft bei der Lösung von Problemen im Zusammenhang mit unausgewogenen Datensätzen, was bei der Entwicklung genauerer Modelle helfen kann.

Wir verwenden AWS-Dienste, einschließlich Amazon SageMaker und Amazon S3, die Kosten für die Nutzung von Cloud-Ressourcen verursachen.

Einrichten der Entwicklungsumgebung

SageMaker bietet eine verwaltete Jupyter-Notebookinstanz für die Modellerstellung, Schulung und Bereitstellung.

Voraussetzungen:

Sie müssen über ein AWS-Konto verfügen, um SageMaker auszuführen. Du kannst bekommen begonnen mit SageMaker und versuchen praktische Tutorials.

Anweisungen zum Einrichten Ihrer Jupyter Notebook-Arbeitsumgebung finden Sie unter Erste Schritte mit Amazon SageMaker Notebook-Instances.

Schritt 1: Richten Sie Ihre Amazon SageMaker-Instanz ein

  1. Melden Sie sich bei der AWS-Konsole an und suchen Sie nach „SageMaker“.
  2. Auswählen Studio.
  3. Auswählen Notebook-Instanzen auf der linken Leiste und wählen Sie aus Erstellen Sie eine Notebook-Instanz.
  4. Wählen Sie auf der nächsten Seite (wie im folgenden Bild gezeigt) die Konfigurationen der virtuellen Maschine (VM) gemäß Ihren Anforderungen aus und wählen Sie aus Erstellen Sie eine Notebook-Instanz. Beachten Sie, dass wir eine ML-optimierte VM ohne GPU und 5 GB Daten, ml.t3.medium mit Amazon Linux 2 und Jupyter Lab 3-Kernel verwendet haben.
    Erstellen Sie eine Notebook-Instanz
  5. Eine Notebook-Instance ist innerhalb weniger Minuten für Sie einsatzbereit.
  6. Auswählen Öffnen Sie JupyterLab starten.
    Erweitern Sie Betrugstransaktionen mithilfe synthetischer Daten in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  7. Nachdem wir nun ein JupyterLab mit unseren erforderlichen Spezifikationen haben, werden wir die synthetische Bibliothek installieren.
pip install ydata-synthetic

Schritt 2: Laden Sie den echten Datensatz herunter oder extrahieren Sie ihn, um synthetische Daten zu erstellen

Laden Sie die Referenzdaten herunter von Kaggle entweder manuell, wie wir es hier tun, oder programmgesteuert über die Kaggle-API, wenn Sie ein Kaggle-Konto haben. Wenn Sie diesen Datensatz untersuchen, werden Sie feststellen, dass die Klasse „Betrug“ viel weniger Daten enthält als die Klasse „Kein Betrug“.

Wenn Sie diese Daten direkt für maschinelle Lernvorhersagen verwenden, lernen die Modelle möglicherweise immer, „kein Betrug“ vorherzusagen. Ein Modell wird leicht eine höhere Genauigkeit in Nichtbetrugsfällen haben, da Betrugsfälle selten sind. Da die Aufdeckung der Betrugsfälle jedoch unser Ziel bei dieser Übung ist, werden wir die Zahlen der Betrugsklassen mit synthetischen Daten erhöhen, die den realen Daten nachempfunden sind.

Erstellen Sie einen Datenordner in JupyterLab und laden Sie die Kaggle-Datendatei hinein. Dadurch können Sie die Daten innerhalb des Notebooks seit SageMaker verwenden kommt mit Speicher die Sie beim Instanziieren des Notebooks angegeben hätten.

Erweitern Sie Betrugstransaktionen mithilfe synthetischer Daten in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Dieser Datensatz ist 144 MB groß

Erweitern Sie Betrugstransaktionen mithilfe synthetischer Daten in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Sie können die Daten dann mit Standardcode über die Pandas-Bibliothek lesen:

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

Betrugserkennungsdaten haben bestimmte Eigenschaften, nämlich:

  • Große Klassenungleichgewichte (normalerweise in Richtung nicht betrügerischer Datenpunkte).
  • Datenschutzbezogene Bedenken (aufgrund des Vorhandenseins sensibler Daten).
  • Ein gewisses Maß an Dynamik, da ein böswilliger Benutzer immer versucht, die Entdeckung durch Systeme zu vermeiden, die betrügerische Transaktionen überwachen.
  • Die verfügbaren Datensätze sind sehr groß und oft unbeschriftet.

Nachdem Sie den Datensatz überprüft haben, filtern wir die Minderheitsklasse (die „Betrugs“-Klasse aus dem Kreditkartendatensatz) und führen nach Bedarf Transformationen durch. Sie können die Datentransformationen daraus überprüfen Notizbuch.

Wenn dieser Minderheitenklassen-Datensatz synthetisiert und wieder dem ursprünglichen Datensatz hinzugefügt wird, ermöglicht er die Generierung eines größeren synthetisierten Datensatzes, der das Ungleichgewicht in den Daten angeht. Wir können eine größere Vorhersagegenauigkeit erreichen, indem wir Trainieren eines Betrugserkennungsmodells den neuen Datensatz verwenden.

Lassen Sie uns den neuen Betrugsdatensatz synthetisieren.

Schritt 3: Trainieren Sie die Synthesizer und erstellen Sie das Modell

Da Ihnen die Daten in SageMaker zur Verfügung stehen, ist es an der Zeit, unsere synthetischen GAN-Modelle einzusetzen.

Ein Generative Adversarial Network (GAN) besteht aus zwei Teilen:

Das Generator lernt, plausible Daten zu generieren. Die generierten Instanzen werden zu negativen Trainingsbeispielen für den Diskriminator.

Das Diskriminator lernt, die gefälschten Daten des Generators von echten Daten zu unterscheiden. Der Diskriminator bestraft den Generator für die Erzeugung unplausibler Ergebnisse.

Wenn das Training beginnt, produziert der Generator offensichtlich gefälschte Daten, und der Diskriminator lernt schnell zu erkennen, dass es sich um eine Fälschung handelt. Mit fortschreitendem Training nähert sich der Generator der Erzeugung einer Ausgabe, die den Diskriminator täuschen kann. Schließlich, wenn das Generatortraining gut läuft, wird der Diskriminator schlechter darin, den Unterschied zwischen echt und falsch zu erkennen. Es beginnt, gefälschte Daten als echt zu klassifizieren, und seine Genauigkeit nimmt ab.

Sowohl der Generator als auch der Diskriminator sind neuronale Netze. Der Generatorausgang ist direkt mit dem Diskriminatoreingang verbunden. Durch Backpropagation, liefert die Klassifizierung des Diskriminators ein Signal, das der Generator verwendet, um seine Gewichte zu aktualisieren.

Schritt 4: Synthetische Daten vom Synthesizer abtasten

Nachdem Sie Ihr Modell erstellt und trainiert haben, ist es an der Zeit, die erforderlichen Daten abzutasten, indem Sie dem Modell Rauschen zuführen. Dadurch können Sie beliebig viele synthetische Daten generieren.

In diesem Fall generieren Sie eine gleiche Menge an synthetischen Daten wie die Menge an tatsächlichen Daten, da dies den Vergleich der ähnlichen Stichprobenumfänge in Schritt 5 erleichtert.

Wir haben die Möglichkeit, Zeilen mit betrügerischen Transaktionen abzutasten – was in Kombination mit den nicht synthetischen Betrugsdaten zu einer gleichmäßigen Verteilung der Klassen „Betrug“ und „Nicht-Betrug“ führt. Das Original Kaggle-Datensatz enthielt 492 Betrügereien aus 284,807 Transaktionen, also erstellen wir ein gleiches Sample aus dem Synthesizer.

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

Wir haben die Möglichkeit, Zeilen mit betrügerischen Transaktionen in einem Prozess, der als Datenerweiterung bezeichnet wird, aufzuwerten – was in Kombination mit den nicht synthetischen Betrugsdaten zu einer gleichmäßigen Verteilung der Klassen „Betrug“ und „Nicht-Betrug“ führt.

Schritt 5: Vergleichen und bewerten Sie die synthetischen Daten mit den realen Daten

Obwohl dieser Schritt optional ist, können Sie die generierten synthetischen Daten anhand eines Streudiagramms qualitativ visualisieren und mit den tatsächlichen Daten vergleichen.

Dies hilft uns, unser Modell zu iterieren, indem wir Parameter optimieren, die Stichprobengröße ändern und andere Transformationen vornehmen, um die genauesten synthetischen Daten zu generieren. Diese Art der Genauigkeit hängt immer vom Zweck der Synthese ab

Das Bild unten zeigt, wie ähnlich der tatsächliche Betrug und die synthetischen Betrugsdatenpunkte über die Trainingsschritte hinweg sind. Dies gibt eine gute qualitative Untersuchung der Ähnlichkeit zwischen den synthetischen und den tatsächlichen Daten und wie sich diese verbessert, wenn wir sie durch mehr Epochen laufen lassen (Durchgang des gesamten Trainingsdatensatzes durch den Algorithmus). Beachten Sie, dass der synthetische Datenmustersatz den ursprünglichen Daten näher kommt, wenn wir mehr Epochen durchlaufen.

Erweitern Sie Betrugstransaktionen mithilfe synthetischer Daten in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Schritt 6: Aufräumen

Stoppen Sie abschließend Ihre Notebook-Instance, wenn Sie mit der Synthese fertig sind, um unerwartete Kosten zu vermeiden.

Zusammenfassung

B. Algorithmen für maschinelles Lernen und Codierungsframeworks entwickeln sich schnell, hochwertige Daten in großem Maßstab sind die knappste Ressource im ML. Hochwertige synthetische Datensätze können für eine Vielzahl von Aufgaben verwendet werden.

In diesem Blogbeitrag haben Sie gelernt, wie wichtig es ist, den Datensatz mithilfe einer Open-Source-Bibliothek zu synthetisieren, die verwendet WGAN-GP. Dies ist ein aktives Forschungsgebiet mit Tausenden von veröffentlichten Artikeln über GANs und vielen Hundert benannten GANs, mit denen Sie experimentieren können. Es gibt Varianten, die für bestimmte Anwendungsfälle wie relationale Tabellen und Zeitreihendaten optimiert sind.

Hier finden Sie den gesamten Code, der für diesen Artikel verwendet wurde Notizbuch, und natürlich sind weitere Tutorials wie dieses im SageMaker verfügbar offizielle Dokumentationsseite.

Im zweiten Teil In dieser zweiteiligen Blog-Post-Serie werden wir uns eingehend damit befassen, wie die Qualität der synthetischen Daten im Hinblick auf Treue, Nützlichkeit und Datenschutz bewertet werden kann.


Über den Autor

Erweitern Sie Betrugstransaktionen mithilfe synthetischer Daten in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Faris Haddad ist Data & Insights Lead im AABG Strategic Pursuits Team. Er hilft Unternehmen, erfolgreich datengetrieben zu werden.

Zeitstempel:

Mehr von AWS Maschinelles Lernen