Creșteți tranzacțiile frauduloase folosind date sintetice în Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Creșteți tranzacțiile frauduloase folosind date sintetice în Amazon SageMaker

Dezvoltarea și instruirea modelelor de fraudă de învățare automată (ML) de succes necesită acces la cantități mari de date de înaltă calitate. Obținerea acestor date este o provocare, deoarece seturile de date disponibile nu sunt uneori suficient de mari sau suficient de imparțial pentru a antrena în mod util modelul ML și pot necesita costuri și timp semnificative. Cerințele de reglementare și de confidențialitate împiedică și mai mult utilizarea sau partajarea datelor chiar și în cadrul unei organizații. Procesul de autorizare a utilizării și accesului la date sensibile întârzie sau deraiează adesea proiectele ML. Alternativ, putem aborda aceste provocări prin generarea și utilizarea datelor sintetice.

Datele sintetice descriu seturi de date create artificial care imită conținutul și modelele din setul de date original pentru a aborda riscul de reglementare și conformitatea, timpul și costurile de aprovizionare. Generatorii de date sintetice folosesc datele reale pentru a învăța caracteristici, corelații și modele relevante pentru a genera cantitățile necesare de date sintetice care se potrivesc cu calitățile statistice ale setului de date ingerat inițial.

Datele sintetice au fost utilizate în medii de laborator pentru peste două decenii; piața are dovezi de utilitate care accelerează adoptarea în sectoarele comerciale și publice. Gartner prezice că până în 2024, 60 la sută din datele utilizate pentru dezvoltarea soluțiilor ML și de analiză vor fi generate sintetic și că utilizarea datelor sintetice va continua să crească substanțial.

Financial Conduct Authority, un organism de reglementare din Regatul Unit, recunoaște „Accesul la date este catalizatorul inovației, iar datele financiare sintetice ar putea juca un rol în sprijinirea inovației și în a permite noilor intrați să dezvolte, să testeze și să demonstreze valoarea noilor soluții”.

Amazon SageMaker GroundTruth suportă în prezent generarea de date sintetice a datelor de imagine sintetice etichetate. Această postare de blog explorează generarea de date sintetice tabelare. Datele structurate, cum ar fi tabelele unice și relaționale, și datele din seria temporală sunt tipurile cel mai des întâlnite în analiza întreprinderii.

Aceasta este o postare pe blog în două părți; creăm date sintetice în prima parte și evaluăm calitatea acestora în Partea a doua.

În această postare pe blog, veți învăța cum să utilizați biblioteca open-source ydata-sintetic și Notebook-uri AWS SageMaker pentru a sintetiza date tabulare pentru un caz de utilizare a fraudei, în care nu avem suficiente tranzacții frauduloase pentru a antrena un model de fraudă de înaltă precizie. Procesul general de pregătire a unui model de fraudă este acoperit în acest articol post.

Prezentare generală a soluției

Scopul acestui tutorial este de a sintetiza clasa minoritară a unui set de date foarte dezechilibrat privind frauda cu carduri de credit, utilizând o aplicație optimizată. rețea generativă adversară (GAN) denumit WGAN-GP să învețe modele și proprietăți statistice ale datelor originale și apoi să creeze mostre nesfârșite de date sintetice care seamănă cu datele originale. Acest proces poate fi folosit și pentru a îmbunătăți datele originale prin supraeșantionarea evenimentelor rare, cum ar fi frauda, ​​sau pentru a genera cazuri limită care nu sunt prezente în original.

Folosim un set de date privind fraudele cu cardul de credit publicat de ULB, care poate fi descărcat de pe Kaggle. Generarea de date sintetice pentru clasa minoritară ajută la rezolvarea problemelor legate de seturile de date dezechilibrate, ceea ce poate ajuta la dezvoltarea unor modele mai precise.

Folosim servicii AWS, inclusiv Amazon SageMaker și Amazon S3, care implică costuri pentru utilizarea resurselor cloud.

Configurați mediul de dezvoltare

SageMaker oferă o instanță de notebook Jupyter gestionată pentru construirea de modele, instruire și implementare.

Cerințe preliminare:

Trebuie să aveți un cont AWS pentru a rula SageMaker. Poți obține început cu SageMaker și încercați tutoriale practice.

Pentru instrucțiuni despre configurarea mediului de lucru Jupyter Notebook, consultați Începeți cu Amazon SageMaker Notebook Instanțe.

Pasul 1: Configurați instanța Amazon SageMaker

  1. Conectați-vă la consola AWS și căutați „SageMaker”.
  2. Selectați Studio.
  3. Selectați Instanțe de notebook pe bara din stânga și selectați Creați o instanță de notebook.
  4. Din pagina următoare (așa cum se arată în imaginea următoare), selectați configurațiile mașinii virtuale (VM) în funcție de nevoile dvs. și selectați Creați o instanță de notebook. Rețineți că am folosit o VM optimizată ML fără GPU și 5 GB de date, ml.t3.medium care rulează un Amazon Linux 2 și kernel Jupyter Lab 3.
    Creați o instanță de notebook
  5. O instanță de notebook va fi gata pentru utilizare în câteva minute.
  6. Selectați Deschideți JupyterLab a lansa.
    Creșteți tranzacțiile frauduloase folosind date sintetice în Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.
  7. Acum că avem un JupyterLab cu specificațiile noastre necesare, vom instala biblioteca sintetică.
pip install ydata-synthetic

Pasul 2: Descărcați sau extrageți setul de date real pentru a crea date sintetice

Descărcați datele de referință de la Kaggle fie manual, așa cum facem aici, fie programatic prin Kaggle API dacă aveți un cont Kaggle. Dacă explorați acest set de date, veți observa că clasa „fraudă” conține mult mai puține date decât clasa „nu fraudă”.

Dacă utilizați aceste date direct pentru predicții de învățare automată, modelele ar putea învăța întotdeauna să prezică „nu frauda”. Un model va avea cu ușurință o precizie mai mare în cazurile de nonfraudă, deoarece cazurile de fraudă sunt rare. Cu toate acestea, deoarece detectarea cazurilor de fraudă este obiectivul nostru în acest exercițiu, vom spori numerele clasei de fraudă cu date sintetice modelate pe datele reale.

Creați un folder de date în JupyterLab și încărcați fișierul de date Kaggle în el. Acest lucru vă va permite să utilizați datele din blocnotes de la SageMaker vine cu depozitare pe care l-ai fi specificat când ai instanțiat caietul.

Creșteți tranzacțiile frauduloase folosind date sintetice în Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Acest set de date are 144 MB

Creșteți tranzacțiile frauduloase folosind date sintetice în Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Puteți citi apoi datele folosind codul standard prin biblioteca Pandas:

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

Datele de detectare a fraudei au anumite caracteristici, și anume:

  • Dezechilibre mari de clasă (de obicei către punctele de date non-fraudă).
  • Preocupări legate de confidențialitate (datorită prezenței datelor sensibile).
  • Un anumit grad de dinamism, în sensul că un utilizator rău intenționat încearcă întotdeauna să evite detectarea de către sistemele de monitorizare a tranzacțiilor frauduloase.
  • Seturile de date disponibile sunt foarte mari și adesea neetichetate.

Acum că ați inspectat setul de date, să filtram clasa minoritară (clasa „fraudă” din setul de date card de credit) și să efectuăm transformări după cum este necesar. Puteți verifica transformările datelor din aceasta caiet.

Când acest set de date de clasă minoritară este sintetizat și adăugat înapoi la setul de date original, permite generarea unui set de date sintetizat mai mare care abordează dezechilibrul de date. Putem obține o precizie mai mare de predicție prin antrenarea unui model de detectare a fraudei folosind noul set de date.

Să sintetizăm noul set de date privind fraudele.

Pasul 3: Antrenează sintetizatoarele și creează modelul

Deoarece aveți datele disponibile în SageMaker, este timpul să puneți modelele noastre GAN sintetice la lucru.

O rețea generativă adversară (GAN) are două părți:

generator învață să genereze date plauzibile. Instanțele generate devin exemple negative de antrenament pentru discriminator.

discriminator învață să distingă datele false ale generatorului de datele reale. Discriminatorul penalizează generatorul pentru că produce rezultate neplauzibile.

Când începe antrenamentul, generatorul produce date în mod evident false, iar discriminatorul învață rapid să spună că sunt false. Pe măsură ce antrenamentul progresează, generatorul se apropie de producerea de rezultate care îl pot păcăli pe discriminator. În cele din urmă, dacă antrenamentul generator merge bine, discriminatorul devine mai rău în a face diferența dintre real și fals. Începe să clasifice datele false ca fiind reale, iar acuratețea lor scade.

Atât generatorul, cât și discriminatorul sunt rețele neuronale. Ieșirea generatorului este conectată direct la intrarea discriminatorului. Prin propagarea înapoi, clasificarea discriminatorului oferă un semnal pe care generatorul îl folosește pentru a-și actualiza greutățile.

Pasul 4: Eșantionați date sintetice de la sintetizator

Acum că ți-ai construit și antrenat modelul, este timpul să eșantionezi datele necesare, furnizând zgomot modelului. Acest lucru vă permite să generați cât de multe date sintetice doriți.

În acest caz, generați o cantitate egală de date sintetice cu cantitatea de date reale, deoarece acest lucru facilitează compararea dimensiunilor eșantioanelor similare la Pasul 5.

Avem opțiunea de a eșantiona rânduri care conțin tranzacții frauduloase – care, atunci când sunt combinate cu datele de fraudă nesintetice, vor duce la o distribuție egală a claselor „fraudă” și „nu-fraudă”. Originalul Setul de date Kaggle a conținut 492 de fraude din 284,807 tranzacții, așa că creăm același eșantion din sintetizator.

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

Avem opțiunea de a eșantiona în plus rândurile care conțin tranzacții frauduloase într-un proces numit creșterea datelor – care, atunci când este combinat cu datele de fraudă nesintetice, va duce la o distribuție egală a claselor „fraudă” și „nefraudă”.

Pasul 5: Comparați și evaluați datele sintetice cu datele reale

Deși acest pas este opțional, puteți vizualiza și evalua calitativ datele sintetice generate în comparație cu datele reale folosind un grafic de dispersie.

Acest lucru ne ajută să ne repetăm ​​modelul modificând parametrii, modificând dimensiunea eșantionului și efectuând alte transformări pentru a genera cele mai precise date sintetice. Această natură a preciziei depinde întotdeauna de scopul sintezei

Imaginea de mai jos ilustrează cât de asemănătoare sunt punctele de date privind frauda reală și frauda sintetică în pașii de instruire. Acest lucru oferă o bună inspecție calitativă a similitudinii dintre datele sintetice și cele reale și a modului în care aceasta se îmbunătățește pe măsură ce le rulăm prin mai multe epoci (tranzitul întregului set de date de antrenament prin algoritm). Rețineți că, pe măsură ce rulăm mai multe epoci, setul de modele de date sintetice se apropie de datele originale.

Creșteți tranzacțiile frauduloase folosind date sintetice în Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Pasul 6: Curățați

În cele din urmă, opriți instanța notebook-ului când ați terminat cu sinteza pentru a evita costuri neașteptate.

Concluzie

Ca algoritmi de învățare automată și cadre de codare evoluează rapid, datele de înaltă calitate la scară sunt cea mai rară resursă din ML. Seturile de date sintetice de bună calitate pot fi utilizate într-o varietate de sarcini.

În această postare pe blog, ați învățat importanța sintetizării setului de date folosind o bibliotecă open-source care utilizează WGAN-GP. Aceasta este o zonă de cercetare activă, cu mii de lucrări despre GAN-uri publicate și multe sute de GAN-uri numite disponibile pentru a experimenta. Există variante care sunt optimizate pentru cazuri de utilizare specifice, cum ar fi tabelele relaționale și datele din seria temporală.

Puteți găsi tot codul folosit pentru acest articol în acest articol caietși, desigur, mai multe tutoriale ca acesta sunt disponibile din SageMaker pagina de documentație oficială.

În a doua parte din această serie de postări pe blog în două părți, vom face o scufundare profundă în modul de evaluare a calității datelor sintetice dintr-o perspectivă a fidelității, utilității și confidențialității.


Despre autor

Creșteți tranzacțiile frauduloase folosind date sintetice în Amazon SageMaker PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Faris Haddad este responsabilul Data & Insights în echipa AABG Strategic Pursuits. El ajută companiile să devină cu succes bazate pe date.

Timestamp-ul:

Mai mult de la Învățare automată AWS