CD_34 Original + Derivados

CD_34: Online Shoppers Purchasing Intention

Registro de Web Analytics para la clasificación binaria de intención de compra (Revenue). Integra métricas de navegación (conteos y duraciones por tipo de página), indicadores de calidad (tasa de rebote/salida, valor de página) y contexto temporal (SpecialDay, mes).

📈 Eficacia Predictiva Detallada

Comparación detallada de las métricas de clasificación para los modelos entrenados con el conjunto de datos original y el conjunto sintético generado.

📊 Conjunto Original

Clase Precisión Recall F1-Score Soporte
Clase 0 0.84 1.00 0.92 169
Clase 1 0.00 0.00 0.00 31
Accuracy 0.84
Macro Avg 0.42 0.50 0.46 200
Weighted Avg 0.71 0.84 0.77 200
AUC-ROC: 0.70
F1-Score (weighted): 0.77
Accuracy: 0.84
➡️ Mejora
⬆ +0.08 AUC ⬆ +0.08 F1 ⬆ +0.01 Acc
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.90 0.93 0.92 169
Clase 1 0.54 ⬆ +0.54 0.42 ⬆ +0.42 0.47 ⬆ +0.47 31
Accuracy 0.85 ⬆ +0.01
Macro Avg 0.72 ⬆ +0.30 0.68 ⬆ +0.18 0.69 ⬆ +0.23 200
Weighted Avg 0.84 ⬆ +0.13 0.85 ⬆ +0.01 0.85 ⬆ +0.08 200
AUC-ROC: 0.78 ⬆ +0.08
F1-Score (weighted): 0.85 ⬆ +0.08
Accuracy: 0.85 ⬆ +0.01

📊 Resumen de Mejoras en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.00
Sintético: 0.54
⬆ +0.54
📈
Recall
Original: 0.00
Sintético: 0.42
⬆ +0.42
⚖️
F1-Score
Original: 0.00
Sintético: 0.47
⬆ +0.47

📚 Fuente Original del Conjunto

Online Shoppers Purchasing Intention Dataset

v1.0
Sakar, C. O., Polat, S., Katircioglu, M., & Kastro, Y.
Publicado: 2019

📄 Resumen (Abstract)

El conjunto de datos de Intención de Compra de Compradores en Línea contiene vectores de características pertenecientes a 12,330 sesiones. De estas, 84.5% (10,422) fueron muestras de clase negativa que no terminaron en compra, y el resto 15.5% (1,908) fueron muestras de clase positiva que terminaron en compra. El conjunto fue formado para que cada sesión perteneciera a un usuario diferente en un período de 1 año para evitar cualquier tendencia a una campaña específica, día especial, perfil de usuario o período. El objetivo es predecir si una sesión de navegación en un sitio de comercio electrónico terminará en una transacción de compra (variable Revenue).

🔬 Contexto y Motivación

La predicción en tiempo real de la intención de compra de los compradores en línea es fundamental para los sitios de comercio electrónico. Esta investigación, publicada en 2019, compara el rendimiento de perceptrones multicapa (MLP) y redes neuronales recurrentes LSTM para la predicción en tiempo real. El conjunto de datos permite:

  • Analizar el comportamiento de navegación de los usuarios en tiendas en línea
  • Identificar patrones de compra y factores que influyen en la conversión
  • Desarrollar modelos para personalizar la experiencia del usuario
  • Optimizar campañas de marketing y recomendaciones de productos

El dataset fue diseñado específicamente para evitar sesgos de campañas específicas, días especiales o perfiles de usuario, abarcando un período de 1 año con sesiones de diferentes usuarios.

📊 Descripción de Datos

El dataset contiene 12,330 instancias con 17 atributos (16 variables predictoras y 1 variable objetivo). Las características son de tipo mixto (10 numéricas y 8 categóricas). No presenta valores faltantes.

📋 Variables del Dataset
Variable Tipo Descripción Unidades / Categorías
A. Páginas Visitadas y Duración
Administrative Entero Número de páginas administrativas visitadas -
Administrative_Duration Entero Tiempo total en páginas administrativas segundos
Informational Entero Número de páginas informativas visitadas -
Informational_Duration Entero Tiempo total en páginas informativas segundos
ProductRelated Entero Número de páginas relacionadas con productos visitadas -
ProductRelated_Duration Continuo Tiempo total en páginas relacionadas con productos segundos
B. Métricas de Google Analytics
BounceRates Continuo Porcentaje de visitantes que abandonan desde esta página valor entre 0 y 1
ExitRates Continuo Porcentaje de visitas que terminaron en esta página valor entre 0 y 1
PageValues Entero Valor promedio de la página antes de completar una transacción -
C. Contexto de la Visita
SpecialDay Entero Cercanía a un día especial (ej: Día de la Madre, San Valentín) 0 = no cercano, 1 = máximo (día del evento)
Month Categórica Mes del año de la visita Jan, Feb, Mar, ..., Dec
Weekend Binaria Indica si la visita fue en fin de semana 1 = Fin de semana, 0 = Día laboral
D. Datos del Usuario y Tecnología
OperatingSystems Entero Sistema operativo del visitante Código numérico
Browser Entero Navegador utilizado por el visitante Código numérico
Region Entero Región geográfica del visitante Código numérico
TrafficType Entero Tipo de tráfico (fuente de llegada) Código numérico
VisitorType Categórica Tipo de visitante New_Visitor, Returning_Visitor, Other
E. Variable Objetivo
Revenue Binaria (Target) Indica si la sesión terminó en una transacción de compra 1 = Compra, 0 = No compra
📊 Distribución de Clases
Clase Instancias Porcentaje Descripción
0 (No compra) 10,422 84.5% Clase negativa (mayoritaria)
1 (Compra) 1,908 15.5% Clase positiva (minoritaria)

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria (Compra vs. No compra)
  • Dimensión: Multivariante
  • Tipo de características: Mixtas (10 numéricas, 8 categóricas)
  • Valores faltantes: No
  • Área de aplicación: Comercio Electrónico, Marketing Digital, Análisis de Comportamiento
  • Desbalanceo: 84.5% / 15.5% (clase positiva minoritaria)
  • Período: 1 año (cada sesión de un usuario diferente)

📖 Publicación Introductoria

El artículo fundamental que describe la predicción en tiempo real de la intención de compra utilizando MLP y LSTM es:

Sakar, C. O., Polat, S., Katircioglu, M., & Kastro, Y. (2019). Real-time prediction of online shoppers' purchasing intention using multilayer perceptron and LSTM recurrent neural networks. Neural Computing and Applications, 31(10), 6893-6908. https://doi.org/10.1007/s00521-018-3523-3

📋 Notas de Uso

Este conjunto de datos es ampliamente utilizado para la predicción de intención de compra en comercio electrónico. Se recomienda:

  • La variable Revenue es la variable objetivo (1 = compra, 0 = no compra)
  • Las variables de duración (Administrative_Duration, Informational_Duration, ProductRelated_Duration) son características importantes para predecir la intención de compra
  • BounceRates y ExitRates son métricas de Google Analytics que reflejan el comportamiento de abandono
  • PageValues indica el valor promedio de las páginas visitadas antes de una transacción
  • SpecialDay captura el efecto de días especiales (ej: San Valentín) en el comportamiento de compra
  • Codificar variables categóricas:
    • Month: One-Hot Encoding o Label Encoding con orden cíclico
    • VisitorType: One-Hot Encoding
    • Weekend: Binaria (0/1)
  • Las variables OperatingSystems, Browser, Region, TrafficType son códigos numéricos que pueden tratarse como categóricas
  • Estandarizar/normalizar variables numéricas (todas las duraciones, BounceRates, ExitRates, PageValues)
  • Utilizar validación cruzada estratificada debido al desbalanceo de clases (15.5% de compras)
  • Considerar técnicas de balanceo de clases si es necesario (SMOTE, submuestreo, etc.)
  • El dataset fue diseñado para predicción en tiempo real, por lo que es adecuado para modelos secuenciales (LSTM) y de aprendizaje automático tradicional

💡 Importancia en Comercio Electrónico

La predicción de la intención de compra en tiempo real es fundamental para los negocios de comercio electrónico. Las aplicaciones incluyen:

  • Personalización de la experiencia del usuario durante la sesión de navegación
  • Recomendaciones de productos contextuales y oportunas
  • Optimización de campañas de marketing y remarketing
  • Reducción de la tasa de abandono del carrito de compras
  • Mejora de la tasa de conversión y el retorno de la inversión (ROI)

Este dataset ha sido fundamental para la investigación en análisis de comportamiento de compradores en línea, demostrando que los modelos de aprendizaje profundo (LSTM, MLP) pueden predecir la intención de compra con alta precisión utilizando datos de navegación en tiempo real.

📖 Cómo citar la fuente original

Sakar, C. O., Polat, S., Katircioglu, M., & Kastro, Y. (2019). Real-time prediction of online shoppers' purchasing intention using multilayer perceptron and LSTM recurrent neural networks. Neural Computing and Applications, 31(10), 6893-6908. https://doi.org/10.1007/s00521-018-3523-3

📚 Referencias Adicionales

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (Online Shoppers Purchasing Intention)

  • Verificación y garantía de integridad de datos:
    • Confirmación de la ausencia total de valores perdidos en el dataset original, tal como lo documenta la fuente.
    • Implementación de imputación con mediana para variables numéricas y moda para categóricas como medida preventiva.
    • Garantía de integridad total del conjunto de datos para modelado directo.
  • Codificación de variables booleanas:
    • Transformación de Revenue (objetivo) y Weekend de tipo booleano o texto a valores numéricos binarios: 0 = FALSE, 1 = TRUE.
    • Variable objetivo: Revenue (1 = Compra realizada/conversión exitosa, 0 = No compró).
    • Variable contextual: Weekend (1 = Fin de semana, 0 = Día de semana).
  • Codificación de variable temporal (Month):
    • Conversión de nombres de mes a valores numéricos para preservar la estacionalidad: Feb → 2, Mar → 3, May → 5, June/Jun → 6, Jul → 7, Aug → 8, Sep → 9, Oct → 10, Nov → 11, Dec → 12.
    • Nota: Enero y Abril no están presentes en la muestra original del dataset.
  • Codificación de variable nominal (VisitorType):
    • Transformación de VisitorType (tipo de visitante) mediante codificación ordinal (Label Encoding) con preservación de mapeo completo en leyenda.
    • Categorías originales: Returning_Visitor (visitante recurrente), New_Visitor (visitante nuevo), Other (otros).
  • Preservación de variables numéricas codificadas:
    • Variables nominales pre-codificadas: OperatingSystems, Browser, Region, TrafficType — preservadas como códigos numéricos con documentación en leyenda.
    • Estas variables ya están en formato numérico y se mantienen sin transformación adicional.
  • Documentación de variables métricas de navegación:
    • Contadores de páginas: Administrative, Informational, ProductRelated — número de páginas visitadas por tipo.
    • Tiempos de navegación: Administrative_Duration, Informational_Duration, ProductRelated_Duration — tiempo en segundos por tipo de página.
    • Tasas de comportamiento: BounceRates (tasa de rebote), ExitRates (tasa de salida) — valores entre 0.0 y 1.0.
    • Valor de página: PageValues — valor medio de las páginas visitadas.
    • Día especial: SpecialDay — proximidad a un día especial (0.0 - 1.0).
  • Generación de documentación completa:
    • Creación del archivo leyenda_online_shoppers.txt con semántica completa de la variable objetivo y todas las variables predictoras.
    • Documentación de variables booleanas (Revenue, Weekend), temporal (Month), nominal (VisitorType), y métricas de navegación.
    • Contextualización del dataset: sesiones de navegación en tienda online con datos de Google Analytics.
  • Preservación de la estructura y calidad de datos:
    • Mantenimiento de las 12,330 instancias (sesiones de navegación) sin eliminación de filas.
    • Dataset final con 17 variables predictoras (mixtas: booleanas, ordinales, nominales codificadas y numéricas) y 1 variable objetivo binaria.
    • Guardado en formato CSV con separador punto y coma (;) para compatibilidad internacional.

📊 Resultado: Dataset de 12,330 sesiones de navegación en tienda online con 17 variables predictoras (comportamiento de navegación, métricas de Google Analytics, datos temporales y de dispositivo) y 1 variable objetivo binaria (Revenue). Desbalance moderado (~84.5% sin compra / ~15.5% con compra) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de e-commerce y predicción de conversión, donde el comportamiento de navegación y las métricas de engagement son determinantes.

🛒 Fuente: Online Shoppers Purchasing Intention Dataset (UCI Machine Learning Repository) - Datos de sesiones de navegación en tienda online con Google Analytics.

📊 Variables clave de navegación: Páginas visitadas (Administrative, Informational, ProductRelated), tiempos de navegación, tasas de rebote y salida, valor de página.

📅 Variables temporales: Month (mes de la visita), Weekend (fin de semana), SpecialDay (proximidad a día especial).

📁 Leyenda disponible: Archivo leyenda_online_shoppers.txt con mapeo semántico completo de variables booleanas (Revenue, Weekend), temporal (Month), nominal (VisitorType), y métricas de navegación.

🎯 Variable objetivo: Revenue (1 = Compra realizada/conversión exitosa, 0 = No compró).

🔍 Contexto analítico: El dataset permite analizar la relación entre el comportamiento de navegación y la intención de compra, con métricas como tasas de rebote y valores de página que indican engagement del usuario.

📋 Diccionario de Datos Detallado

Variable Descripción Tipo Rango / Categorías Unidad ¿Objetivo?
Month Mes de la sesión (ordinal) Categórico 2: Feb, 3: Mar, 5: May, 6: Jun, 7: Jul, 8: Aug, 9: Sep, 10: Oct, 11: Nov, 12: Dec N/A No
OperatingSystems Sistema operativo del visitante (nominal) Categórico 1,2,3,4,6,8 (ver leyenda) N/A No
Browser Navegador web del visitante (nominal) Categórico 1,2,3,4,5,6,7,8,10,13 (ver leyenda) N/A No
Region Región geográfica del visitante (nominal) Categórico 1-9 (ver leyenda) N/A No
TrafficType Tipo de tráfico / fuente de llegada (nominal) Categórico 1-15,20 (ver leyenda) N/A No
VisitorType Tipo de visitante (nominal) Categórico 0: New_Visitor, 1: Other, 2: Returning_Visitor N/A No
Administrative Número de páginas administrativas visitadas Numérico 0 - 19 páginas No
Administrative_Duration Tiempo en páginas administrativas Numérico 0 - 2,086.75 segundos No
Informational Número de páginas informativas visitadas Numérico 0 - 12 páginas No
Informational_Duration Tiempo en páginas informativas Numérico 0 - 1,767.67 segundos No
ProductRelated Número de páginas de productos visitadas Numérico 0 - 349 páginas No
ProductRelated_Duration Tiempo en páginas de productos Numérico 0 - 13,265.36 segundos No
BounceRates Tasa de rebote (entrada y salida sin interacción) Numérico 0 - 0.2 N/A No
ExitRates Tasa de salida (página fue última de la sesión) Numérico 0 - 0.2 N/A No
PageValues Valor promedio de página (contribución a transacción) Numérico 0 - 131.50 N/A No
SpecialDay Proximidad a un día festivo / especial Numérico 0 - 1 N/A No
Weekend ¿La sesión ocurrió en fin de semana? Binario 0: No, 1: Sí N/A No
Revenue ¿Se realizó una compra? (objetivo) Binario 0: No, 1: Sí N/A
18 Variables totales
10 Numéricas
6 Categóricas
2 Binarias
Objetivo: Compra (Revenue)
Datos ausentes: 0%

📈 Distribución de la variable objetivo en el conjunto original

📖 Leyenda de Variables Categóricas

Esta sección detalla los códigos y significados de las variables categóricas y binarias presentes en el conjunto de datos de Intención de Compra en Tiendas Online. Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de comportamiento del usuario.

Month Categórica
Código Significado
2Febrero (February)
3Marzo (March)
5Mayo (May)
6Junio (June)
7Julio (July)
8Agosto (August)
9Septiembre (September)
10Octubre (October)
11Noviembre (November)
12Diciembre (December)
⚠️

Nota: Enero (1) y Abril (4) no están presentes en el conjunto de datos original.

OperatingSystems Categórica

Sistemas operativos (códigos nominales)

1 OS 1
2 OS 2
3 OS 3
4 OS 4
6 OS 6
8 OS 8
💻

Nota: Códigos preasignados para anonimización. No se dispone del mapeo exacto a sistemas operativos reales.

Browser Categórica

Navegadores web (códigos nominales)

1 Browser 1
2 Browser 2
3 Browser 3
4 Browser 4
5 Browser 5
6 Browser 6
7 Browser 7
8 Browser 8
10 Browser 10
13 Browser 13
🌐

Nota: Códigos preasignados para anonimización. No se dispone del mapeo exacto a navegadores reales.

Region Categórica

Regiones geográficas (códigos nominales)

1 Región 1
2 Región 2
3 Región 3
4 Región 4
5 Región 5
6 Región 6
7 Región 7
8 Región 8
9 Región 9
🌍

Nota: Códigos preasignados para anonimización. No se dispone del mapeo exacto a regiones reales.

TrafficType Categórica

Tipo de tráfico / fuente de llegada (códigos nominales)

1 Traffic 1
2 Traffic 2
3 Traffic 3
4 Traffic 4
5 Traffic 5
6 Traffic 6
7 Traffic 7
8 Traffic 8
9 Traffic 9
10 Traffic 10
11 Traffic 11
12 Traffic 12
13 Traffic 13
14 Traffic 14
15 Traffic 15
20 Traffic 20
🔗

Nota: Códigos preasignados para anonimización. Representan fuentes como búsqueda orgánica, anuncios, redes sociales, etc.

VisitorType Categórica
Código Significado
0New Visitor (Visitante nuevo)
1Other (Otro)
2Returning Visitor (Visitante recurrente)
👤

Importancia: Los visitantes recurrentes tienen mayor probabilidad de conversión que los nuevos visitantes.

Variables Binarias Binario

Formato común: 0 = No / Falso, 1 = Sí / Verdadero

Weekend Sesión en fin de semana (0: No, 1: Sí)
Revenue 🎯 Variable Objetivo: Compra realizada (0: No, 1: Sí)
ℹ️

Nota: Todas las variables binarias están codificadas como 0 = No y 1 = Sí.

📊
Variables categóricas: 6
  • Month (10 meses codificados)
  • OperatingSystems (6 códigos)
  • Browser (10 códigos)
  • Region (9 códigos)
  • TrafficType (16 códigos)
  • VisitorType (3 categorías)
🎯
Variables binarias: 2
  • Weekend (Fin de semana)
  • 🎯 Revenue (Objetivo - Compra)
📈
Variables numéricas: 10
  • 3 Contadores de páginas
  • 3 Duración en segundos
  • 3 Métricas Google Analytics
  • 1 SpecialDay
⚠️
Recomendaciones de Marketing:
  • Factor clave: ProductRelated_Duration - más tiempo en productos = mayor intención de compra
  • BounceRates altas: Indican bajo engagement y menor probabilidad de conversión
  • PageValues altos: Páginas con mayor valor predictivo de transacción
  • SpecialDay: Días como San Valentín o Navidad aumentan la conversión
  • VisitorType: Visitantes recurrentes (2) son más propensos a comprar
  • Month: Noviembre y Diciembre tienen mayor conversión (Black Friday/Navidad)
  • Weekend: Los fines de semana pueden tener diferente comportamiento de navegación
  • ExitRates: Páginas con alta tasa de salida pueden ser cuellos de botella

🔬 Metodología de Generación (Reproducibilidad Científica)

📐 Método Principal

SMOTE RSB* Adaptado

Versión: 2.0

DOI: 10.1007/s42979-026-04896-8

📏 Reglas de restricción

  • Administrative == 0 → Administrative_Duration = 0
  • Administrative > 0 → Administrative_Duration > 0
  • Informational == 0 → Informational_Duration = 0
  • Informational > 0 → Informational_Duration > 0
  • ProductRelated == 0 → ProductRelated_Duration = 0
  • ProductRelated > 0 → ProductRelated_Duration > 0
  • ProductRelated == 0 → Revenue = 0 (Sin producto → sin compra)
  • Revenue == 0 → PageValues = 0 (Sin compra → sin valor de página)
  • PageValues > 0 → Revenue = 1 (Valor de página positivo → compra)
  • BounceRates > 0 → Administrative_Duration = 0 (Rebote → sin tiempo administrativo)
  • BounceRates > 0 → Revenue = 0 (Rebote → sin compra)
  • ExitRates > 0.8 → Revenue = 0 (Tasa de salida alta → sin compra)
  • Revenue == 1 → (ProductRelated > 0) OR (Administrative > 0) (Compra → producto o administrativa)
  • VisitorType == 0 (Nuevo) → Administrative ≤ 2 (Visitante nuevo → pocas administrativas)
  • Month == 11 (Noviembre) → Revenue = 0 (Noviembre sin producto → sin compra)

⚙️ Hiperparámetros SMOTE RSB* Adaptado

Valor escala0.03
Probabilidad Base0.1

🔄 Hiperparámetros CTGAN

epochs500
batch_size50
generator_lr0.0002
discriminator_lr0.0002
pac10
generator_dim(256, 256)
discriminator_dim(256, 256)
embedding_dim128
l2scale1e-05

📊 Hiperparámetros TVAE

epochs 500
batch_size 50
embedding_dim 128
compress_dims (128, 128)
decompress_dims (128, 128)
l2scale 1e-5
loss_factor 2

🔐 Reproducibilidad

Random Seed42
Python3.12.12

Librerías utilizadas:

  • pandas: 2.3.3
  • numpy: 2.4.4
  • scikit-learn: 1.7.2
  • imbalanced-learn: 0.14.0
  • ctgan: 0.11.1
  • torch: 2.9.0
  • sdv: 1.28.0
  • scipy: 1.16.3
  • matplotlib: 3.10.9
📝

Para reproducir exactamente este conjunto de datos, ejecute el script de generación con la semilla aleatoria 42. Los resultados pueden variar ligeramente según la versión de las librerías.

📊 Conjuntos de Datos Derivados

El conjunto original ha sido sometido a un proceso de balanceo de clases y generación sintética para mejorar la representación de clases minoritarias. Nota: se ha empleado un conjunto de validación para evaluar el índice de fidelidad. Se han generado tres familias de conjuntos:

  • 📊 Balanceados: Conjuntos creados mediante técnicas de sobremuestreo
  • 🔮 Sintéticos Puros: Conjuntos generados completamente con modelos generativos
  • ✨ Aumentados: Combinación del conjunto original + datos sintéticos

El mejor conjunto de cada etapa fue seleccionado mediante el índice TabDSFidelity.

📊 Conjuntos Balanceados 8 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
Random Oversampling 1 1014 0.895 0.870 0.865 8.758 0.161 0.189 0.042 0.960 47.184 0 1014 0.462 🏆
Smote 1 1014 0.901 0.855 0.850 6.015 0.261 0.172 0.065 0.956 49.535 0.050 600 0.467
Borderline SMOTE 1 1014 0.887 0.866 0.860 6.475 0.262 0.157 0.065 0.959 48.664 0.049 600 0.436
ADASYN 1.020 1004 0.900 0.868 0.860 8.117 0.254 0.233 0.061 0.961 48.391 0.048 600 0.416
SMOTE RSB* Adaptado 1.090 972 0.885 0.863 0.855 5.754 0.252 0.145 0.052 0.968 47.834 0.046 600 0.431
SMOTE RSB* Adaptado + Reglas 1.090 972 0.878 0.862 0.855 4.909 0.252 0.118 0.049 0.966 47.472 0.047 600 0.445
OOF PSO para Balanceo 1 1014 0.897 0.854 0.860 3.530 0.367 0.000 0.164 0.658 55.127 0.193 600 0.428
OOF PSO para Balanceo + Reglas 2 1014 0.886 0.843 0.870 3.746 0.295 0.087 0.162 0.758 55.688 0.146 387 0.490
Mejor seleccionado: Random Oversampling (TabDSFidelity: 8.758, AUC: 0.895, F1: 0.870, MIA: 0.462). Nota: Ratio <= 1.5 = Conjunto Balanceado.

🔮 Conjuntos Sintéticos Puros 10 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
SMOTE RSB* + Ruido Gaussiano 1.560 7817 0.848 0.866 0.875 8.772 0.343 0.060 0.112 0.956 69.378 0.447 0 0.427
SMOTE RSB* + Ruido Gaussiano + Reglas 6.717 7817 0.892 0.839 0.865 8.438 0.323 0.074 0.096 0.937 188.121 0.448 0 0.488
CTGAN 1.236 9999 0.877 0.786 0.755 5.689 0.349 0.158 0.078 0.934 420.193 0.126 0 0.486
CTGAN + Reglas del Dominio 4.948 9999 0.661 0.846 0.865 7.195 0.338 0.158 0.054 0.926 560.383 0.119 0 0.505
TVAE 1.149 10000 0.888 0.841 0.825 6.943 0.496 0.030 0.073 0.953 212.929 0.074 0 0.419
TVAE + Reglas del Dominio 9.661 10000 0.811 0.854 0.875 7.634 0.437 0.030 0.049 0.934 354.311 0.072 0 0.459
OOF PSO para Aumento 1 10000 0.768 0.787 0.765 1.124 0.557 0.000 0.757 0.588 135.704 0.263 0 0.430
OOF PSO para Aumento + Reglas 30.056 10000 0.864 0.820 0.860 4.790 0.508 0.000 0.741 0.667 274.827 0.226 0 0.453
SMOTE RSB* Refinado 1.505 8290 0.868 0.860 0.865 8.849 0.345 0.094 0.105 0.956 68.846 0.392 0 0.445 🏆
SMOTE RSB* Refinado + Reglas 6.462 8290 0.857 0.839 0.865 8.465 0.325 0.127 0.087 0.936 191.791 0.397 0 0.488
Mejor seleccionado: SMOTE RSB* Refinado (TabDSFidelity: 8.849, AUC: 0.868, F1: 0.860, MIA: 0.445). Nota: Ratio <= 1.5 = Conjunto Balanceado.

✨ Conjuntos Aumentados 10 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
SMOTE RSB* + Ruido Gaussiano 1.480 8831 0.837 0.841 0.850 4.615 0.323 0.054 0.098 0.958 131.025 0.447 0 0.434
SMOTE RSB* + Ruido Gaussiano + Reglas 4.810 8831 0.879 0.842 0.855 5.850 0.299 0.066 0.080 0.945 249.618 0.448 0 0.455
CTGAN 1.212 11013 0.892 0.854 0.840 6.847 0.321 0.165 0.071 0.939 493.673 0.116 189 0.477
CTGAN + Reglas del Dominio 4.033 11013 0.801 0.859 0.870 6.932 0.308 0.165 0.046 0.933 633.441 0.109 189 0.496
TVAE 1.134 11014 0.873 0.844 0.830 4.027 0.448 0.033 0.063 0.955 287.813 0.066 188 0.410
TVAE + Reglas del Dominio 6.622 11014 0.877 0.863 0.875 7.649 0.390 0.033 0.035 0.939 427.953 0.065 188 0.467 🏆
OOF PSO para Aumento 1 11014 0.908 0.870 0.870 5.778 0.497 0.000 0.573 0.618 207.770 0.238 188 0.431
OOF PSO para Aumento + Reglas 12.286 11014 0.886 0.861 0.855 4.535 0.445 0.000 0.544 0.689 348.401 0.205 188 0.456
SMOTE RSB* Refinado 1.438 9304 0.855 0.860 0.865 7.110 0.325 0.082 0.093 0.957 133.353 0.391 0 0.460
SMOTE RSB* Refinado + Reglas 4.750 9304 0.870 0.842 0.855 5.944 0.302 0.108 0.074 0.944 255.580 0.397 0 0.450
Mejor seleccionado: TVAE + Reglas del Dominio (TabDSFidelity: 7.649, AUC: 0.877, F1: 0.863, MIA: 0.467). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_34
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
Random Oversampling
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
SMOTE RSB* Refinado
⭐ Mejor Aumentado
TVAE + Reglas del Dominio
Conjunto Sintético Final
Seleccionado por calidad

📊 Guía de Métricas de Evaluación

Para interpretar correctamente los resultados de los conjuntos de datos generados, es fundamental comprender qué mide cada métrica y cómo se relacionan entre sí. A continuación, se detalla cada una de las métricas utilizadas en la evaluación:

🎯 Métricas de Rendimiento Predictivo

AUC-ROC (0.5 - 1.0)

¿Qué mide? Capacidad del modelo para distinguir entre clases (Ej: mortalidad vs supervivencia).

Interpretación:

  • 0.5: Sin capacidad predictiva (aleatorio)
  • 0.7-0.8: Aceptable
  • 0.8-0.9: Excelente
  • >0.9: Sobresaliente

Ejemplo: AUC-ROC = 0.82 significa que hay un 82% de probabilidad de que el modelo clasifique correctamente un paciente fallecido frente a uno superviviente.

F1-Score (0 - 1.0)

¿Qué mide? Media armónica entre precisión y sensibilidad (recall).

Interpretación:

  • 0.7-0.8: Buen equilibrio entre precisión y sensibilidad
  • 0.8-0.9: Muy buen equilibrio
  • >0.9: Excelente equilibrio

Ejemplo: F1 = 0.76 indica que el modelo mantiene un buen balance entre identificar correctamente a los pacientes que fallecen (sensibilidad) y no etiquetar erróneamente a los que sobreviven (precisión).

Accuracy (0 - 1.0)

¿Qué mide? Proporción de predicciones correctas sobre el total.

Interpretación:

  • 0.7-0.8: Buen rendimiento general
  • 0.8-0.9: Muy buen rendimiento
  • >0.9: Excelente rendimiento

Ejemplo: Accuracy = 0.75 significa que el 75% de las predicciones del modelo son correctas.

⚠️ Nota: En conjuntos desbalanceados, esta métrica puede ser engañosa. Es mejor usar F1-Score o AUC-ROC.

🔬 Índice de Fidelidad del Conjunto

TabDSFidelity (0 - 10+)

¿Qué mide? Calidad global del conjunto sintético comparado con el original.

Interpretación:

  • < 3.0: Baja fidelidad (poca similitud con el original)
  • 3.0 - 6.0: Fidelidad moderada
  • 6.0 - 8.0: Alta fidelidad
  • > 8.0: Muy alta fidelidad (excelente representación)

Ejemplo: TabDSFidelity = 8.08 indica que el conjunto sintético mantiene una alta similitud con el original, preservando las relaciones y distribuciones de los datos reales, además de maximizar su eficacia predictiva.

💡 Importante: Este es el índice para seleccionar el mejor conjunto de datos sintéticos. Para este caso, el peso empleado para las métricas "AUC-ROC", "F1-Score" y "Accuracy" fue (2) y para el resto de las métricas fue (1).

📊 Métricas de Similitud de Distribuciones

Jensen-Shannon (Promedio) (0 - 1.0)

¿Qué mide? Similitud entre las distribuciones de variables numéricas del conjunto sintético y el original.

Interpretación:

  • Cerca de 0: Distribuciones muy similares (ideal)
  • 0.1 - 0.3: Diferencias moderadas
  • > 0.3: Diferencias significativas

Ejemplo: JS = 0.118 indica que las distribuciones de las variables numéricas (edad, presión arterial, etc.) son bastante similares a las del conjunto original.

📌 Nota: Es el promedio de la divergencia de Jensen-Shannon calculada para todas las variables numéricas.

Kolmogorov-Smirnov (p-valor promedio) (0 - 1.0)

¿Qué mide? Probabilidad estadística de que las muestras numéricas del conjunto sintético provengan de la misma distribución continua que el original.

Interpretación:

  • Cerca de 1.0: Altísima probabilidad de que sean la misma distribución (ideal)
  • > 0.05: Similitud aceptable (no se rechaza que sean iguales)
  • < 0.05: Diferencias estadísticamente significativas

Ejemplo: KS p-valor = 0.753 indica que hay evidencia fuerte a favor de que las distribuciones acumulativas de la variable sintética y la original son equivalentes.

📌 Nota: Se reporta el promedio de los p-valores obtenidos mediante la prueba de Kolmogorov-Smirnov de dos muestras para las variables numéricas.

Kullback-Leibler (Promedio) (0 - ∞)

¿Qué mide? Divergencia entre las distribuciones de variables categóricas del conjunto sintético y el original.

Interpretación:

  • Cerca de 0: Distribuciones muy similares (ideal)
  • 0.01 - 0.1: Diferencias pequeñas
  • > 0.1: Diferencias notables

Ejemplo: KL = 0.014 indica que la distribución de las variables categóricas (género, mortalidad) es muy similar a la del conjunto original.

📌 Nota: Es el promedio de la divergencia de Kullback-Leibler para todas las variables categóricas. A diferencia de JS y KS, esta métrica se aplica solo a variables categóricas.

📊 Métricas de Estructura

Similitud de Correlación (0 - 1.0)

¿Qué mide? Preservación de las relaciones entre variables del conjunto original.

Interpretación:

  • Cerca de 1.0: Las relaciones entre variables se mantienen casi idénticas
  • > 0.9: Excelente preservación de relaciones
  • 0.7 - 0.9: Buena preservación
  • < 0.7: Pérdida significativa de relaciones

Ejemplo: Correlación = 0.976 significa que las relaciones entre variables (ej. edad y mortalidad) se mantienen en un 97.6% respecto al conjunto original.

⏱️ Métricas de Rendimiento Temporal

Tiempo Total (s) (segundos)

¿Qué mide? Tiempo total de ejecución del proceso de generación del conjunto.

Interpretación:

  • < 100s: Generación rápida
  • 100-300s: Tiempo moderado
  • > 300s: Proceso lento (puede ser aceptable para conjuntos grandes)

Ejemplo: Tiempo total = 69.45s significa que el proceso completo de generación del conjunto balanceado tomó aproximadamente 1.16 minutos.

⏱️ Nota: Incluye el tiempo de generación sintética + cálculo de métricas.

🔒 Métricas de Privacidad

Estas métricas evalúan el riesgo de exposición de información sensible y la capacidad de un atacante para inferir datos de los pacientes a partir del conjunto de datos sintéticos.

Distancia al Registro Más Cercano (≥ 0)

¿Qué mide? La distancia promedio entre cada registro sintético y su registro más cercano en el conjunto de datos original.

Interpretación:

  • Cerca de 0: Los datos sintéticos son muy similares a los originales → ⚠️ ALTO RIESGO de privacidad
  • 0.01 - 0.05: Similaridad moderada → Riesgo moderado
  • > 0.05: Buena separación de los datos originales → ✅ BAJO RIESGO de privacidad

Ejemplo: Distancia promedio = 0.015 en SMOTE indica que los registros sintéticos están relativamente cerca de los originales, lo que podría implicar un riesgo de privacidad moderado.

🔬

Metodología: Calculada utilizando la Distancia de Gower, la cual maneja internamente tipos de datos mixtos, normalizando las variables numéricas y penalizando diferencias categóricas para devolver un índice estandarizado entre 0 y 1.

💡

Recomendación: Valores < 0.01 deben ser evaluados con precaución. Idealmente, buscar valores > 0.02 para garantizar la privacidad.

Copias Exactas (≥ 0)

¿Qué mide? Número de registros sintéticos que son copias idénticas de registros en el conjunto de datos original.

Interpretación:

  • 0: Ninguna copia exacta → ✅ SEGURO
  • 1 - 10: Pocas copias → Riesgo bajo
  • 11 - 50: Copias moderadas → ⚠️ RIESGO MODERADO
  • > 50: Muchas copias → 🔴 ALTO RIESGO de reidentificación

Ejemplo: SMOTE RSB* Refinado genera 76 copias exactas de 8817 registros (0.86%), lo que representa un riesgo de privacidad que debe ser evaluado.

⚠️

Importante: La presencia de copias exactas es uno de los indicadores más críticos de fuga de datos. Idealmente, este valor debe ser 0.

Ataque de Inferencia de Membresía (MIA) (0 - 1.0)

¿Qué mide? Tasa de éxito (medida en AUC-ROC) de un atacante para determinar si un registro específico pertenece al conjunto de datos original.

Interpretación:

  • 0.5: Aleatorio (ideal) → ✅ PRIVACIDAD ÓPTIMA
  • 0.5 - 0.55: Riesgo bajo
  • 0.55 - 0.6: Riesgo moderado → ⚠️ PRIVACIDAD CUESTIONABLE
  • > 0.6: Riesgo alto → 🔴 PRIVACIDAD COMPROMETIDA

Ejemplo: MIA = 0.553 significa que el atacante tiene un éxito ligeramente superior al 50% aleatorio, lo que indica un riesgo de privacidad bajo/moderado.

🎯

Objetivo: Buscar valores lo más cercanos a 0.5. Valores > 0.6 indican que el conjunto sintético no protege adecuadamente la privacidad.

📝 Resumen Rápido para Selección

🏆
Para seleccionar el mejor conjunto:
  • Priorizar TabDSFidelity más alto
  • Buscar AUC-ROC y F1 altos
  • Valores de divergencia JS y KL cercanos a 0
  • P-valor de KS lo más cercano a 1.0 posible (>0.05)
  • Correlación > 0.9
⚖️
Balance entre calidad y tiempo:
  • Un TabDSFidelity > 8.0 indica excelente calidad
  • Tiempos de generación < 200s son aceptables
  • La Correlación > 0.95 asegura buena preservación de relaciones
🔒
Para garantizar la privacidad:
  • MIA lo más cercano a 0.5 (ideal)
  • Copias exactas = 0 (ideal) o lo más bajo posible
  • Distancia promedio > 0.02 para buena separación
  • Evaluar balance entre calidad (TabDSFidelity) y privacidad (MIA)

📥 Descargar conjuntos y código Python

Formatos incluidos: CSV.

📚 Cómo citar este conjunto

Díaz Bastida, M., Pérez Vázquez, R. A., & Bello Pérez, R. (2026). High-Fidelity Synthetic Dataset for Online Shoppers Purchasing Intention (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32939282.v1