Los datos sintéticos han surgido como una alternativa inteligente y versátil para aquellas organizaciones que buscan métodos para gestionar y utilizar la información de manera respetuosa con la privacidad. A lo largo de este artículo, desglosaremos detalladamente la naturaleza de estos datos, explicando la utilidad que tienen y los procesos mediante los cuales se crean.
Explicación
Los datos sintéticos son datos generados artificialmente, mediante técnicas computacionales, que imitan las propiedades de los datos del mundo real. Desempeñan un papel de importancia en diversas aplicaciones, desde el entrenamiento de modelos de lenguaje generativos hasta la mejora de medidas de ciberseguridad.
Estos datos han cobrado relevancia debido a las constantes preocupaciones sobre la privacidad de los datos y la necesidad de datasets de gran volumen. Representando una alternativa viable que aborda tres preocupaciones comunes: escasez, costes y protección de datos.
Métodos de Generación
Se pueden crear mediante:
- Métodos Estadísticos: estos métodos utilizan modelos estadísticos para generar datos. Como simulaciones de Montecarlo, distribuciones de probabilidad, modelos paramétricos, etcétera.
- Modelos De Machine Learning: los algoritmos de machine learning, como árboles de decisión o redes neuronales, se pueden entrenar con datos reales para generar datos sintéticos. Estos modelos aprenden los patrones y distribuciones de los datos originales y los replican sintéticamente.
- Redes Generativas Adversarias: constan de dos redes neuronales, un generador y un discriminador, que trabajan juntas para crear datos sintéticos. El generador crea datos, mientras que el discriminador evalúa su autenticidad, lo que lleva a la generación de datos sintéticos de alta calidad. Son particularmente efectivas para generar imágenes, audio y texto realistas.
- Privacidad Diferencial: garantiza que los datos sintéticos protejan la privacidad individual mediante la introducción de ruido controlado. Añaden aleatoriedad al proceso de generación de datos, impidiendo a partir de los datos sintéticos la identificación de individuos reales. Comúnmente utilizado en escenarios donde la privacidad de los datos es primordial.
Ejemplo Con Python
Para visualizar mejor en qué consisten estos datos, presentamos un ejemplo práctico que se centra en la creación de un conjunto de transacciones bancarias sintéticas, una tarea común en proyectos de modelado de datos y análisis financiero.
!pip install faker
from faker import Faker
import pandas as pd
import numpy as np
def generar_transacciones_bancarias(n_transacciones=1000):
"""
Genera un df de pandas con datos de transacciones bancarias sintéticos
Parámetros:
n_transacciones (int): transacciones a generar.
Devuelve:
DataFrame: datos de transacciones como ID del usuario, cantidad, tipo y fecha.
"""
fake = Faker()
Faker.seed(42)
datos_transacciones = []
for _ in range(n_transacciones):
tipo = np.random.choice(['Depósito', 'Retiro', 'Pago'])
cantidad_base = round(fake.random_number(digits=4), 2)
if tipo == 'Retiro':
cantidad = -cantidad_base
else:
cantidad = cantidad_base
transaccion = {
'ID Usuario': fake.random_int(min=1, max=100),
'Cantidad': cantidad,
'Tipo': tipo,
'Fecha': fake.date_time_this_year(before_now=True, after_now=False)
}
datos_transacciones.append(transaccion)
return pd.DataFrame(datos_transacciones)
datos_transacciones = generar_transacciones_bancarias(2000)
datos_transacciones['Cantidad (€)'] = datos_transacciones['Cantidad'].apply(lambda x: f"{x} €")
print(datos_transacciones[['ID Usuario', 'Cantidad (€)', 'Tipo', 'Fecha']].head())
---
ID Usuario Cantidad (€) Tipo Fecha
0 4 1824 € Depósito 2024-05-23 23:52:32
1 32 4506 € Depósito 2024-02-13 08:14:14
2 95 2286 € Pago 2024-01-20 21:39:43
3 12 8935 € Depósito 2024-04-24 15:53:40
4 5 6912 € Pago 2024-01-06 18:51:54
... ... ... ... ...
1995 27 -6945 € Retiro 2024-03-22 09:06:52
1996 47 -6099 € Retiro 2024-03-18 18:53:48
1997 58 4581 € Pago 2024-02-04 22:20:40
1998 17 9361 € Pago 2024-04-21 19:51:16
1999 13 -3744 € Retiro 2024-05-19 23:14:36
Al ejecutar el código obtendremos unos valores similares a los de arriba (pero no iguales, los datos sintéticos son siempre ficticios y aleatorios). El resultado son 2000 registros que pueden ser utilizados para análisis y pruebas, sin el riesgo de exponer información sensible.
Tipos de Datos Sintéticos
Los datos sintéticos se clasifican según su proceso de generación:
A) Algorítmicos
Lo que implica el uso de algoritmos estadísticos o matemáticos para crear datos que sigan una distribución o ruleset específico. Estos algoritmos producen datasets sintéticos de gran volumen.
Un ejemplo de esto sería la generación de datos alteratorios utilizando distribuciones de probabilidad predefinidas.
B) Aumentados
Este método consiste en aumentar los datos del mundo real ya existentes para crear ejemplos nuevos y sintéticos. Se utilizan comúnmente técnicas como la perturbación de datos, la adición de ruido y la transformación.
Por ejemplo, los datasets de imágenes se pueden aumentar rotando o alterando el color de las imágenes para crear nuevas muestras.
C) Autónomos
Se crean desde cero utilizando técnicas avanzadas como redes adversativas generativas u otros modelos de machine learning. No dependen de datos existentes del mundo real y pueden adaptarse a necesidades específicas.
Son particularmente útiles en escenarios donde los datos reales no están disponibles o son muy delicados. Como en la generación de conversaciones de servicio al cliente para entrenar modelos de lenguaje generativos que serán empleados como agente de soporte.
Utilidad De Estos Datos
Sirven para los siguiente:
- Entrenar Modelos: los datos sintéticos se utilizan ampliamente para entrenar modelos de machine learning, especialmente cuando los datos reales son escasos o sensibles. Ayuda a crear modelos robustos sin comprometer la privacidad.
- Aumentar el Volumen de Datos: en escenarios donde se necesita diversidad de datos, los datos sintéticos aumentan el volumen de los dasets existentes, proporcionando más ejemplos para entrenar y mejorar el rendimiento del modelo. Particularmente útil, entre otros contextos, en tareas de reconocimiento de imágenes y voz, donde diversos datos de entrenamiento son determinantes para la precisión del modelo.
- Probar & Validar Sistemas: permite realizar testeos rigurosos sin los riesgos asociados a el uso de datos reales. Los procesos de prueba de software y control de calidad suelen utilizar datos sintéticos para simular las interacciones del usuario y detectar errores.
- Proteger Datasets Confidenciales: al utilizar datos sintéticos, las organizaciones pueden compartir y analizar información confidencial sin exponer datos reales, manteniendo así la privacidad y el cumplimiento de las regulaciones.
- Mejorar la Ciberseguridad: se utilizan para simular escenarios de ciberataques realistas y desarrollar y probar mecanismos de defensa sin poner en peligro a la organización.
Ventajas De Usarlos
- Privacidad: mitigan los problemas de privacidad al garantizar que las personas reales no sean identificables, lo que los convierte en una opción segura para manejar información confidencial.
- Rentabilidad: suele ser menos caro que recopilar y etiquetar datos del mundo real, especialmente en escenarios donde la recopilación de datos es costosa y logísticamente problemática – como en experimentos a gran escala.
- Escalabilidad: se adaptan a requisitos específicos, garantizando disponibilidad y escalabilidad para diversas aplicaciones. Esto es particularmente útil en el machine learning, donde se requieren de datasets de gran tamaño para entrenar modelos de alta complejidad.
- Flexibilidad: se pueden personalizar para incluir características o anomalías específicas que no están suficientemente representadas en los datos reales. Maximizando su utilidad para diferentes casos de uso.
Problemas Asociados
Lo principal que se debe considerar es la calidad y representatividad de los datos, requiriendo de una calibración cuidadosa para integrar correctamente los datos sintéticos con los reales y evitar resultados poco precisos.
Relación Con La Inteligencia Artificial
La inteligencia artificial ha mejorado la generación de datos sintéticos mediante algoritmos avanzados como las redes generativas adversativas y modelos de machine learning. Que permiten crear datasets que no solo replican las características estadísticas de los datos reales, sino que también capturan detalles complejos (variabilidad en datos sensibles, detalles sociodemográficos…).
Lo anterior permite el entrenamiento efectivo de modelos de IA en condiciones restringidas y con datos reales limitados, algo común en campos como la medicina o las finanzas. También se usan para industrias como la automoción, en específico los vehículos autónomos, dado que los datos sintéticos permiten simular la infinidad de contextos que pueden darse durante la conducción.
Conclusión
Los datos sintéticos son de gran utilidad para el data science, ya que permiten crear datos que imitan los reales – y respetan la privacidad. Facilitando el entrenamiento de modelos, la prueba de sistemas en entornos controlados y la ampliación de tamaño de datasets. Sin dejar de lado la calidad y representatividad de los datos, así como los desafíos técnicos y éticos, para maximizar su utilidad sin comprometer la integridad de los resultados.