Aumente las transacciones fraudulentas utilizando datos sintéticos en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Aumente las transacciones fraudulentas utilizando datos sintéticos en Amazon SageMaker

Desarrollar y entrenar modelos exitosos de fraude de aprendizaje automático (ML) requiere acceso a grandes cantidades de datos de alta calidad. Obtener estos datos es un desafío porque los conjuntos de datos disponibles a veces no son lo suficientemente grandes o imparciales para entrenar de manera útil el modelo ML y pueden requerir un costo y tiempo significativos. Los requisitos de regulación y privacidad impiden aún más el uso o el intercambio de datos incluso dentro de una organización empresarial. El proceso de autorización del uso y acceso a datos confidenciales a menudo retrasa o descarrila los proyectos de ML. Alternativamente, podemos abordar estos desafíos generando y utilizando datos sintéticos.

Los datos sintéticos describen conjuntos de datos creados artificialmente que imitan el contenido y los patrones en el conjunto de datos original para abordar el riesgo regulatorio y el cumplimiento, el tiempo y los costos de abastecimiento. Los generadores de datos sintéticos utilizan los datos reales para aprender características, correlaciones y patrones relevantes para generar las cantidades requeridas de datos sintéticos que coincidan con las cualidades estadísticas del conjunto de datos ingerido originalmente.

Los datos sintéticos se han utilizado en entornos de laboratorio durante más de dos décadas; el mercado tiene evidencia de utilidad que está acelerando la adopción en los sectores comercial y público. Gartner predice que para 2024, el 60 por ciento de los datos utilizados para el desarrollo de soluciones de ML y análisis se generarán sintéticamente y que el uso de datos sintéticos seguirá aumentando sustancialmente.

La Autoridad de Conducta Financiera, un organismo regulador del Reino Unido, reconoce que "el acceso a los datos es el catalizador de la innovación, y los datos financieros sintéticos podrían desempeñar un papel en el apoyo a la innovación y permitir que los nuevos participantes desarrollen, prueben y demuestren el valor de las nuevas soluciones".

Amazon SageMaker Tierra Verdad actualmente apoya generación de datos sintéticos de datos de imágenes sintéticas etiquetadas. Esta publicación de blog explora la generación de datos sintéticos tabulares. Los datos estructurados, como las tablas individuales y relacionales, y los datos de series temporales son los tipos que se encuentran con mayor frecuencia en el análisis empresarial.

Esta es una publicación de blog de dos partes; creamos datos sintéticos en la primera parte y evaluamos su calidad en la segunda parte.

En esta publicación de blog, aprenderá cómo usar la biblioteca de código abierto ydata-sintético y Cuadernos de AWS SageMaker para sintetizar datos tabulares para un caso de uso de fraude, donde no tenemos suficientes transacciones fraudulentas para entrenar un modelo de fraude de alta precisión. El proceso general de entrenamiento de un modelo de fraude está cubierto en este post.

Resumen de la solución

El objetivo de este tutorial es sintetizar la clase minoritaria de un conjunto de datos de fraude de tarjetas de crédito altamente desequilibrado utilizando un red antagónica generativa (GAN) , que son WGAN-GP para aprender patrones y propiedades estadísticas de los datos originales y luego crear muestras interminables de datos sintéticos que se asemejan a los datos originales. Este proceso también se puede utilizar para mejorar los datos originales mediante el muestreo de eventos raros como el fraude o para generar casos extremos que no están presentes en el original.

Usamos un conjunto de datos de fraude de tarjetas de crédito publicado por ULB, que se puede descargar desde Kaggle. La generación de datos sintéticos para la clase minoritaria ayuda a abordar problemas relacionados con conjuntos de datos desequilibrados, lo que puede ayudar a desarrollar modelos más precisos.

Usamos los servicios de AWS, incluidos Amazon SageMaker y Amazon S3, que generan costos para usar los recursos de la nube.

Configurar el entorno de desarrollo

SageMaker proporciona una instancia de notebook Jupyter administrada para la creación, capacitación e implementación de modelos.

Requisitos previos:

Debe tener una cuenta de AWS para ejecutar SageMaker. Puedes obtener fundó con SageMaker y pruebe tutoriales prácticos.

Para obtener instrucciones sobre cómo configurar su entorno de trabajo de Jupyter Notebook, consulte Introducción a las instancias de portátiles de Amazon SageMaker.

Paso 1: configure su instancia de Amazon SageMaker

  1. Inicie sesión en la consola de AWS y busque "SageMaker".
  2. Seleccione creativo.
  3. Seleccione Instancias de cuaderno en la barra izquierda y seleccione Crear instancia de cuaderno.
  4. Desde la página siguiente (como se muestra en la siguiente imagen), seleccione las configuraciones de la máquina virtual (VM) de acuerdo a sus necesidades, y seleccione Crear instancia de cuaderno. Tenga en cuenta que usamos una VM optimizada para ML sin GPU y 5 GB de datos, ml.t3.medium que ejecuta un kernel de Amazon Linux 2 y Jupyter Lab 3.
    Crear instancia de cuaderno
  5. Una instancia de notebook estará lista para que la use en unos minutos.
  6. Seleccione Abrir JupyterLab almorzar.
    Aumente las transacciones fraudulentas utilizando datos sintéticos en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  7. Ahora que tenemos un JupyterLab con las especificaciones requeridas, instalaremos la biblioteca sintética.
pip install ydata-synthetic

Paso 2: Descargue o extraiga el conjunto de datos real para crear datos sintéticos

Descargar los datos de referencia desde Kaggle, ya sea manualmente, como lo hacemos aquí, o mediante programación a través de la API de Kaggle si tiene una cuenta de Kaggle. Si explora este conjunto de datos, notará que la clase "fraude" contiene muchos menos datos que la clase "no fraude".

Si usa estos datos directamente para predicciones de aprendizaje automático, los modelos siempre pueden aprender a predecir "no fraude". Un modelo tendrá fácilmente una mayor precisión en casos que no sean de fraude, ya que los casos de fraude son raros. Sin embargo, dado que detectar los casos de fraude es nuestro objetivo en este ejercicio, aumentaremos los números de clase de fraude con datos sintéticos modelados en los datos reales.

Cree una carpeta de datos en JupyterLab y cargue el archivo de datos de Kaggle en ella. Esto le permitirá usar los datos dentro del cuaderno desde SageMaker viene con almacenamiento que habría especificado cuando creó una instancia del cuaderno.

Aumente las transacciones fraudulentas utilizando datos sintéticos en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Este conjunto de datos es de 144 MB

Aumente las transacciones fraudulentas utilizando datos sintéticos en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Luego puede leer los datos usando código estándar a través de la biblioteca pandas:

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

Los datos de detección de fraude tienen ciertas características, a saber:

  • Grandes desequilibrios de clase (típicamente hacia puntos de datos no fraudulentos).
  • Preocupaciones relacionadas con la privacidad (debido a la presencia de datos confidenciales).
  • Un grado de dinamismo, en el sentido de que un usuario malintencionado siempre intenta evitar la detección por parte de los sistemas que supervisan las transacciones fraudulentas.
  • Los conjuntos de datos disponibles son muy grandes y, a menudo, no están etiquetados.

Ahora que ha inspeccionado el conjunto de datos, filtremos la clase minoritaria (la clase "fraude" del conjunto de datos de la tarjeta de crédito) y realicemos las transformaciones según sea necesario. Puede consultar las transformaciones de datos de este cuaderno.

Cuando este conjunto de datos de clase minoritaria se sintetiza y se vuelve a agregar al conjunto de datos original, permite la generación de un conjunto de datos sintetizados más grande que aborda el desequilibrio en los datos. Podemos lograr una mayor precisión de predicción al entrenar un modelo de detección de fraude utilizando el nuevo conjunto de datos.

Sinteticemos el nuevo conjunto de datos de fraude.

Paso 3: Entrene a los sintetizadores y cree el modelo

Dado que tiene los datos fácilmente disponibles en SageMaker, es hora de poner a trabajar nuestros modelos GAN sintéticos.

Una red antagónica generativa (GAN) tiene dos partes:

El generador aprende a generar datos plausibles. Las instancias generadas se convierten en ejemplos de entrenamiento negativos para el discriminador.

El discriminado aprende a distinguir los datos falsos del generador de los datos reales. El discriminador penaliza al generador por producir resultados inverosímiles.

Cuando comienza el entrenamiento, el generador produce datos obviamente falsos y el discriminador rápidamente aprende a decir que son falsos. A medida que avanza el entrenamiento, el generador se acerca a producir una salida que puede engañar al discriminador. Finalmente, si el entrenamiento del generador va bien, el discriminador empeora al diferenciar entre lo real y lo falso. Comienza a clasificar los datos falsos como reales y su precisión disminuye.

Tanto el generador como el discriminador son redes neuronales. La salida del generador está conectada directamente a la entrada del discriminador. A través de propagación hacia atrás, la clasificación del discriminador proporciona una señal que el generador utiliza para actualizar sus pesos.

Paso 4: Muestrear datos sintéticos del sintetizador

Ahora que ha creado y entrenado su modelo, es hora de muestrear los datos requeridos alimentando el modelo con ruido. Esto le permite generar tantos datos sintéticos como desee.

En este caso, genera una cantidad igual de datos sintéticos a la cantidad de datos reales porque esto facilita la comparación de tamaños de muestra similares en el Paso 5.

Tenemos la opción de muestrear filas que contienen transacciones fraudulentas que, cuando se combinan con los datos de fraude no sintéticos, conducirán a una distribución equitativa de las clases de "fraude" y "no fraude". El original Conjunto de datos de Kaggle contenía 492 fraudes de 284,807 transacciones, por lo que creamos una misma muestra del sintetizador.

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

Tenemos la opción de aumentar la muestra de filas que contienen transacciones fraudulentas en un proceso llamado aumento de datos, que, cuando se combina con los datos de fraude no sintéticos, conducirá a una distribución equitativa de las clases de "fraude" y "no fraude".

Paso 5: compare y evalúe los datos sintéticos con los datos reales

Aunque este paso es opcional, puede visualizar y evaluar cualitativamente los datos sintéticos generados frente a los datos reales mediante un diagrama de dispersión.

Esto nos ayuda a iterar nuestro modelo ajustando parámetros, cambiando el tamaño de la muestra y realizando otras transformaciones para generar los datos sintéticos más precisos. Esta naturaleza de precisión siempre depende del propósito de la síntesis.

La siguiente imagen muestra cuán similares son los puntos de datos de fraude real y fraude sintético en los pasos de capacitación. Esto brinda una buena inspección cualitativa de la similitud entre los datos sintéticos y reales y cómo mejora a medida que los ejecutamos a través de más épocas (tránsito de todo el conjunto de datos de entrenamiento a través del algoritmo). Tenga en cuenta que a medida que ejecutamos más épocas, el conjunto de patrones de datos sintéticos se acerca más a los datos originales.

Aumente las transacciones fraudulentas utilizando datos sintéticos en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Paso 6: limpiar

Finalmente, detenga su instancia de notebook cuando haya terminado con la síntesis para evitar costos inesperados.

Conclusión

Como algoritmos de aprendizaje automático y marcos de codificación evolucionar rápidamente, los datos de alta calidad a escala son el recurso más escaso en ML. Los conjuntos de datos sintéticos de buena calidad se pueden utilizar en una variedad de tareas.

En esta publicación de blog, aprendió la importancia de sintetizar el conjunto de datos mediante el uso de una biblioteca de código abierto que utiliza WGAN-GP. Esta es un área de investigación activa con miles de artículos sobre GAN publicados y muchos cientos de GAN con nombre disponibles para que experimente. Hay variantes que están optimizadas para casos de uso específicos, como tablas relacionales y datos de series temporales.

Puede encontrar todo el código utilizado para este artículo en este cuadernoy, por supuesto, hay más tutoriales como este disponibles en SageMaker página de documentación oficial.

En segunda parte de esta serie de publicaciones de blog de dos partes, profundizaremos en cómo evaluar la calidad de los datos sintéticos desde una perspectiva de fidelidad, utilidad y privacidad.


Sobre la autora

Aumente las transacciones fraudulentas utilizando datos sintéticos en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.faris haddad es el líder de datos e información en el equipo de actividades estratégicas de AABG. Ayuda a las empresas a convertirse con éxito en datos.

Sello de tiempo:

Mas de Aprendizaje automático de AWS