Tutorial: Inizia subito a utilizzareAWS SDK for Python (Boto3) - Amazon Fraud Detector

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: Inizia subito a utilizzareAWS SDK for Python (Boto3)

Questo tutorial descrive come creare e addestrare un modello Amazon Fraud Detector e quindi utilizzare questo modello per generare previsioni di frode in tempo reale utilizzando ilAWS SDK for Python (Boto3). Il modello viene addestrato utilizzando il file di dati di esempio di registrazione dell'account che carichi nel bucket Amazon S3.

Alla fine di questo tutorial, si eseguono le seguenti azioni:

  • Crea e addestra un modello Amazon Fraud Detector

  • Genera previsioni di frode in tempo reale

Prerequisiti

Di seguito sono riportati i passaggi necessari per questo tutorial.

Nozioni di base

Boto è l'SDK di Amazon Web Services (AWS) per Python. Puoi usarlo per creare, configurare e gestireServizi AWS. Per istruzioni su come installare Boto3, consulta SDK AWS per Python (Boto3).

Dopo l'installazioneAWS SDK for Python (Boto3), esegui il seguente comando di esempio in Python per confermare che l'ambiente sia configurato correttamente. Se l'ambiente è configurato correttamente, la risposta contiene un elenco di rilevatori. Se non sono stati creati rilevatori, l'elenco è vuoto.

import boto3 fraudDetector = boto3.client('frauddetector') response = fraudDetector.get_detectors() print(response)

In questo passaggio, si creano risorse che vengono utilizzate per definire modelli, eventi e regole.

Creazione di una variabile

Una variabile è un elemento di dati del set di dati che si desidera utilizzare per creare il tipo di evento, il modello e le regole.

Nell'esempio seguente, l'CreateVariableAPI viene utilizzata per creare due variabili. Le variabili sonoemail_address eip_address. Assegnali ai tipi di variabili corrispondenti:EMAIL_ADDRESS eIP_ADDRESS. Queste variabili fanno parte del set di dati di esempio che hai caricato. Quando specifichi il tipo di variabile, Amazon Fraud Detector interpreta la variabile durante l'addestramento del modello e quando ottiene le previsioni. Solo le variabili con un tipo di variabile associato possono essere utilizzate per l'addestramento del modello.

import boto3 fraudDetector = boto3.client('frauddetector') #Create variable email_address fraudDetector.create_variable( name = 'email_address', variableType = 'EMAIL_ADDRESS', dataSource = 'EVENT', dataType = 'STRING', defaultValue = '<unknown>' ) #Create variable ip_address fraudDetector.create_variable( name = 'ip_address', variableType = 'IP_ADDRESS', dataSource = 'EVENT', dataType = 'STRING', defaultValue = '<unknown>' )

Crea tipo di entità

Un'entità rappresenta chi esegue l'evento e un tipo di entità classifica l'entità. Le classificazioni di esempio includono cliente, commerciante o account.

Nell'esempio seguente, l'PutEntityTypeAPI viene utilizzata per creare un tipo disample_customer entità.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_entity_type( name = 'sample_customer', description = 'sample customer entity type' )

Crea etichetta

Un'etichetta classifica un evento come fraudolento o legittimo e viene utilizzata per addestrare il modello di rilevamento delle frodi. Il modello impara a classificare gli eventi utilizzando questi valori di etichetta.

Nell'esempio seguente, l'API Putlabel viene utilizzata per creare due etichettefraud elegit.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_label( name = 'fraud', description = 'label for fraud events' ) fraudDetector.put_label( name = 'legit', description = 'label for legitimate events' )

Con Amazon Fraud Detector, puoi creare modelli che valutano i rischi e generano previsioni di frode per singoli eventi. Un tipo di evento definisce la struttura di un singolo evento.

Nell'esempio seguente, l'PutEventTypeAPI viene utilizzata per creare un tipo di eventosample_registration. È possibile definire il tipo di evento specificando le variabili (email_address,ip_address), il tipo di entità (sample_customer) e le etichette (fraud,legit) create nel passaggio precedente.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_event_type ( name = 'sample_registration', eventVariables = ['ip_address', 'email_address'], labels = ['legit', 'fraud'], entityTypes = ['sample_customer'])

Amazon Fraud Detector addestra i modelli per imparare a rilevare le frodi per un tipo di evento specifico. Nel passaggio precedente, hai creato il tipo di evento. In questo passaggio, si crea e si addestra un modello per il tipo di evento. Il modello funge da contenitore per le versioni del modello. Ogni volta che si addestra un modello, viene creata una nuova versione.

Utilizza i seguenti codici di esempio per creare e addestrare un modello Online Fraud Insights. Questo modello si chiamasample_fraud_detection_model. È per il tipo di evento chesample_registration utilizza il set di dati di esempio di registrazione dell'account che hai caricato su Amazon S3.

Per ulteriori informazioni sui diversi tipi di modelli supportati da Amazon Fraud Detector, consultaScegliete un tipo di modello.

Crea un modello

Nell'esempio seguente, l'CreateModelAPI viene utilizzata per creare un modello.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_model ( modelId = 'sample_fraud_detection_model', eventTypeName = 'sample_registration', modelType = 'ONLINE_FRAUD_INSIGHTS')

Addestra un modello

Nell'esempio seguente, l'CreateModelVersionAPI viene utilizzata per addestrare il modello. Specifica'EXTERNAL_EVENTS' la posizionetrainingDataSource e la posizione Amazon S3 in cui hai archiviato il set di dati RoleArndi esempio e il bucket Amazon S3 per cuiexternalEventsDetail. CometrainingDataSchema parametro, specifica come Amazon Fraud Detector interpreta i dati di esempio. Più specificamente, specifica quali variabili includere e come classificare le etichette degli eventi.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_model_version ( modelId = 'sample_fraud_detection_model', modelType = 'ONLINE_FRAUD_INSIGHTS', trainingDataSource = 'EXTERNAL_EVENTS', trainingDataSchema = { 'modelVariables' : ['ip_address', 'email_address'], 'labelSchema' : { 'labelMapper' : { 'FRAUD' : ['fraud'], 'LEGIT' : ['legit'] } } }, externalEventsDetail = { 'dataLocation' : 's3://your-S3-bucket-name/your-example-data-filename.csv', 'dataAccessRoleArn' : 'role_arn' } )

Puoi addestrare il tuo modello più volte. Ogni volta che si addestra un modello, viene creata una nuova versione. Al termine dell'addestramento del modello, lo stato della versione del modello viene aggiornato aTRAINING_COMPLETE. Puoi esaminare il punteggio delle prestazioni del modello e altre metriche delle prestazioni del modello.

Esamina le prestazioni del modello

Un passaggio importante nell'utilizzo di Amazon Fraud Detector consiste nel valutare l'accuratezza del modello utilizzando i punteggi del modello e le metriche delle prestazioni. Una volta completata la formazione sul modello, Amazon Fraud Detector convalida le prestazioni del modello utilizzando il 15% dei dati che non sono stati utilizzati per addestrare il modello. Genera un punteggio delle prestazioni del modello e altre metriche delle prestazioni.

Utilizza l'DescribeModelVersionsAPI per esaminare le prestazioni del modello. Guarda il punteggio complessivo delle prestazioni del modello e tutte le altre metriche generate da Amazon Fraud Detector per questo modello.

Per ulteriori informazioni sul punteggio delle prestazioni del modello e sulle metriche delle prestazioni, consultaPunteggi del modello eMetriche delle prestazioni del modello.

Puoi aspettarti che tutti i tuoi modelli addestrati di Amazon Fraud Detector dispongano di metriche delle prestazioni di rilevamento delle frodi nel mondo reale, simili alle metriche di questo tutorial.

Implementa un modello

Dopo aver esaminato le metriche delle prestazioni del modello addestrato, implementa il modello e mettilo a disposizione di Amazon Fraud Detector per generare previsioni di frode. Per implementare il modello addestrato, utilizza l'UpdateModelVersionStatusAPI. Nell'esempio seguente, viene utilizzato per aggiornare lo stato della versione del modello su ATTIVO.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.update_model_version_status ( modelId = 'sample_fraud_detection_model', modelType = 'ONLINE_FRAUD_INSIGHTS', modelVersionNumber = '1.00', status = 'ACTIVE' )

Un rilevatore contiene la logica di rilevamento, come i modelli e le regole. Questa logica si riferisce a un particolare evento che desideri valutare per frode. Una regola è una condizione che si specifica per indicare ad Amazon Fraud Detector come interpretare i valori delle variabili durante la previsione. E il risultato è il risultato di una previsione di frode. Un rilevatore può avere più versioni, ciascuna delle quali ha lo stato DRAFT, ACTIVE o INACTIVE. Una versione del rilevatore deve possedere almeno una regola associata ad essa.

Utilizza i seguenti codici di esempio per creare il rilevatore, le regole, il risultato e per pubblicare il rilevatore.

Creazione di un rilevatore

Nell'esempio seguente, l'PutDetectorAPI viene utilizzata per creare unsample_detector rilevatore per il tipo disample_registration evento.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_detector ( detectorId = 'sample_detector', eventTypeName = 'sample_registration' )

Crea risultati

I risultati vengono creati per ogni possibile risultato di previsione delle frodi. Nell'esempio seguente, l'PutOutcomeAPI viene utilizzata per creare tre risultati:verify_customerreview, eapprove. Questi risultati vengono successivamente assegnati alle regole.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_outcome( name = 'verify_customer', description = 'this outcome initiates a verification workflow' ) fraudDetector.put_outcome( name = 'review', description = 'this outcome sidelines event for review' ) fraudDetector.put_outcome( name = 'approve', description = 'this outcome approves the event' )

Crea regole

La regola è composta da una o più variabili del set di dati, un'espressione logica e uno o più risultati.

Nell'esempio seguente, l'CreateRuleAPI viene utilizzata per creare tre regole diverse:high_riskmedium_risk, elow_risk. Crea espressioni di regole per confrontare ilsample_fraud_detection_model_insightscore valore del punteggio delle prestazioni del modello con varie soglie. Questo serve a determinare il livello di rischio di un evento e assegnare il risultato definito nella fase precedente.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_rule( ruleId = 'high_fraud_risk', detectorId = 'sample_detector', expression = '$sample_fraud_detection_model_insightscore > 900', language = 'DETECTORPL', outcomes = ['verify_customer'] ) fraudDetector.create_rule( ruleId = 'medium_fraud_risk', detectorId = 'sample_detector', expression = '$sample_fraud_detection_model_insightscore <= 900 and $sample_fraud_detection_model_insightscore > 700', language = 'DETECTORPL', outcomes = ['review'] ) fraudDetector.create_rule( ruleId = 'low_fraud_risk', detectorId = 'sample_detector', expression = '$sample_fraud_detection_model_insightscore <= 700', language = 'DETECTORPL', outcomes = ['approve'] )

Creazione di una versione del rilevatore

Una versione detector definisce il modello e le regole che vengono utilizzati per ottenere la previsione delle frodi.

Nell'esempio seguente, l'CreateDetectorVersionAPI viene utilizzata per creare una versione del rilevatore. A tale scopo fornisce dettagli sulla versione del modello, regole e una modalità di esecuzione delle regole FIRST_MATCHED. Una modalità di esecuzione delle regole specifica la sequenza per la valutazione delle regole. La modalità di esecuzione delle regole FIRST_MATCHED specifica che le regole vengono valutate in sequenza, dalla prima all'ultima, fermandosi alla prima regola corrispondente.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_detector_version( detectorId = 'sample_detector', rules = [{ 'detectorId' : 'sample_detector', 'ruleId' : 'high_fraud_risk', 'ruleVersion' : '1' }, { 'detectorId' : 'sample_detector', 'ruleId' : 'medium_fraud_risk', 'ruleVersion' : '1' }, { 'detectorId' : 'sample_detector', 'ruleId' : 'low_fraud_risk', 'ruleVersion' : '1' } ], modelVersions = [{ 'modelId' : 'sample_fraud_detection_model', 'modelType': 'ONLINE_FRAUD_INSIGHTS', 'modelVersionNumber' : '1.00' } ], ruleExecutionMode = 'FIRST_MATCHED' )

L'ultimo passaggio di questo tutorial utilizza il rilevatoresample_detector creato nel passaggio precedente per generare previsioni di frode per tipo disample_registration evento in tempo reale. Il rilevatore valuta i dati di esempio caricati su Amazon S3. La risposta include i punteggi delle prestazioni del modello e tutti i risultati associati alle regole corrispondenti.

Nell'esempio seguente, l'GetEventPredictionAPI viene utilizzata per fornire dati provenienti dalla registrazione di un singolo account con ogni richiesta. Per questo tutorial, prendi i dati (email_address e ip_address) dal file di dati di esempio di registrazione dell'account. Ogni riga (riga) dopo la riga di intestazione superiore rappresenta i dati di un singolo evento di registrazione dell'account.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.get_event_prediction( detectorId = 'sample_detector', eventId = '802454d3-f7d8-482d-97e8-c4b6db9a0428', eventTypeName = 'sample_registration', eventTimestamp = '2020-07-13T23:18:21Z', entities = [{'entityType':'sample_customer', 'entityId':'12345'}], eventVariables = { 'email_address': 'johndoe@exampledomain.com', 'ip_address': '1.2.3.4' } )

Dopo aver completato questo tutorial, hai eseguito le seguenti operazioni:

  • Ha caricato un set di dati di eventi di esempio su Amazon S3.

  • Variabili, entità ed etichette create che vengono utilizzate per creare e addestrare un modello.

  • Ha creato e addestrato un modello utilizzando il set di dati di esempio.

  • Ho visualizzato il punteggio delle prestazioni del modello e altre metriche di performance generate da Amazon Fraud Detector.

  • Implementato il modello di rilevamento delle frodi.

  • Ha creato un rilevatore e aggiunto il modello distribuito.

  • Sono state aggiunte le regole, l'ordine di esecuzione delle regole e i risultati al rilevatore.

  • Versione del rilevatore creata.

  • Ho testato il rilevatore fornendo diversi input e controllando se le regole e l'ordine di esecuzione delle regole funzionavano come previsto.

(Facoltativo) Esplora le API Amazon Fraud Detector con un notebook Jupyter (IPython)

Per altri esempi su come utilizzare le API Amazon Fraud Detector, consulta aws-fraud-detector-samples GitHub il repository. Gli argomenti trattati nei notebook includono sia la creazione di modelli e rilevatori utilizzando le API di Amazon Fraud Detector sia la creazione di richieste di previsione delle frodi in batch utilizzando l'GetEventPredictionAPI.