Verbeter fraudetransacties met behulp van synthetische gegevens in Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Verbeter fraudetransacties met behulp van synthetische gegevens in Amazon SageMaker

Het ontwikkelen en trainen van succesvolle machine learning (ML) fraudemodellen vereist toegang tot grote hoeveelheden hoogwaardige gegevens. Het vinden van deze gegevens is een uitdaging omdat de beschikbare datasets soms niet groot genoeg of voldoende onbevooroordeeld zijn om het ML-model nuttig te trainen en mogelijk aanzienlijke kosten en tijd vergen. Regelgeving en privacyvereisten verhinderen verder het gebruik of delen van gegevens, zelfs binnen een bedrijfsorganisatie. Het autoriseren van het gebruik van en de toegang tot gevoelige gegevens zorgt vaak voor vertraging of ontsporing van ML-projecten. We kunnen deze uitdagingen ook aanpakken door synthetische data te genereren en te gebruiken.

Synthetische data beschrijft kunstmatig gecreรซerde datasets die de inhoud en patronen in de oorspronkelijke dataset nabootsen om regelgevende risico's en naleving, tijd en inkoopkosten aan te pakken. Synthetische gegevensgeneratoren gebruiken de echte gegevens om relevante kenmerken, correlaties en patronen te leren om de vereiste hoeveelheden synthetische gegevens te genereren die overeenkomen met de statistische eigenschappen van de oorspronkelijk opgenomen dataset.

Synthetische gegevens zijn al in gebruik in laboratoriumomgevingen voor meer dan twee decennia; de markt heeft bewijs van nut dat de acceptatie in commerciรซle en publieke sectoren versnelt. Gartner voorspelt dat tegen 2024 60 procent van de data die wordt gebruikt voor de ontwikkeling van ML- en analyseoplossingen synthetisch zal worden gegenereerd en dat het gebruik van synthetische data substantieel zal blijven toenemen.

De Financial Conduct Authority, een Britse regelgevende instantie, erkent dat "Toegang tot gegevens de katalysator is voor innovatie, en synthetische financiรซle gegevens zouden een rol kunnen spelen bij het ondersteunen van innovatie en het mogelijk maken voor nieuwe toetreders om de waarde van nieuwe oplossingen te ontwikkelen, testen en demonstreren."

Amazon SageMaker GroundTruth ondersteunt momenteel synthetische gegevensgeneratie van gelabelde synthetische beeldgegevens. Deze blogpost onderzoekt het genereren van synthetische gegevens in tabelvorm. Gestructureerde gegevens, zoals enkele en relationele tabellen, en tijdreeksgegevens zijn de typen die het meest voorkomen in bedrijfsanalyses.

Dit is een tweedelig blogbericht; we creรซren synthetische data in deel รฉรฉn en evalueren de kwaliteit ervan in deel twee.

In deze blogpost leer je hoe je de open-sourcebibliotheek gebruikt ydata-synthetisch en AWS SageMaker-notebooks om tabelgegevens te synthetiseren voor een gebruiksscenario voor fraude, waarbij we niet genoeg frauduleuze transacties hebben om een โ€‹โ€‹uiterst nauwkeurig fraudemodel te trainen. Hierin wordt het algemene proces van het trainen van een fraudemodel behandeld post.

Overzicht van de oplossing

Het doel van deze tutorial is om de minderheidsklasse van een zeer onevenwichtige dataset voor creditcardfraude te synthetiseren met behulp van een geoptimaliseerde generatief vijandig netwerk (GAN) Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen. WGAN-GP om patronen en statistische eigenschappen van originele gegevens te leren en vervolgens eindeloze voorbeelden van synthetische gegevens te maken die lijken op de originele gegevens. Dit proces kan ook worden gebruikt om de oorspronkelijke gegevens te verbeteren door zeldzame gebeurtenissen zoals fraude te up-samplen of om randgevallen te genereren die niet aanwezig zijn in het origineel.

We gebruiken een gegevensset voor creditcardfraude die is gepubliceerd door ULB, die kan worden gedownload van Kaggle. Het genereren van synthetische gegevens voor de minderheidsklasse helpt bij het aanpakken van problemen met betrekking tot onevenwichtige gegevenssets, wat kan helpen bij het ontwikkelen van nauwkeurigere modellen.

We gebruiken AWS-services, waaronder Amazon SageMaker en Amazon S3, die kosten met zich meebrengen om cloudbronnen te gebruiken.

De ontwikkelomgeving instellen

SageMaker biedt een beheerde Jupyter-notebookinstantie voor modelbouw, training en implementatie.

Vereisten:

U moet een AWS-account hebben om SageMaker uit te voeren. Je kan krijgen gestart met SageMaker en probeer het praktijkgerichte lessen.

Zie voor instructies voor het instellen van uw Jupyter Notebook-werkomgeving Aan de slag met Amazon SageMaker Notebook-instanties.

Stap 1: stel uw Amazon SageMaker-instantie in

  1. Meld u aan bij de AWS-console en zoek naar 'SageMaker'.
  2. kies studio.
  3. kies Notebook-exemplaren op de linkerbalk en selecteer Maak een notitieboekexemplaar.
  4. Selecteer op de volgende pagina (zoals weergegeven in de volgende afbeelding) de configuraties van de virtuele machine (VM) volgens uw behoeften en selecteer Maak een notitieboekexemplaar. Merk op dat we een ML-geoptimaliseerde VM gebruikten zonder GPU en 5 GB aan gegevens, ml.t3.medium met een Amazon Linux 2 en Jupyter Lab 3-kernel.
    Maak een notitieboekexemplaar
  5. Een notebook-exemplaar is binnen enkele minuten klaar voor gebruik.
  6. kies JupyterLab openen lanceren.
    Verbeter fraudetransacties met behulp van synthetische gegevens in Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  7. Nu we een JupyterLab hebben met onze vereiste specificaties, gaan we de synthetische bibliotheek installeren.
pip install ydata-synthetic

Stap 2: Download of extraheer de echte dataset om synthetische data te creรซren

Download de referentiegegevens van Kaggle handmatig, zoals we hier doen, of programmatisch via Kaggle API als je een Kaggle-account hebt. Als u deze gegevensset verkent, zult u merken dat de klasse 'fraude' veel minder gegevens bevat dan de klasse 'geen fraude'.

Als u deze gegevens rechtstreeks gebruikt voor voorspellingen van machine learning, kunnen de modellen altijd leren om 'geen fraude' te voorspellen. Een model zal gemakkelijk een hogere nauwkeurigheid hebben in niet-fraudegevallen, aangezien fraudegevallen zeldzaam zijn. Aangezien het opsporen van de fraudegevallen echter ons doel is in deze oefening, zullen we de fraudeklassen verhogen met synthetische gegevens die zijn gemodelleerd naar de echte gegevens.

Maak een gegevensmap in JupyterLab en upload het Kaggle-gegevensbestand erin. Hierdoor kunt u de gegevens in de notebook gebruiken sinds SageMaker wordt geleverd met opslag die u zou hebben opgegeven toen u het notitieblok initieerde.

Verbeter fraudetransacties met behulp van synthetische gegevens in Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Deze dataset is 144 MB groot

Verbeter fraudetransacties met behulp van synthetische gegevens in Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Via de panda's bibliotheek kun je de data vervolgens met behulp van standaardcode uitlezen:

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

Fraudedetectiegegevens hebben bepaalde kenmerken, namelijk:

  • Grote klassenonevenwichtigheden (meestal in de richting van niet-fraude datapunten).
  • Privacygerelateerde zorgen (vanwege de aanwezigheid van gevoelige gegevens).
  • Een zekere mate van dynamiek, in die zin dat een kwaadwillende gebruiker altijd probeert detectie te voorkomen door systemen die frauduleuze transacties controleren.
  • De beschikbare datasets zijn erg groot en vaak ongelabeld.

Nu u de gegevensset hebt geรฏnspecteerd, gaan we de minderheidsklasse filteren (de "fraude"-klasse uit de creditcardgegevensset) en de benodigde transformaties uitvoeren. U kunt hieruit de gegevenstransformaties bekijken notitieboekje.

Wanneer deze dataset van minderheidsklassen wordt gesynthetiseerd en weer wordt toegevoegd aan de oorspronkelijke dataset, kan een grotere gesynthetiseerde dataset worden gegenereerd die de onbalans in gegevens aanpakt. We kunnen een grotere voorspellingsnauwkeurigheid bereiken door het trainen van een fraudedetectiemodel met behulp van de nieuwe dataset.

Laten we de nieuwe fraudedataset samenvatten.

Stap 3: Train de synthesizers en maak het model

Aangezien u de gegevens binnen SageMaker direct beschikbaar heeft, is het tijd om onze synthetische GAN-modellen aan het werk te zetten.

Een generatief vijandig netwerk (GAN) bestaat uit twee delen:

De generator leert plausibele gegevens te genereren. De gegenereerde instanties worden negatieve trainingsvoorbeelden voor de discriminator.

De onderscheidingsvermogen leert nepgegevens van de generator te onderscheiden van echte gegevens. De discriminator straft de generator voor het produceren van ongeloofwaardige resultaten.

Wanneer de training begint, produceert de generator duidelijk nepgegevens, en de discriminator leert snel dat het nep is. Naarmate de training vordert, komt de generator dichter bij het produceren van output die de discriminator voor de gek kan houden. Ten slotte, als generatortraining goed gaat, wordt de discriminator slechter in het onderscheiden van echt en nep. Het begint nepgegevens als echt te classificeren en de nauwkeurigheid ervan neemt af.

Zowel de generator als de discriminator zijn neurale netwerken. De generatoruitgang is rechtstreeks verbonden met de discriminatoringang. Door terugvermeerdering, levert de classificatie van de discriminator een signaal dat de generator gebruikt om zijn gewichten bij te werken.

Stap 4: Sample synthetische gegevens van de synthesizer

Nu u uw model hebt gebouwd en getraind, is het tijd om de vereiste gegevens te bemonsteren door ruis aan het model toe te voeren. Hierdoor kunt u zoveel synthetische gegevens genereren als u wilt.

In dit geval genereert u een gelijke hoeveelheid synthetische gegevens als de hoeveelheid feitelijke gegevens, omdat dit het gemakkelijker maakt om de vergelijkbare steekproefomvang in stap 5 te vergelijken.

We hebben de mogelijkheid om steekproeven te nemen van rijen met frauduleuze transacties, die, in combinatie met de niet-synthetische fraudegegevens, zullen leiden tot een gelijke verdeling van "fraude" en "niet-fraude" klassen. Het origineel Kaggle-gegevensset bevatte 492 fraudeurs van 284,807 transacties, dus maken we hetzelfde monster van de synthesizer.

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

We hebben de mogelijkheid om rijen met frauduleuze transacties te upsamplen in een proces dat gegevensaugmentatie wordt genoemd. In combinatie met de niet-synthetische fraudegegevens leidt dit tot een gelijke verdeling van de klassen 'fraude' en 'niet-fraude'.

Stap 5: Vergelijk en evalueer de synthetische gegevens met de echte gegevens

Hoewel deze stap optioneel is, kunt u de gegenereerde synthetische gegevens kwalitatief visualiseren en beoordelen aan de hand van een spreidingsplot.

Dit helpt ons ons model te herhalen door parameters aan te passen, de steekproefomvang te wijzigen en andere transformaties uit te voeren om de meest nauwkeurige synthetische gegevens te genereren. Deze aard van nauwkeurigheid is altijd afhankelijk van het doel van de synthese

De onderstaande afbeelding laat zien hoe vergelijkbaar de daadwerkelijke fraude en de synthetische fraudegegevenspunten zijn in de trainingsstappen. Dit geeft een goede kwalitatieve inspectie van de overeenkomst tussen de synthetische en de werkelijke gegevens en hoe dat verbetert naarmate we het door meer tijdperken laten lopen (doorvoer van de volledige trainingsdataset door algoritme). Merk op dat naarmate we meer tijdperken uitvoeren, de set synthetische gegevenspatronen dichter bij de oorspronkelijke gegevens komt.

Verbeter fraudetransacties met behulp van synthetische gegevens in Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Stap 6: Opruimen

Stop ten slotte uw notebookinstantie wanneer u klaar bent met de synthese om onverwachte kosten te voorkomen.

Conclusie

Zoals algoritmen voor machine learning en coderingsframeworks snel evolueren, hoogwaardige data op schaal is de schaarste bron in ML. Synthetische datasets van goede kwaliteit kunnen voor verschillende taken worden gebruikt.

In deze blogpost heb je geleerd hoe belangrijk het is om de dataset te synthetiseren door een open-sourcebibliotheek te gebruiken die gebruikmaakt van WGAN-GP. Dit is een actief onderzoeksgebied met duizenden gepubliceerde artikelen over GAN's en vele honderden GAN's met een naam waarmee u kunt experimenteren. Er zijn varianten die zijn geoptimaliseerd voor specifieke gebruikssituaties, zoals relationele tabellen en tijdreeksgegevens.

Hierin vindt u alle code die voor dit artikel is gebruikt notitieboekje, en natuurlijk zijn er meer van dit soort tutorials beschikbaar via de SageMaker officiรซle documentatiepagina.

In het tweede deel van deze tweedelige blogpostreeks gaan we dieper in op hoe we de kwaliteit van de synthetische gegevens kunnen evalueren vanuit een perspectief van betrouwbaarheid, bruikbaarheid en privacy.


Over de auteur

Verbeter fraudetransacties met behulp van synthetische gegevens in Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Faris Haddad is de Data & Insights Lead in het AABG Strategic Pursuits-team. Hij helpt ondernemingen om datagedreven te worden.

Tijdstempel:

Meer van AWS-machine learning