Tutorial: Comience a usar el AWS SDK for Python (Boto3) - Amazon Fraud Detector

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Comience a usar el AWS SDK for Python (Boto3)

En este tutorial se describe cómo crear y entrenar un modelo de Amazon Fraud Detector y, a continuación, cómo utilizar este modelo para generar predicciones de fraude en tiempo real mediante el AWS SDK for Python (Boto3). El modelo se entrena con el archivo de datos de ejemplo de registro de cuenta que se carga en el bucket de Amazon S3.

Al final de este tutorial, debe completar las siguientes acciones:

  • Cree y entrene un modelo de Amazon Fraud Detector

  • Genere predicciones de fraude en tiempo real

Requisitos previos

Los siguientes son pasos previos para este tutorial.

Introducción

Boto es el SDK de Amazon Web Services (AWS) para Python. Puede usarlo para crear, configurar y administrar Servicios de AWS. Para obtener instrucciones sobre cómo instalar Boto3, consulte AWS SDK for Python (Boto3).

Tras la instalación AWS SDK for Python (Boto3), ejecute el siguiente comando de ejemplo de Python para confirmar que el entorno está configurado correctamente. Si el entorno está configurado correctamente, la respuesta contiene una lista de detectores. Si no se creó ningún detector, la lista está vacía.

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

En este paso, crea recursos que se utilizan para definir el modelo, el evento y las reglas.

Crear una variable

Una variable es un elemento de datos de su conjunto de datos que desea usar para crear el tipo de evento, el modelo y las reglas.

En el siguiente ejemplo, la CreateVariableAPI se usa para crear dos variables. Las variables son email_address yip_address. Asígnelas a los tipos de variables correspondientes: EMAIL_ADDRESS yIP_ADDRESS. Estas variables forman parte del conjunto de datos de ejemplo que has subido. Al especificar el tipo de variable, Amazon Fraud Detector interpreta la variable durante el entrenamiento del modelo y al obtener predicciones. Solo las variables con un tipo de variable asociado se pueden utilizar para el entrenamiento del modelo.

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>' )

Cree un tipo de entidad

Una entidad representa quién está realizando el evento y un tipo de entidad clasifica la entidad. Los ejemplos de clasificaciones incluyen cliente, comerciante o cuenta.

En el siguiente ejemplo, la PutEntityTypeAPI se utiliza para crear un tipo de sample_customer entidad.

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

Crear etiqueta

Una etiqueta clasifica un evento como fraudulento o legítimo y se utiliza para entrenar el modelo de detección de fraudes. El modelo aprende a clasificar los eventos utilizando estos valores de etiqueta.

En el siguiente ejemplo, la API Putlabel se utiliza para crear dos etiquetas fraud ylegit.

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, puede crear modelos que evalúan los riesgos y generan predicciones de fraude para eventos individuales. Un tipo de evento define la estructura de un evento individual.

En el siguiente ejemplo, la PutEventTypeAPI se utiliza para crear un tipo de eventosample_registration. Para definir el tipo de evento, especifique las variables (email_address,ip_address), el tipo de entidad (sample_customer) y las etiquetas (fraud,legit) que creó en el paso anterior.

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 entrena a los modelos para que aprendan a detectar el fraude en un tipo de evento específico. En el paso anterior, creó el tipo de evento. En este paso, creará y entrenará un modelo para el tipo de evento. El modelo actúa como contenedor para las versiones de su modelo. Cada vez que entrena un modelo, se crea una nueva versión.

Utilice los siguientes códigos de ejemplo para crear y entrenar un modelo de Online Fraud Insights. Este modelo se llamasample_fraud_detection_model. Es para el tipo de evento que sample_registration utiliza el conjunto de datos de ejemplo de registro de cuenta que cargó en Amazon S3.

Para obtener más información sobre los distintos tipos de modelos compatibles con Amazon Fraud Detector, consulteElija un tipo de modelo.

Crear un modelo

En el siguiente ejemplo, la CreateModelAPI se utiliza para crear un modelo.

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

Entrena un modelo

En el siguiente ejemplo, la CreateModelVersionAPI se utiliza para entrenar el modelo. Especifique 'EXTERNAL_EVENTS' la ubicación trainingDataSource y la ubicación de Amazon S3 en la que almacenó su conjunto de datos RoleArnde ejemplo y la del bucket de Amazon S3externalEventsDetail. Como trainingDataSchema parámetro, especifique cómo interpreta Amazon Fraud Detector los datos del ejemplo. Más específicamente, especifique qué variables incluir y cómo clasificar las etiquetas de los eventos.

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' } )

Puede entrenar el modelo varias veces. Cada vez que entrenas un modelo, se crea una nueva versión. Una vez finalizado el entrenamiento del modelo, el estado de la versión del modelo se actualiza aTRAINING_COMPLETE. Puede revisar la puntuación de rendimiento del modelo y otras métricas de rendimiento del modelo.

Revise el rendimiento del modelo

Un paso importante a la hora de utilizar Amazon Fraud Detector es evaluar la precisión del modelo mediante las puntuaciones del modelo y las métricas de rendimiento. Una vez finalizada la formación del modelo, Amazon Fraud Detector valida el rendimiento del modelo utilizando el 15% de los datos que no se utilizaron para entrenar el modelo. Genera una puntuación de rendimiento del modelo y otras métricas de rendimiento.

Utilice la DescribeModelVersionsAPI para revisar el rendimiento del modelo. Observe la puntuación general del rendimiento del modelo y todas las demás métricas generadas por Amazon Fraud Detector para este modelo.

Para obtener más información sobre la puntuación de rendimiento del modelo y las métricas de rendimiento, consulte Puntuaciones del modelo yMétricas de rendimiento del modelo.

Puedes esperar que todos tus modelos entrenados de Amazon Fraud Detector cuenten con métricas de rendimiento de detección de fraudes reales, similares a las métricas de este tutorial.

Implemente un modelo

Tras revisar las métricas de rendimiento de su modelo entrenado, impleméntelo y póngalo a disposición de Amazon Fraud Detector para generar predicciones de fraude. Para implementar el modelo entrenado, utilice la UpdateModelVersionStatusAPI. En el siguiente ejemplo, se usa para actualizar el estado de la versión del modelo a ACTIVO.

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 detector contiene la lógica de detección, como los modelos y las reglas. Esta lógica es para un evento en particular que desee evaluar como fraude. Una regla es una condición que se especifica para indicar a Amazon Fraud Detector cómo interpretar los valores de las variables durante la predicción. Y el resultado es el resultado de una predicción de fraude. Un detector puede tener varias versiones y cada una de ellas puede tener el estado BORRADOR, ACTIVO o INACTIVO. La versión de un detector debe tener al menos una regla asociada.

Utilice los siguientes códigos de ejemplo para crear el detector, las reglas, el resultado y publicar el detector.

Cree un detector

En el siguiente ejemplo, la PutDetectorAPI se utiliza para crear un sample_detector detector para el tipo de sample_registration evento.

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

Crea resultados

Se crean resultados para cada posible resultado de la predicción del fraude. En el siguiente ejemplo, la PutOutcomeAPI se utiliza para crear tres resultados: verify_customerreview, yapprove. Estos resultados se asignan posteriormente a las reglas.

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 reglas

La regla consta de una o más variables del conjunto de datos, una expresión lógica y uno o más resultados.

En el siguiente ejemplo, la CreateRuleAPI se usa para crear tres reglas diferentes: high_riskmedium_risk, ylow_risk. Cree expresiones de reglas para comparar el sample_fraud_detection_model_insightscore valor de la puntuación de rendimiento del modelo con varios umbrales. Esto sirve para determinar el nivel de riesgo de un evento y asignar el resultado que se definió en el paso anterior.

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'] )

Cree una versión del detector

La versión del detector define el modelo y las reglas que se utilizan para predecir el fraude.

En el siguiente ejemplo, la CreateDetectorVersionAPI se utiliza para crear una versión del detector. Para ello, proporciona detalles de la versión del modelo, reglas y un modo de ejecución de reglas FIRST_MATCHED. Un modo de ejecución de reglas especifica la secuencia para evaluar las reglas. El modo de ejecución de reglas FIRST_MATCHED especifica que las reglas se evalúan secuencialmente, de la primera a la última, y se detiene en la primera regla coincidente.

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' )

El último paso de este tutorial utiliza el detector sample_detector creado en el paso anterior para generar predicciones de fraude para cada tipo de sample_registration evento en tiempo real. El detector evalúa los datos de ejemplo que se cargan en Amazon S3. La respuesta incluye las puntuaciones de rendimiento del modelo, así como cualquier resultado asociado a las reglas coincidentes.

En el siguiente ejemplo, la GetEventPredictionAPI se utiliza para proporcionar datos del registro de una sola cuenta con cada solicitud. Para este tutorial, toma los datos (dirección de correo electrónico y dirección IP) del archivo de datos de ejemplo de registro de la cuenta. Cada línea (fila) situada después de la línea del encabezado superior representa los datos de un único evento de registro de una cuenta.

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' } )

Tras completar este tutorial, hizo lo siguiente:

  • Se cargó un conjunto de datos de eventos de ejemplo en Amazon S3.

  • Creó variables, entidades y etiquetas que se utilizan para crear y entrenar un modelo.

  • Creó y entrenó un modelo con el conjunto de datos de ejemplo.

  • He visto la puntuación de rendimiento del modelo y otras métricas de rendimiento generadas por Amazon Fraud Detector.

  • Implementó el modelo de detección de fraudes.

  • Creó un detector y agregó el modelo implementado.

  • Se agregaron las reglas, el orden de ejecución de las reglas y los resultados al detector.

  • Se creó la versión del detector.

  • Probé el detector proporcionando diferentes entradas y comprobando si las reglas y el orden de ejecución de las reglas funcionaban según lo esperado.

(Opcional) Explore el Amazon Fraud Detector APIs con un cuaderno de Jupyter (iPython)

Para ver más ejemplos de cómo usar Amazon Fraud Detector APIs, consulta el aws-fraud-detector-samples GitHub repositorio. Los temas que tratan los cuadernos incluyen la creación de modelos y detectores con Amazon Fraud Detector APIs y la realización de solicitudes de predicción de fraudes por lotes mediante la GetEventPrediction API.