Conjunto de datos de telecomunicaciones para la predicción del abandono de clientes. Integra información demográfica, servicios contratados y facturación.
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.85 | 0.92 | 0.89 | 147 |
| Clase 1 | 0.71 | 0.57 | 0.63 | 53 |
| Accuracy | 0.82 | |||
| Macro Avg | 0.78 | 0.74 | 0.76 | 200 |
| Weighted Avg | 0.82 | 0.82 | 0.82 | 200 |
| Clase | Precisión | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| Clase 0 | 0.84 | 0.81 | 0.83 | 147 |
| Clase 1 | 0.53 ⬇ -0.18 | 0.58 ⬆ +0.01 | 0.55 ⬇ -0.08 | 53 |
| Accuracy | 0.75 ⬇ -0.07 | |||
| Macro Avg | 0.68 ⬇ -0.10 | 0.70 ⬇ -0.04 | 0.69 ⬇ -0.07 | 200 |
| Weighted Avg | 0.76 ⬇ -0.06 | 0.75 ⬇ -0.07 | 0.75 ⬇ -0.07 | 200 |
El conjunto de datos de Rotación de Clientes de Telecomunicaciones (Telco Customer Churn) contiene información sobre 7,043 clientes de una empresa de telecomunicaciones. Cada fila representa un cliente y cada columna contiene atributos del cliente. El objetivo es predecir el comportamiento para retener a los clientes, analizando todos los datos relevantes y desarrollando programas de retención de clientes enfocados. La variable objetivo es Churn, que indica si el cliente abandonó la empresa en el último mes.
La rotación de clientes (churn) es uno de los desafíos más significativos en la industria de las telecomunicaciones. El costo de adquirir un nuevo cliente es 5 a 7 veces mayor que retener a uno existente. Este dataset permite:
El dataset incluye información sobre:
El dataset contiene 7,043 instancias con 21 atributos (20 variables predictoras y 1 variable objetivo). Las características son de tipo mixto (categóricas, binarias, numéricas).
| Variable | Tipo | Descripción | Categorías / Unidades |
|---|---|---|---|
| A. Identificador (A excluir del modelo) | |||
| customerID | ID | Identificador único del cliente | Sin valor predictivo. Excluir del modelo. |
| B. Datos Demográficos | |||
| gender | Categórica | Género del cliente | Male / Female |
| SeniorCitizen | Binaria | Indica si el cliente es adulto mayor | 1 = Sí, 0 = No |
| Partner | Categórica | ¿Tiene pareja? | Yes / No |
| Dependents | Categórica | ¿Tiene dependientes? | Yes / No |
| C. Servicios Contratados | |||
| PhoneService | Categórica | ¿Tiene servicio de teléfono? | Yes / No |
| MultipleLines | Categórica | ¿Tiene múltiples líneas? | Yes / No / No phone service |
| InternetService | Categórica | Tipo de servicio de internet | DSL / Fiber optic / No |
| OnlineSecurity | Categórica | Seguridad en línea | Yes / No / No internet service |
| OnlineBackup | Categórica | Respaldo en línea | Yes / No / No internet service |
| DeviceProtection | Categórica | Protección de dispositivos | Yes / No / No internet service |
| TechSupport | Categórica | Soporte técnico | Yes / No / No internet service |
| StreamingTV | Categórica | Streaming de TV | Yes / No / No internet service |
| StreamingMovies | Categórica | Streaming de películas | Yes / No / No internet service |
| D. Información de Cuenta | |||
| Tenure | Numérica | Meses que el cliente ha estado con la empresa | meses |
| Contract | Categórica | Tipo de contrato | Month-to-month / One year / Two year |
| PaperlessBilling | Categórica | Facturación electrónica | Yes / No |
| PaymentMethod | Categórica | Método de pago | Electronic check / Mailed check / Bank transfer / Credit card |
| MonthlyCharges | Numérica | Cargo mensual | unidades monetarias |
| TotalCharges | Numérica | Cargo total acumulado | unidades monetarias |
| E. Variable Objetivo | |||
| Churn | Binaria (Target) | Indica si el cliente abandonó la empresa en el último mes | Yes = Abandonó No = Permanece |
Este dataset fue originalmente publicado como parte de los IBM Sample Data Sets y ha sido actualizado por la comunidad de IBM:
Nueva versión de IBM (2019): Telco Customer Churn - IBM Community
El conjunto de datos ha sido anonimizado para proteger la privacidad de los clientes. La variable customerID es un identificador sin relación con información personal identificable. Restricción de confidencialidad: El uso de los datos está restringido a fines académicos y de investigación. La publicación de resultados debe limitarse a métricas de evaluación, resultados agregados y metodología del modelo, sin divulgación de información que permita la reidentificación de clientes.
Este conjunto de datos es ideal para predicción de rotación de clientes y análisis de retención. Se recomienda:
customerID del modelado por ser un identificador sin valor predictivoTenure, MonthlyCharges, TotalCharges)La predicción de rotación de clientes (churn prediction) es una de las aplicaciones más valiosas del aprendizaje automático en la industria de las telecomunicaciones. El costo de la rotación es significativo:
Este dataset ha sido fundamental para la investigación en análisis de retención de clientes y predicción de churn, demostrando el valor del análisis predictivo en la retención de clientes en el sector de telecomunicaciones.
Telco Customer Churn Dataset. IBM Sample Data Sets. Kaggle. https://www.kaggle.com/datasets/blastchar/telco-customer-churn
pd.to_numeric(..., errors='coerce') para manejar valores no numéricos (espacios en blanco).train_test_split con parámetro stratify para preservar exactamente la proporción original de clases (desbalance de churn).📊 Resultado: Dataset de 7,043 clientes de telecomunicaciones (con versión reducida estratificada de 1,000 ejemplos) con 19 variables predictoras (demográficas, de servicios contratados, de facturación y de antigüedad) y 1 variable objetivo binaria (Churn). Desbalance moderado (~73% clientes retenidos / ~27% clientes que se marcharon) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de retención de clientes y predicción de abandono en telecomunicaciones, donde factores como tipo de contrato, servicios contratados, cargos mensuales y antigüedad son determinantes.
📱 Fuente: Telco Customer Churn Dataset (IBM Watson Analytics) - Datos de clientes de una compañía de telecomunicaciones.
📊 Variables de servicios: PhoneService, MultipleLines, InternetService, OnlineSecurity, OnlineBackup, DeviceProtection, TechSupport, StreamingTV, StreamingMovies.
📋 Variables de contrato y facturación: Contract (Mensual, Un año, Dos años), PaymentMethod, PaperlessBilling, MonthlyCharges, TotalCharges.
👤 Variables demográficas: gender, SeniorCitizen, Partner, Dependents, tenure (meses de antigüedad).
📁 Leyenda disponible: Archivo leyenda_telco_churn.txt con mapeo completo de variables binarias, nominales (10 variables codificadas) y descripción de variables numéricas.
🎯 Variable objetivo: Churn (1 = Cliente se marchó, 0 = Cliente retenido).
🧹 Limpieza aplicada: Eliminación de customerID, corrección de TotalCharges (conversión y imputación con 0), codificación de target, mapeo de variables binarias, Label Encoding de 10 variables nominales, reducción estratificada a 1,000 ejemplos.
| Variable | Descripción de Telecomunicaciones | Tipo | Rango / Categorías | Unidad | ¿Objetivo? |
|---|---|---|---|---|---|
MultipleLines |
Servicio de líneas telefónicas múltiples | Categórico | 0: No, 1: Sin servicio telefónico, 2: Sí | N/A | No |
InternetService |
Tipo de servicio de Internet | Categórico | 0: DSL, 1: Fibra óptica, 2: Sin Internet | N/A | No |
OnlineSecurity |
Servicio de seguridad en línea | Categórico | 0: No, 1: Sin Internet, 2: Sí | N/A | No |
OnlineBackup |
Servicio de respaldo en línea | Categórico | 0: No, 1: Sin Internet, 2: Sí | N/A | No |
DeviceProtection |
Servicio de protección de dispositivos | Categórico | 0: No, 1: Sin Internet, 2: Sí | N/A | No |
TechSupport |
Servicio de soporte técnico | Categórico | 0: No, 1: Sin Internet, 2: Sí | N/A | No |
StreamingTV |
Servicio de TV por streaming | Categórico | 0: No, 1: Sin Internet, 2: Sí | N/A | No |
StreamingMovies |
Servicio de películas por streaming | Categórico | 0: No, 1: Sin Internet, 2: Sí | N/A | No |
Contract |
Tipo de contrato (duración) | Categórico | 0: Mes a mes, 1: 1 año, 2: 2 años | N/A | No |
PaymentMethod |
Método de pago del cliente | Categórico | 0: Transferencia bancaria, 1: Tarjeta crédito, 2: Cheque electrónico, 3: Cheque postal | N/A | No |
tenure |
Antigüedad del cliente en la compañía | Numérico | 0 - 72 | meses | No |
MonthlyCharges |
Cargo mensual del cliente | Numérico | 18.95 - 118.75 | moneda | No |
TotalCharges |
Cargo total acumulado del cliente | Numérico | 0 - 8,672.45 | moneda | No |
gender |
Género del cliente | Binario | 0: Femenino, 1: Masculino | N/A | No |
SeniorCitizen |
Cliente de la tercera edad (≥ 65 años) | Binario | 0: No, 1: Sí | N/A | No |
Partner |
Cliente tiene pareja/persona significativa | Binario | 0: No, 1: Sí | N/A | No |
Dependents |
Cliente tiene personas a cargo | Binario | 0: No, 1: Sí | N/A | No |
PhoneService |
Cliente tiene servicio telefónico | Binario | 0: No, 1: Sí | N/A | No |
PaperlessBilling |
Cliente usa facturación electrónica | Binario | 0: No, 1: Sí | N/A | No |
Churn |
Abandono del cliente (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 Abandono de Clientes de Telecomunicaciones (Telco Churn). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de retención de clientes.
Variables de servicios contratados
Dependencia condicional: Para variables de servicios en línea (OnlineSecurity, OnlineBackup, etc.), el código 1 ("Sin Internet") solo aplica cuando InternetService = 2.
Contract
Categórica (Ordinal)
| Código | Significado | Riesgo Churn |
|---|---|---|
| 0 | Month-to-month (Mes a mes) | ✗ Muy Alto |
| 1 | One year (1 año) | ✓ Bajo |
| 2 | Two year (2 años) | ✓ Muy Bajo |
Factor clave: Los contratos mes a mes tienen la tasa de abandono más alta. Contratos a largo plazo reducen significativamente el churn.
PaymentMethod
Categórica (Nominal)
| Código | Significado | Riesgo Churn |
|---|---|---|
| 0 | Bank transfer (Transferencia bancaria automática) | ✓ Bajo |
| 1 | Credit card (Tarjeta de crédito automática) | ✓ Bajo |
| 2 | Electronic check (Cheque electrónico) | ✗ Alto |
| 3 | Mailed check (Cheque postal) | ⚠ Moderado |
Observación: Los métodos de pago automáticos (transferencia bancaria y tarjeta de crédito) tienen menor churn que métodos manuales.
Formato común: 0 = No / Ausencia, 1 = Sí / Presencia
gender
Género (0: Femenino, 1: Masculino)
SeniorCitizen
Tercera edad ≥65 años (0: No, 1: Sí)
Partner
Tiene pareja (0: No, 1: Sí)
Dependents
Tiene dependientes a cargo (0: No, 1: Sí)
PhoneService
Servicio telefónico (0: No, 1: Sí)
PaperlessBilling
Facturación electrónica (0: No, 1: Sí)
Churn
🎯 Variable Objetivo: Abandono (0: No, 1: Sí)
Nota: Todas las variables binarias están codificadas como 0 = No y 1 = Sí.
Contract - Clientes con contrato mes a mes (0) tienen 3-4x más churn que los de 2 añostenure < 12 meses es período de alto riesgo de abandonoOnlineSecurity = 2 y TechSupport = 2 reducen significativamente el churnPaperlessBilling = 1 se asocia con mayor churn (clientes más digitales)PaymentMethod = 2 (cheque electrónico) es el método con mayor churnStreamingTV = 2 y StreamingMovies = 2 pueden aumentar el churn si no hay satisfacciónPhoneService == 0 → MultipleLines = 1 (Sin servicio telefónico → múltiples líneas = No)PhoneService == 1 → MultipleLines ≠ 1 (Con servicio telefónico → múltiples líneas ≠ No)InternetService == 2 (Fibra óptica) → OnlineSecurity = 1InternetService == 2 → OnlineBackup = 1InternetService == 2 → DeviceProtection = 1InternetService == 2 → TechSupport = 1InternetService == 2 → StreamingTV = 1InternetService == 2 → StreamingMovies = 1InternetService ≠ 2 → TechSupport ≠ 1InternetService ≠ 2 → StreamingTV ≠ 1InternetService == 1 (DSL) → MonthlyCharges > 65InternetService == 2 (No) → MonthlyCharges < 30tenure == 1 → TotalCharges ≤ 200tenure == 0 → TotalCharges = 0Contract == 2 (Dos años) → tenure > 0PaymentMethod == 2 (Electrónico) → PaperlessBilling = 1PhoneService e InternetService son mutuamente excluyentes (No ambos en estado "No")Contract == 2 (Dos años) → Churn = 0SeniorCitizen == 1 → InternetService ≠ 0 (Tiene internet)StreamingTV == 2 (Sí) → StreamingMovies = 2 (Sí)| 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 | 882 | 0.809 | 0.759 | 0.760 | 5.246 | 0.166 | 0.072 | 0.016 | 0.974 | 66.356 | 0 | 882 | 0.510 | |
| Smote | 1 | 882 | 0.823 | 0.762 | 0.755 | 5.909 | 0.269 | 0.131 | 0.021 | 0.960 | 66.961 | 0.033 | 617 | 0.525 | |
| Borderline SMOTE | 1 | 882 | 0.806 | 0.766 | 0.760 | 4.704 | 0.270 | 0.247 | 0.018 | 0.966 | 58.970 | 0.036 | 620 | 0.508 | |
| ADASYN | 1.023 | 872 | 0.813 | 0.777 | 0.770 | 6.743 | 0.262 | 0.394 | 0.018 | 0.964 | 56.737 | 0.034 | 610 | 0.507 | 🏆 |
| SMOTE RSB* Adaptado | 1.387 | 759 | 0.815 | 0.760 | 0.755 | 6.101 | 0.210 | 0.472 | 0.007 | 0.983 | 53.827 | 0.022 | 612 | 0.514 | |
| SMOTE RSB* Adaptado + Reglas | 1.387 | 759 | 0.810 | 0.740 | 0.740 | 3.916 | 0.208 | 0.497 | 0.007 | 0.983 | 54.071 | 0.021 | 611 | 0.533 | |
| OOF PSO para Balanceo | 1.313 | 777 | 0.820 | 0.745 | 0.770 | 4.981 | 0.264 | 0.005 | 0.024 | 0.877 | 64.230 | 0.048 | 600 | 0.519 | |
| OOF PSO para Balanceo + Reglas | 1.018 | 882 | 0.824 | 0.767 | 0.790 | 5.512 | 0.349 | 0.000 | 0.324 | 0.783 | 66.545 | 0.102 | 182 | 0.513 |
| 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.051 | 9957 | 0.795 | 0.771 | 0.765 | 9.458 | 0.473 | 0.306 | 0.014 | 0.947 | 82.357 | 0.851 | 0 | 0.530 | 🏆 |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.294 | 9957 | 0.797 | 0.747 | 0.745 | 8.128 | 0.473 | 0.306 | 0.267 | 0.934 | 224.472 | 0.851 | 0 | 0.510 | |
| CTGAN | 1.010 | 10000 | 0.788 | 0.740 | 0.725 | 5.527 | 0.559 | 0.000 | 0.045 | 0.910 | 443.741 | 0.149 | 0 | 0.542 | |
| CTGAN + Reglas del Dominio | 1.286 | 10000 | 0.783 | 0.730 | 0.715 | 3.944 | 0.559 | 0.000 | 0.285 | 0.895 | 588.398 | 0.170 | 0 | 0.511 | |
| TVAE | 1.096 | 9998 | 0.780 | 0.744 | 0.740 | 4.914 | 0.640 | 0.033 | 0.033 | 0.935 | 209.954 | 0.103 | 0 | 0.501 | |
| TVAE + Reglas del Dominio | 1.059 | 9998 | 0.780 | 0.731 | 0.725 | 3.727 | 0.640 | 0.014 | 0.279 | 0.919 | 351.019 | 0.127 | 0 | 0.521 | |
| OOF PSO para Aumento | 1 | 10000 | 0.791 | 0.703 | 0.685 | 2.715 | 0.770 | 0.000 | 0.189 | 0.581 | 130.270 | 0.128 | 1 | 0.516 | |
| OOF PSO para Aumento + Reglas | 1 | 10000 | 0.798 | 0.684 | 0.665 | 2.095 | 0.770 | 0.000 | 0.522 | 0.640 | 270.835 | 0.148 | 0 | 0.517 | |
| SMOTE RSB* Refinado | 1.000 | 9985 | 0.799 | 0.754 | 0.750 | 9.264 | 0.476 | 0.366 | 0.014 | 0.948 | 83.197 | 0.801 | 0 | 0.538 | |
| SMOTE RSB* Refinado + Reglas | 1.250 | 9985 | 0.796 | 0.720 | 0.715 | 6.949 | 0.475 | 0.362 | 0.269 | 0.936 | 227.085 | 0.801 | 0 | 0.473 |
| 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.049 | 10829 | 0.783 | 0.741 | 0.735 | 6.082 | 0.452 | 0.308 | 0.013 | 0.950 | 155.832 | 0.851 | 0 | 0.525 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.270 | 10829 | 0.794 | 0.770 | 0.765 | 7.844 | 0.452 | 0.308 | 0.060 | 0.938 | 295.980 | 0.851 | 0 | 0.524 | |
| CTGAN | 1.011 | 10872 | 0.762 | 0.723 | 0.710 | 2.367 | 0.517 | 0.000 | 0.040 | 0.916 | 519.658 | 0.140 | 124 | 0.510 | |
| CTGAN + Reglas del Dominio | 1.263 | 10872 | 0.772 | 0.721 | 0.710 | 2.540 | 0.517 | 0.000 | 0.075 | 0.902 | 661.931 | 0.160 | 123 | 0.530 | |
| TVAE | 1.086 | 10870 | 0.768 | 0.722 | 0.715 | 2.663 | 0.588 | 0.056 | 0.032 | 0.938 | 282.404 | 0.094 | 123 | 0.483 | |
| TVAE + Reglas del Dominio | 1.052 | 10870 | 0.758 | 0.730 | 0.725 | 2.414 | 0.588 | 0.026 | 0.072 | 0.925 | 423.102 | 0.116 | 123 | 0.464 | |
| OOF PSO para Aumento | 1.002 | 10872 | 0.799 | 0.756 | 0.745 | 3.963 | 0.705 | 0.000 | 0.144 | 0.612 | 203.361 | 0.119 | 124 | 0.506 | |
| OOF PSO para Aumento + Reglas | 1.002 | 10872 | 0.799 | 0.751 | 0.745 | 3.615 | 0.705 | 0.000 | 0.250 | 0.674 | 340.979 | 0.137 | 123 | 0.524 | |
| SMOTE RSB* Refinado | 1.002 | 10857 | 0.800 | 0.757 | 0.755 | 7.795 | 0.455 | 0.364 | 0.014 | 0.951 | 156.286 | 0.801 | 0 | 0.529 | |
| SMOTE RSB* Refinado + Reglas | 1.230 | 10857 | 0.805 | 0.796 | 0.795 | 9.737 | 0.455 | 0.362 | 0.062 | 0.940 | 302.277 | 0.801 | 0 | 0.473 | 🏆 |
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 Customer Churn Prediction in Telecommunications (Version 0). figshare. https://doi.org/10.6084/m9.figshare.32946392