Aumenta le transazioni fraudolente utilizzando dati sintetici in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Aumenta le transazioni fraudolente utilizzando dati sintetici in Amazon SageMaker

Lo sviluppo e l'addestramento di modelli di frode di machine learning (ML) di successo richiedono l'accesso a grandi quantità di dati di alta qualità. L'approvvigionamento di questi dati è impegnativo perché i set di dati disponibili a volte non sono abbastanza grandi o sufficientemente imparziali per addestrare in modo utile il modello ML e possono richiedere costi e tempi significativi. I requisiti normativi e sulla privacy impediscono ulteriormente l'uso o la condivisione dei dati anche all'interno di un'organizzazione aziendale. Il processo di autorizzazione all'uso e all'accesso ai dati sensibili spesso ritarda o fa deragliare i progetti di riciclaggio di denaro. In alternativa, possiamo affrontare queste sfide generando e utilizzando dati sintetici.

I dati sintetici descrivono set di dati creati artificialmente che imitano il contenuto e i modelli nel set di dati originale al fine di affrontare il rischio normativo e la conformità, i tempi e i costi di approvvigionamento. I generatori di dati sintetici utilizzano i dati reali per apprendere caratteristiche, correlazioni e modelli pertinenti al fine di generare le quantità richieste di dati sintetici corrispondenti alle qualità statistiche del set di dati originariamente importato.

I dati sintetici sono in uso negli ambienti di laboratorio da oltre due decenni; il mercato ha prove di utilità che stanno accelerando l'adozione nei settori commerciale e pubblico. Gartner predice che entro il 2024, il 60% dei dati utilizzati per lo sviluppo di soluzioni di machine learning e analisi sarà generato sinteticamente e che l'uso di dati sintetici continuerà ad aumentare in modo sostanziale.

La Financial Conduct Authority, un organismo di regolamentazione del Regno Unito, riconosce che "l'accesso ai dati è il catalizzatore dell'innovazione e i dati finanziari sintetici potrebbero svolgere un ruolo nel sostenere l'innovazione e consentire ai nuovi entranti di sviluppare, testare e dimostrare il valore di nuove soluzioni".

Amazon SageMaker GroundTruth supporta attualmente generazione di dati sintetici di dati immagine sintetici etichettati. Questo post del blog esplora la generazione di dati sintetici tabulari. I dati strutturati, come le tabelle singole e relazionali, e i dati delle serie temporali sono i tipi che si incontrano più spesso nell'analisi aziendale.

Questo è un post sul blog in due parti; creiamo dati sintetici nella prima parte e ne valutiamo la qualità in seconda parte.

In questo post del blog imparerai come utilizzare la libreria open source ydata-sintetico ed Notebook AWS SageMaker per sintetizzare dati tabulari per un caso d'uso di frode, in cui non disponiamo di transazioni fraudolente sufficienti per addestrare un modello di frode ad alta precisione. Il processo generale di formazione di un modello di frode è coperto in questo settimana.

Panoramica della soluzione

Lo scopo di questo tutorial è sintetizzare la classe di minoranza di un set di dati di frode con carta di credito altamente sbilanciato utilizzando un file ottimizzato rete contraddittoria generativa (GAN) detto WGAN-GP per apprendere modelli e proprietà statistiche dei dati originali e quindi creare infiniti campioni di dati sintetici che assomigliano ai dati originali. Questo processo può essere utilizzato anche per migliorare i dati originali eseguendo l'up-sampling di eventi rari come frodi o per generare casi limite non presenti nell'originale.

Utilizziamo un set di dati sulle frodi con carta di credito pubblicato da ULB, da cui è possibile scaricare Kaggle. La generazione di dati sintetici per la classe di minoranza aiuta ad affrontare i problemi relativi a set di dati squilibrati, che possono aiutare a sviluppare modelli più accurati.

Utilizziamo i servizi AWS, tra cui Amazon SageMaker e Amazon S3, che comportano costi per l'utilizzo delle risorse cloud.

Configurare l'ambiente di sviluppo

SageMaker fornisce un'istanza notebook Jupyter gestita per la creazione di modelli, l'addestramento e la distribuzione.

Prerequisiti:

Devi disporre di un account AWS per eseguire SageMaker. Puoi prendere iniziato con SageMaker e prova tutorial pratici.

Per istruzioni sulla configurazione dell'ambiente di lavoro di Jupyter Notebook, vedere Inizia con le istanze notebook Amazon SageMaker.

Fase 1: configura la tua istanza Amazon SageMaker

  1. Accedi alla console AWS e cerca "SageMaker".
  2. Seleziona Studio.
  3. Seleziona Istanze di notebook sulla barra di sinistra e selezionare Crea istanza del blocco note.
  4. Dalla pagina successiva (come mostrato nell'immagine seguente), selezionare le configurazioni della macchina virtuale (VM) in base alle proprie esigenze e selezionare Crea istanza del blocco note. Si noti che abbiamo utilizzato una VM ottimizzata per ML senza GPU e 5 GB di dati, ml.t3.medium che esegue un kernel Amazon Linux 2 e Jupyter Lab 3.
    Crea istanza del blocco note
  5. Un'istanza notebook sarà pronta per l'uso in pochi minuti.
  6. Seleziona Apri JupyterLab lanciare.
    Aumenta le transazioni fraudolente utilizzando dati sintetici in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  7. Ora che abbiamo un JupyterLab con le specifiche richieste, installeremo la libreria sintetica.
pip install ydata-synthetic

Passaggio 2: scarica o estrai il set di dati reale per creare dati sintetici

Scarica i dati di riferimento da Kaggle manualmente, come facciamo qui, o in modo programmatico tramite l'API Kaggle se disponi di un account Kaggle. Se esplori questo set di dati, noterai che la classe "frode" contiene molti meno dati rispetto alla classe "non frode".

Se utilizzi questi dati direttamente per le previsioni di machine learning, i modelli potrebbero sempre imparare a prevedere "non frodi". Un modello avrà facilmente una maggiore precisione nei casi non fraudolenti poiché i casi di frode sono rari. Tuttavia, poiché rilevare i casi di frode è il nostro obiettivo in questo esercizio, aumenteremo i numeri delle classi di frode con dati sintetici modellati sui dati reali.

Crea una cartella di dati in JupyterLab e carica il file di dati di Kaggle al suo interno. Ciò ti consentirà di utilizzare i dati all'interno del notebook da SageMaker viene fornito con deposito che avresti specificato quando hai istanziato il notebook.

Aumenta le transazioni fraudolente utilizzando dati sintetici in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Questo set di dati è di 144 MB

Aumenta le transazioni fraudolente utilizzando dati sintetici in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

È quindi possibile leggere i dati utilizzando il codice standard tramite la libreria panda:

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

I dati di rilevamento delle frodi hanno determinate caratteristiche, vale a dire:

  • Grandi squilibri di classe (tipicamente verso punti dati non fraudolenti).
  • Preoccupazioni legate alla privacy (per la presenza di dati sensibili).
  • Un grado di dinamismo, in quanto un utente malintenzionato cerca sempre di evitare il rilevamento da parte dei sistemi di monitoraggio delle transazioni fraudolente.
  • I set di dati disponibili sono molto grandi e spesso non etichettati.

Ora che hai ispezionato il set di dati, filtriamo la classe di minoranza (la classe "frode" dal set di dati della carta di credito) ed eseguiamo le trasformazioni come richiesto. Puoi controllare le trasformazioni dei dati da questo taccuino.

Quando questo set di dati di classe minoritaria viene sintetizzato e aggiunto nuovamente al set di dati originale, consente la generazione di un set di dati sintetizzato più grande che risolve lo squilibrio nei dati. Possiamo ottenere una maggiore precisione di previsione formazione di un modello di rilevamento delle frodi utilizzando il nuovo set di dati.

Sintetizziamo il nuovo set di dati sulle frodi.

Passaggio 3: addestrare i sintetizzatori e creare il modello

Poiché i dati sono prontamente disponibili all'interno di SageMaker, è il momento di mettere in pratica i nostri modelli GAN sintetici.

Un generative adversarial network (GAN) ha due parti:

I generatore impara a generare dati plausibili. Le istanze generate diventano esempi di addestramento negativo per il discriminatore.

I discriminatore impara a distinguere i dati falsi del generatore dai dati reali. Il discriminatore penalizza il generatore per la produzione di risultati non plausibili.

Quando inizia l'addestramento, il generatore produce dati ovviamente falsi e il discriminatore impara rapidamente a dire che è falso. Con il progredire dell'addestramento, il generatore si avvicina alla produzione di un output che può ingannare il discriminatore. Infine, se l'addestramento del generatore va bene, il discriminatore peggiora nel distinguere tra vero e falso. Inizia a classificare i dati falsi come reali e la sua precisione diminuisce.

Sia il generatore che il discriminatore sono reti neurali. L'uscita del generatore è collegata direttamente all'ingresso del discriminatore. Attraverso retropropagazione, la classificazione del discriminatore fornisce un segnale che il generatore usa per aggiornare i propri pesi.

Passaggio 4: campionare i dati sintetici dal sintetizzatore

Ora che hai creato e addestrato il tuo modello, è il momento di campionare i dati richiesti inviando rumore al modello. Ciò ti consente di generare tutti i dati sintetici che desideri.

In questo caso, si genera una quantità uguale di dati sintetici rispetto alla quantità di dati effettivi perché questo rende più facile confrontare le dimensioni del campione simili nel passaggio 5.

Abbiamo la possibilità di campionare le righe contenenti transazioni fraudolente, che, se combinate con i dati di frode non sintetici, porteranno a un'equa distribuzione delle classi "frode" e "non frode". L'originale Set di dati Kaggle conteneva 492 frodi su 284,807 transazioni, quindi creiamo lo stesso campione dal sintetizzatore.

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

Abbiamo la possibilità di eseguire il campionamento delle righe contenenti transazioni fraudolente in un processo chiamato aumento dei dati, che, se combinato con i dati non sintetici sulle frodi, porterà a un'equa distribuzione delle classi "frode" e "non frode".

Passaggio 5: confrontare e valutare i dati sintetici rispetto ai dati reali

Sebbene questo passaggio sia facoltativo, è possibile visualizzare e valutare qualitativamente i dati sintetici generati rispetto ai dati effettivi utilizzando un grafico a dispersione.

Questo ci aiuta a ripetere il nostro modello modificando i parametri, modificando la dimensione del campione e apportando altre trasformazioni per generare i dati sintetici più accurati. Questa natura di accuratezza dipende sempre dallo scopo della sintesi

L'immagine seguente mostra quanto siano simili i punti dati della frode effettiva e quelli sintetici nelle fasi di addestramento. Ciò fornisce una buona ispezione qualitativa della somiglianza tra i dati sintetici e quelli effettivi e come migliora man mano che lo eseguiamo attraverso più epoche (transito dell'intero set di dati di addestramento attraverso l'algoritmo). Nota che man mano che eseguiamo più epoche, il set di modelli di dati sintetici si avvicina ai dati originali.

Aumenta le transazioni fraudolente utilizzando dati sintetici in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Passaggio 6: ripulisci

Infine, arresta l'istanza notebook al termine della sintesi per evitare costi imprevisti.

Conclusione

Come algoritmi di apprendimento automatico e framework di codifica evolvere rapidamente, i dati di alta qualità su larga scala sono la risorsa più scarsa nel machine learning. Set di dati sintetici di buona qualità possono essere utilizzati in una varietà di attività.

In questo post del blog, hai appreso l'importanza di sintetizzare il set di dati utilizzando una libreria open source che utilizza WGAN-GP. Questa è un'area di ricerca attiva con migliaia di articoli sui GAN pubblicati e molte centinaia di GAN denominati disponibili per la sperimentazione. Esistono varianti ottimizzate per casi d'uso specifici come tabelle relazionali e dati di serie temporali.

Puoi trovare tutto il codice utilizzato per questo articolo in questo taccuinoe, naturalmente, altri tutorial come questo sono disponibili da SageMaker pagina della documentazione ufficiale.

Nel seconda parte di questa serie di post di blog in due parti, approfondiremo come valutare la qualità dei dati sintetici da una prospettiva di fedeltà, utilità e privacy.


L'autore

Aumenta le transazioni fraudolente utilizzando dati sintetici in Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Faris Haddad è Data & Insights Lead nel team di AABG Strategic Pursuits. Aiuta le aziende a diventare data-driven con successo.

Timestamp:

Di più da Apprendimento automatico di AWS