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).
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.
| 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 |
| 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 |
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).
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:
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.
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.
| 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 |
| Clase | Instancias | Porcentaje | Descripción |
|---|---|---|---|
| 0 (No compra) | 10,422 | 84.5% | Clase negativa (mayoritaria) |
| 1 (Compra) | 1,908 | 15.5% | Clase positiva (minoritaria) |
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
Este conjunto de datos es ampliamente utilizado para la predicción de intención de compra en comercio electrónico. Se recomienda:
La predicción de la intención de compra en tiempo real es fundamental para los negocios de comercio electrónico. Las aplicaciones incluyen:
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.
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
📊 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.
| 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 | Sí |
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 |
|---|---|
| 2 | Febrero (February) |
| 3 | Marzo (March) |
| 5 | Mayo (May) |
| 6 | Junio (June) |
| 7 | Julio (July) |
| 8 | Agosto (August) |
| 9 | Septiembre (September) |
| 10 | Octubre (October) |
| 11 | Noviembre (November) |
| 12 | Diciembre (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)
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)
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)
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)
Nota: Códigos preasignados para anonimización. Representan fuentes como búsqueda orgánica, anuncios, redes sociales, etc.
VisitorType
Categórica
| Código | Significado |
|---|---|
| 0 | New Visitor (Visitante nuevo) |
| 1 | Other (Otro) |
| 2 | Returning Visitor (Visitante recurrente) |
Importancia: Los visitantes recurrentes tienen mayor probabilidad de conversión que los nuevos visitantes.
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í.
ProductRelated_Duration - más tiempo en productos = mayor intención de compraAdministrative == 0 → Administrative_Duration = 0Administrative > 0 → Administrative_Duration > 0Informational == 0 → Informational_Duration = 0Informational > 0 → Informational_Duration > 0ProductRelated == 0 → ProductRelated_Duration = 0ProductRelated > 0 → ProductRelated_Duration > 0ProductRelated == 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)| Valor escala | 0.03 |
|---|---|
| Probabilidad Base | 0.1 |
| epochs | 500 |
|---|---|
| batch_size | 50 |
| generator_lr | 0.0002 |
| discriminator_lr | 0.0002 |
| pac | 10 |
| generator_dim | (256, 256) |
| discriminator_dim | (256, 256) |
| embedding_dim | 128 |
| l2scale | 1e-05 |
| epochs | 500 |
|---|---|
| batch_size | 50 |
| embedding_dim | 128 |
| compress_dims | (128, 128) |
| decompress_dims | (128, 128) |
| l2scale | 1e-5 |
| loss_factor | 2 |
| Random Seed | 42 |
|---|---|
| Python | 3.12.12 |
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.
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:
El mejor conjunto de cada etapa fue seleccionado mediante el índice TabDSFidelity.
| 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 |
| 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 |
| 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 |
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:
¿Qué mide? Capacidad del modelo para distinguir entre clases (Ej: mortalidad vs supervivencia).
Interpretación:
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.
¿Qué mide? Media armónica entre precisión y sensibilidad (recall).
Interpretación:
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).
¿Qué mide? Proporción de predicciones correctas sobre el total.
Interpretación:
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.
¿Qué mide? Calidad global del conjunto sintético comparado con el original.
Interpretació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).
¿Qué mide? Similitud entre las distribuciones de variables numéricas del conjunto sintético y el original.
Interpretación:
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.
¿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:
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.
¿Qué mide? Divergencia entre las distribuciones de variables categóricas del conjunto sintético y el original.
Interpretación:
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.
¿Qué mide? Preservación de las relaciones entre variables del conjunto original.
Interpretación:
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.
¿Qué mide? Tiempo total de ejecución del proceso de generación del conjunto.
Interpretación:
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.
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.
¿Qué mide? La distancia promedio entre cada registro sintético y su registro más cercano en el conjunto de datos original.
Interpretación:
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.
¿Qué mide? Número de registros sintéticos que son copias idénticas de registros en el conjunto de datos original.
Interpretació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.
¿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:
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.
Formatos incluidos: CSV.
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