Povečajte goljufive transakcije z uporabo sintetičnih podatkov v Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Povečajte goljufive transakcije z uporabo sintetičnih podatkov v Amazon SageMaker

Za razvoj in usposabljanje uspešnih modelov goljufij strojnega učenja (ML) je potreben dostop do velikih količin visokokakovostnih podatkov. Pridobivanje teh podatkov je zahtevno, ker razpoložljivi nabori podatkov včasih niso dovolj veliki ali dovolj nepristranski za koristno usposabljanje modela ML in lahko zahtevajo znatne stroške in čas. Predpisi in zahteve glede zasebnosti dodatno preprečujejo uporabo ali skupno rabo podatkov celo znotraj organizacije podjetja. Postopek odobritve uporabe in dostopa do občutljivih podatkov pogosto zamuja ali iztiri projekte ML. Druga možnost je, da se s temi izzivi spoprimemo z ustvarjanjem in uporabo sintetičnih podatkov.

Sintetični podatki opisujejo umetno ustvarjene nabore podatkov, ki posnemajo vsebino in vzorce v izvirnem naboru podatkov, da bi obravnavali regulativno tveganje in skladnost, čas in stroške pridobivanja. Generatorji sintetičnih podatkov uporabljajo resnične podatke, da se naučijo ustreznih značilnosti, korelacije in vzorcev, da ustvarijo zahtevane količine sintetičnih podatkov, ki se ujemajo s statistično kakovostjo prvotno vnesenega nabora podatkov.

Sintetični podatki se v laboratorijskih okoljih uporabljajo za več kot dve desetletji; trg ima dokaze o uporabnosti, ki pospešuje sprejemanje v komercialnem in javnem sektorju. Gartner napoveduje da bo do leta 2024 60 odstotkov podatkov, ki se uporabljajo za razvoj ML in analitičnih rešitev, sintetično ustvarjenih in da se bo uporaba sintetičnih podatkov še naprej močno povečevala.

The Financial Conduct Authority, regulativni organ Združenega kraljestva, priznava da je "dostop do podatkov katalizator za inovacije, sintetični finančni podatki pa bi lahko igrali vlogo pri podpiranju inovacij in omogočili novim udeležencem, da razvijejo, testirajo in prikažejo vrednost novih rešitev."

Amazon SageMaker GroundTruth trenutno podpira sintetično generiranje podatkov označenih sintetičnih slikovnih podatkov. Ta objava v spletnem dnevniku raziskuje tabelarično ustvarjanje sintetičnih podatkov. Strukturirani podatki, kot so posamezne in relacijske tabele, ter podatki časovnih vrst so vrste, ki jih najpogosteje srečamo v analitiki podjetij.

To je dvodelna objava na blogu; v prvem delu ustvarimo sintetične podatke in ocenimo njihovo kakovost drugi del.

V tem blogu se boste naučili uporabljati odprtokodno knjižnico ydata-sintetični in Prenosniki AWS SageMaker za sintezo tabelaričnih podatkov za primer uporabe goljufije, kjer nimamo dovolj goljufivih transakcij za usposabljanje visoko natančnega modela goljufije. Tu je zajet splošen postopek usposabljanja modela goljufije objava.

Pregled rešitve

Namen te vadnice je sintetizirati manjšinski razred zelo neuravnoteženega nabora podatkov o goljufijah s kreditnimi karticami z uporabo optimiziranega generativno kontradiktorno omrežje (GAN) se imenuje WGAN-GP da se naučijo vzorcev in statističnih lastnosti izvirnih podatkov in nato ustvarijo neskončne vzorce sintetičnih podatkov, ki so podobni izvirnim podatkom. Ta postopek je mogoče uporabiti tudi za izboljšanje izvirnih podatkov s povečanim vzorčenjem redkih dogodkov, kot je goljufija, ali za ustvarjanje robnih primerov, ki niso prisotni v izvirniku.

Uporabljamo nabor podatkov o goljufijah s kreditnimi karticami, ki ga je objavil ULB, ki ga lahko prenesete iz Kaggle. Ustvarjanje sintetičnih podatkov za manjšinski razred pomaga pri reševanju težav, povezanih z neuravnoteženimi nabori podatkov, kar lahko pomaga pri razvoju natančnejših modelov.

Uporabljamo storitve AWS, vključno z Amazon SageMaker in Amazon S3, ki povzročajo stroške za uporabo virov v oblaku.

Nastavite razvojno okolje

SageMaker zagotavlja upravljan primerek prenosnega računalnika Jupyter za izdelavo modela, usposabljanje in uvajanje.

Pogoji:

Za zagon SageMakerja morate imeti račun AWS. Lahko dobiš začel s SageMakerjem in poskusite praktične vaje.

Za navodila o nastavitvi delovnega okolja Jupyter Notebook glejte Začnite uporabljati primerke prenosnika Amazon SageMaker.

1. korak: Nastavite svoj primerek Amazon SageMaker

  1. Prijavite se v konzolo AWS in poiščite »SageMaker«.
  2. Izberite študija.
  3. Izberite Primeri prenosnih računalnikov v levi vrstici in izberite Ustvari primerek prenosnega računalnika.
  4. Na naslednji strani (kot je prikazano na naslednji sliki) izberite konfiguracije virtualnega stroja (VM) glede na vaše potrebe in izberite Ustvari primerek prenosnega računalnika. Upoštevajte, da smo uporabili VM, optimiziran za ML, brez GPU-ja in 5 GB podatkov, ml.t3.medium, ki poganja Amazon Linux 2, in jedro Jupyter Lab 3.
    Ustvari primerek prenosnega računalnika
  5. Primerek prenosnega računalnika bo pripravljen za uporabo v nekaj minutah.
  6. Izberite Odprite JupyterLab za zagon.
    Povečajte goljufive transakcije z uporabo sintetičnih podatkov v Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.
  7. Zdaj, ko imamo JupyterLab z zahtevanimi specifikacijami, bomo namestili sintetično knjižnico.
pip install ydata-synthetic

2. korak: Prenesite ali ekstrahirajte pravi nabor podatkov, da ustvarite sintetične podatke

Prenesite referenčne podatke iz Kaggle ročno, kot to počnemo tukaj, ali programsko prek Kaggle API, če imate račun Kaggle. Če raziskujete ta nabor podatkov, boste opazili, da razred »fraud« vsebuje veliko manj podatkov kot razred »not fraud«.

Če te podatke uporabite neposredno za napovedi strojnega učenja, se lahko modeli vedno naučijo napovedovati »ne goljufije«. Model bo zlahka dosegel večjo natančnost v primerih, ki niso goljufije, saj so primeri goljufij redki. Ker pa je naš cilj v tej vaji odkrivanje primerov goljufij, bomo povečali število razredov goljufij s sintetičnimi podatki, oblikovanimi po resničnih podatkih.

Ustvarite podatkovno mapo v JupyterLab in vanjo naložite podatkovno datoteko Kaggle. To vam bo omogočilo uporabo podatkov v zvezku od SageMaker naprej ima shrambo ki bi jih določili, ko ste instancirali zvezek.

Povečajte goljufive transakcije z uporabo sintetičnih podatkov v Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Ta nabor podatkov je velik 144 MB

Povečajte goljufive transakcije z uporabo sintetičnih podatkov v Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Podatke lahko nato preberete s standardno kodo prek knjižnice pandas:

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

Podatki za odkrivanje goljufij imajo določene značilnosti, in sicer:

  • Velika neravnovesja razredov (običajno proti podatkovnim točkam, ki niso goljufije).
  • Pomisleki v zvezi z zasebnostjo (zaradi prisotnosti občutljivih podatkov).
  • Stopnja dinamičnosti, saj se zlonamerni uporabnik vedno poskuša izogniti goljufivim transakcijam s strani nadzornih sistemov.
  • Razpoložljivi nizi podatkov so zelo veliki in pogosto neoznačeni.

Zdaj, ko ste pregledali nabor podatkov, filtrirajmo manjšinski razred (razred »prevare« iz nabora podatkov o kreditni kartici) in po potrebi izvedimo transformacije. Tukaj lahko preverite transformacije podatkov prenosnik.

Ko je ta nabor podatkov manjšinskega razreda sintetiziran in dodan nazaj k izvirnemu naboru podatkov, omogoča ustvarjanje večjega sintetiziranega nabora podatkov, ki obravnava neravnovesje v podatkih. Večjo natančnost napovedi lahko dosežemo z usposabljanje modela za odkrivanje goljufij uporabo novega nabora podatkov.

Sintetizirajmo nov nabor podatkov o goljufijah.

3. korak: Usposobite sintetizatorje in ustvarite model

Ker imate podatke takoj na voljo v SageMakerju, je čas, da začnemo delovati naši sintetični modeli GAN.

Generativno kontradiktorno omrežje (GAN) ima dva dela:

O generator se nauči ustvarjati verjetne podatke. Ustvarjeni primeri postanejo negativni primeri usposabljanja za diskriminatorja.

O diskriminator nauči se razlikovati lažne podatke generatorja od resničnih podatkov. Diskriminator kaznuje generator za ustvarjanje neverjetnih rezultatov.

Ko se začne usposabljanje, generator proizvede očitno lažne podatke in diskriminator se hitro nauči ugotoviti, da so lažni. Ko usposabljanje napreduje, se generator približa izdelku, ki lahko preslepi diskriminatorja. Nazadnje, če gre usposabljanje generatorja dobro, diskriminator slabše prepozna razliko med resničnim in lažnim. Lažne podatke začne opredeljevati kot prave, njihova točnost pa se zmanjša.

Tako generator kot diskriminator sta nevronski mreži. Izhod generatorja je povezan neposredno z vhodom diskriminatorja. Skozi povratno širjenje, klasifikacija diskriminatorja zagotavlja signal, ki ga generator uporabi za posodobitev svojih uteži.

4. korak: Vzorčenje sintetičnih podatkov iz sintetizatorja

Zdaj, ko ste zgradili in usposobili svoj model, je čas, da vzorčite zahtevane podatke tako, da v model vnesete hrup. To vam omogoča, da ustvarite toliko sintetičnih podatkov, kot želite.

V tem primeru ustvarite enako količino sintetičnih podatkov kot količina dejanskih podatkov, ker to olajša primerjavo podobnih velikosti vzorcev v 5. koraku.

Imamo možnost vzorčenja vrstic, ki vsebujejo goljufive transakcije – kar bo v kombinaciji z nesintetičnimi podatki o goljufijah vodilo do enake porazdelitve razredov »goljufije« in »ne-goljufije«. Izvirnik Nabor podatkov Kaggle vsebovalo 492 goljufij od 284,807 transakcij, zato ustvarimo enak vzorec iz sintetizatorja.

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

Imamo možnost povečanja vzorčenja vrstic, ki vsebujejo goljufive transakcije, v procesu, imenovanem povečava podatkov – ki bo v kombinaciji z nesintetičnimi podatki o goljufijah vodil do enake porazdelitve razredov »goljufije« in »ne-goljufije«.

5. korak: Primerjajte in ovrednotite sintetične podatke z resničnimi podatki

Čeprav ta korak ni obvezen, lahko kvalitativno vizualizirate in ocenite ustvarjene sintetične podatke glede na dejanske podatke z uporabo razpršitvenega grafa.

To nam pomaga ponavljati naš model s prilagajanjem parametrov, spreminjanjem velikosti vzorca in izvajanjem drugih transformacij za ustvarjanje najbolj natančnih sintetičnih podatkov. Ta narava natančnosti je vedno odvisna od namena sinteze

Spodnja slika prikazuje, kako podobne so si podatkovne točke dejanske goljufije in sintetične goljufije v korakih usposabljanja. To omogoča dober kvalitativni pregled podobnosti med sintetičnimi in dejanskimi podatki in kako se to izboljšuje, ko jih izvajamo skozi več obdobij (prehod celotnega nabora podatkov o usposabljanju skozi algoritem). Upoštevajte, da ko izvajamo več epoh, se nabor vzorcev sintetičnih podatkov približa izvirnim podatkom.

Povečajte goljufive transakcije z uporabo sintetičnih podatkov v Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

6. korak: Očistite

Končno ustavite svoj primerek prenosnika, ko končate s sintezo, da se izognete nepričakovanim stroškom.

zaključek

Kot algoritmi strojnega učenja in okviri kodiranja hitro razvijati, so visokokakovostni podatki v velikem obsegu najredkejši vir v ML. Kakovostne sintetične nize podatkov je mogoče uporabiti pri različnih nalogah.

V tej objavi v spletnem dnevniku ste se naučili, kako pomembno je sintetizirati nabor podatkov z uporabo odprtokodne knjižnice, ki uporablja WGAN-GP. To je aktivno raziskovalno področje s tisoči objavljenih člankov o GAN-jih in na stotine imenovanih GAN-jev, ki so na voljo za eksperimentiranje. Obstajajo različice, ki so optimizirane za posebne primere uporabe, kot so relacijske tabele in podatki časovnih vrst.

Tukaj lahko najdete vso kodo, uporabljeno za ta članek prenosnik, seveda pa je več podobnih vadnic na voljo pri SageMakerju stran uradne dokumentacije.

v drugi del V tej dvodelni seriji objav v spletnem dnevniku se bomo poglobljeno poglobili v to, kako oceniti kakovost sintetičnih podatkov z vidika zvestobe, uporabnosti in zasebnosti.


O Author

Povečajte goljufive transakcije z uporabo sintetičnih podatkov v Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Faris Haddad je vodja podatkov in vpogledov v skupini AABG Strategic Pursuits. Podjetjem pomaga uspešno postati podatkovno vodena.

Časovni žig:

Več od Strojno učenje AWS