Tutorial: Inizia a usare il AWS SDK per 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 a usare il AWS SDK per 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. AWS SDK per 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, completerai le seguenti azioni:

  • Crea e addestra un modello Amazon Fraud Detector

  • Genera previsioni sulle frodi in tempo reale

Prerequisiti

Di seguito sono riportati i passaggi preliminari per questo tutorial.

Inizia a usare

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

Dopo l'installazione AWS SDK per 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 è stato creato alcun rilevatore, l'elenco è vuoto.

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

In questo passaggio, crei risorse che vengono utilizzate per definire il modello, l'evento e le regole.

Crea variabile

Una variabile è un elemento di dati del set di dati che desideri utilizzare per creare tipi di eventi, modelli e regole.

Nell'esempio seguente, l'CreateVariableAPI viene utilizzata per creare due variabili. Le variabili sono email_address eip_address. Assegnale 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 riceve 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 un tipo di entità

Un'entità rappresenta chi sta eseguendo 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 di sample_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 etichette e. fraud legit

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, crei 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. Definite 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 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 che sample_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, consulta. Scegliete 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. Specificate 'EXTERNAL_EVENTS' la posizione trainingDataSource e la posizione Amazon S3 in cui avete archiviato il set di dati RoleArndi esempio e il bucket Amazon S3 per cui avete archiviato. externalEventsDetail Per il trainingDataSchema 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://amzn-s3-demo-bucket/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. È possibile esaminare il punteggio delle prestazioni del modello e altre metriche prestazionali del modello.

Esamina le prestazioni del modello

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

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 di prestazione del modello e sulle metriche prestazionali, consulta e. Punteggi del modello Metriche delle prestazioni del modello

Puoi aspettarti che tutti i tuoi modelli Amazon Fraud Detector addestrati abbiano metriche prestazionali di rilevamento delle frodi reali, simili alle metriche di questo tutorial.

Implementa un modello

Dopo aver esaminato le metriche delle prestazioni del tuo modello addestrato, distribuisci il modello e rendilo disponibile ad Amazon Fraud Detector per generare previsioni di frode. Per distribuire il modello addestrato, utilizza l'API. UpdateModelVersionStatus Nell'esempio seguente, viene utilizzato per aggiornare lo stato della versione del modello su ACTIVE.

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, ad esempio i modelli e le regole. Questa logica si riferisce a un evento particolare che si desidera valutare per individuare eventuali frodi. Una regola è una condizione specificata 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, ognuna delle quali ha lo stato DRAFT, ACTIVE o INACTIVE. Una versione del rilevatore deve avere almeno una regola associata.

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

Crea un rilevatore

Nell'esempio seguente, l'PutDetectorAPI viene utilizzata per creare un sample_detector rilevatore per il tipo di sample_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_customer,, review e. approve 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 diverse regole: high_riskmedium_risk, e. low_risk Crea espressioni di regole per confrontare il sample_fraud_detection_model_insightscore valore del punteggio di prestazioni del modello con varie soglie. Questo serve a determinare il livello di rischio di un evento e assegnare il risultato definito nel passaggio 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'] )

Crea una versione del rilevatore

Una versione del rilevatore definisce il modello e le regole da utilizzare per prevedere le 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 con corrispondenza.

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 rilevatore sample_detector creato nel passaggio precedente per generare previsioni di frode per tipo di sample_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 i dati relativi alla registrazione di un singolo account per 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 fatto quanto segue:

  • 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.

  • Hai visualizzato il punteggio prestazionale del modello e altri parametri prestazionali generati da Amazon Fraud Detector.

  • Ha 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.

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

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

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