Registro clínico de 299 pacientes con insuficiencia cardíaca destinado a la predicción binaria de mortalidad (DEATH_EVENT). Integra 13 variables que abarcan demografía/estilo de vida (edad, tabaco), comorbilidades binarias (anemia, diabetes, hipertensión) y biomarcadores (plaquetas, sodio, CPK).
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.68 | 1.00 | 0.81 | 41 |
| Clase 1 | 0.00 | 0.00 | 0.00 | 19 |
| Accuracy | 0.68 | |||
| Macro Avg | 0.34 | 0.50 | 0.41 | 60 |
| Weighted Avg | 0.47 | 0.68 | 0.55 | 60 |
| Clase | Precisión | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| Clase 0 | 0.78 | 0.88 | 0.83 | 41 |
| Clase 1 | 0.64 ⬆ +0.64 | 0.47 ⬆ +0.47 | 0.55 ⬆ +0.55 | 19 |
| Accuracy | 0.75 ⬆ +0.07 | |||
| Macro Avg | 0.71 ⬆ +0.37 | 0.68 ⬆ +0.18 | 0.69 ⬆ +0.28 | 60 |
| Weighted Avg | 0.74 ⬆ +0.27 | 0.75 ⬆ +0.07 | 0.74 ⬆ +0.19 | 60 |
Las enfermedades cardiovasculares (ECV) son la principal causa de muerte a nivel mundial, con aproximadamente 17.9 millones de muertes anuales, lo que representa el 31% de todas las muertes en el mundo. La insuficiencia cardíaca es un evento común causado por las ECV y este conjunto de datos contiene 12 características que pueden utilizarse para predecir la mortalidad por insuficiencia cardíaca. El conjunto de datos incluye información clínica de pacientes con insuficiencia cardíaca, con el objetivo de identificar factores predictivos de supervivencia y permitir el desarrollo de modelos de aprendizaje automático para la detección temprana y el manejo de pacientes de alto riesgo.
Este conjunto de datos fue utilizado en el estudio de Chicco y Jurman (2020), publicado en BMC Medical Informatics and Decision Making. Los investigadores demostraron que el aprendizaje automático puede predecir la supervivencia de pacientes con insuficiencia cardíaca utilizando únicamente la creatinina sérica y la fracción de eyección como predictores clave, logrando una alta precisión. El dataset fue recolectado de registros médicos de pacientes con insuficiencia cardíaca, incluyendo variables clínicas relevantes como edad, anemia, diabetes, hipertensión, función renal, electrolitos, y hábitos de estilo de vida.
La mayoría de las enfermedades cardiovasculares pueden prevenirse abordando factores de riesgo conductuales como:
Las personas con enfermedades cardiovasculares o con alto riesgo cardiovascular (debido a la presencia de uno o más factores de riesgo como hipertensión, diabetes, hiperlipidemia o enfermedad ya establecida) necesitan detección temprana y manejo, donde un modelo de aprendizaje automático puede ser de gran ayuda.
El dataset contiene 299 instancias con 12 atributos (11 variables predictoras y 1 variable objetivo). Las características son de tipo mixto (numéricas continuas y enteras, y binarias). El conjunto no presenta valores faltantes.
| Variable | Tipo | Descripción | Unidades |
|---|---|---|---|
| age | Numérico | Edad del paciente | años |
| anaemia | Binaria | Anemia (disminución de glóbulos rojos): 0 = No, 1 = Sí | - |
| creatinine_phosphokinase | Numérico | Nivel de creatinina fosfoquinasa (CPK) en sangre | mcg/L |
| diabetes | Binaria | Diabetes mellitus: 0 = No, 1 = Sí | - |
| ejection_fraction | Numérico | Fracción de eyección del ventrículo izquierdo (porcentaje de sangre expulsada) | % |
| high_blood_pressure | Binaria | Hipertensión arterial: 0 = No, 1 = Sí | - |
| platelets | Numérico | Conteo de plaquetas en sangre | kiloplaquetas/mL |
| serum_creatinine | Numérico | Nivel de creatinina sérica (indicador de función renal) | mg/dL |
| serum_sodium | Numérico | Nivel de sodio sérico | mEq/L |
| sex | Binaria | Sexo del paciente: 0 = Mujer, 1 = Hombre | - |
| smoking | Binaria | Tabaquismo: 0 = No, 1 = Sí | - |
| time | Numérico | Período de seguimiento del paciente | días |
| DEATH_EVENT | Binaria (Target) | Evento de muerte durante el seguimiento: 0 = Sobrevive, 1 = Fallece | - |
El artículo fundamental que describe el uso de aprendizaje automático para predecir la supervivencia de pacientes con insuficiencia cardíaca es:
Chicco, D., & Jurman, G. (2020). Machine learning can predict survival of patients with heart failure from serum creatinine and ejection fraction alone. BMC Medical Informatics and Decision Making, 20, 16. https://doi.org/10.1186/s12911-020-1023-5
El conjunto de datos ha sido anonimizado para proteger la privacidad de los pacientes. No contiene información personal identificable como nombres, direcciones o números de identificación. La licencia CC BY 4.0 permite el uso, distribución y adaptación del conjunto de datos con el debido reconocimiento a los autores. Restricción de confidencialidad: En cumplimiento de los protocolos de privacidad, 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 pacientes.
Este conjunto de datos es ampliamente utilizado para la predicción de mortalidad por insuficiencia cardíaca. Se recomienda:
time (días de seguimiento) como información temporal para análisis de supervivencia o como característica adicionalDEATH_EVENT está codificada como 0 = Sobrevive, 1 = Falleceage, creatinine_phosphokinase, ejection_fraction, platelets, serum_creatinine, serum_sodium)anaemia, diabetes, high_blood_pressure, sex, smoking) pueden utilizarse directamente como 0/1La insuficiencia cardíaca es una condición crónica y progresiva que afecta a aproximadamente 64 millones de personas en todo el mundo. Es la principal causa de hospitalización en personas mayores de 65 años y tiene una tasa de mortalidad a 5 años del 50%, comparable a la de muchos cánceres. La predicción temprana de la mortalidad por insuficiencia cardíaca permite:
El estudio de Chicco y Jurman (2020) demostró que dos simples biomarcadores (creatinina sérica y fracción de eyección) pueden predecir la supervivencia con alta precisión, lo que sugiere que modelos de aprendizaje automático basados en datos clínicos rutinarios pueden ser herramientas valiosas para la toma de decisiones clínicas en entornos con recursos limitados.
Chicco, D., & Jurman, G. (2020). Machine learning can predict survival of patients with heart failure from serum creatinine and ejection fraction alone. BMC Medical Informatics and Decision Making, 20, 16. https://doi.org/10.1186/s12911-020-1023-5
📊 Resultado: Dataset de 299 pacientes con 12 variables predictoras (mixtas: 5 binarias/categóricas codificadas, 7 numéricas continuas) y 1 variable objetivo binaria (DEATH_EVENT). Desbalance moderado (~68% sobrevivientes / ~32% fallecidos) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de insuficiencia cardíaca con variables clínicas de alta relevancia pronóstica.
🏥 Fuente: Heart Failure Clinical Records Dataset (UCI Machine Learning Repository) - Publicado por Davide Chicco y Giuseppe Jurman (2020).
📋 Variables clínicas clave: Edad, anemia, CPK, diabetes, fracción de eyección, presión arterial alta, plaquetas, creatinina sérica, sodio sérico, sexo, tabaquismo, tiempo de seguimiento.
📁 Leyenda disponible: Archivo leyenda_heart_failure.txt con descripción completa de la variable objetivo y semántica de todas las variables predictoras.
🎯 Variable objetivo: DEATH_EVENT (1 = Fallecimiento durante el seguimiento, 0 = Supervivencia).
⏱️ Periodo de seguimiento: Variable time indica los días de seguimiento clínico para cada paciente.
| Variable | Descripción Clínica | Tipo | Rango / Categorías | Unidad | ¿Objetivo? |
|---|---|---|---|---|---|
age |
Edad del paciente | Numérico | 40 - 95 | años | No |
creatinine_phosphokinase |
Nivel de Creatinina Fosfoquinasa (CPK) en sangre | Numérico | 47 - 7,861 | mcg/L | No |
ejection_fraction |
Fracción de eyección del ventrículo izquierdo | Numérico | 15 - 65 | % | No |
platelets |
Conteo de plaquetas en sangre | Numérico | 25,100 - 850,000 | kiloplaquetas/mL | No |
serum_creatinine |
Nivel de creatinina sérica (función renal) | Numérico | 0.5 - 6.8 | mg/dL | No |
serum_sodium |
Nivel de sodio sérico (equilibrio electrolítico) | Numérico | 113 - 146 | mEq/L | No |
time |
Periodo de seguimiento clínico del paciente | Numérico | 6 - 280 | días | No |
anaemia |
Diagnóstico de anemia (disminución de glóbulos rojos o hemoglobina) | Binario | 0: No, 1: Sí | N/A | No |
diabetes |
Diagnóstico de diabetes mellitus | Binario | 0: No, 1: Sí | N/A | No |
high_blood_pressure |
Diagnóstico de hipertensión arterial | Binario | 0: No, 1: Sí | N/A | No |
sex |
Género del paciente | Binario | 0: Femenino, 1: Masculino | N/A | No |
smoking |
Hábito tabáquico | Binario | 0: No, 1: Sí | N/A | No |
DEATH_EVENT |
Mortalidad durante el seguimiento (objetivo) | Binario | 0: Sobrevivió, 1: Falleció | 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 Insuficiencia Cardíaca (Heart Failure Clinical Records). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados clínicos.
DEATH_EVENT
🎯 Objetivo
| Código | Significado |
|---|---|
| 0 | Sobrevivió - Paciente vivo al final del seguimiento (Clase Mayoritaria ~68%) |
| 1 | Falleció - Paciente falleció durante el seguimiento (Clase Minoritaria ~32%) |
Variable Objetivo: El modelo debe predecir la mortalidad en pacientes con insuficiencia cardíaca.
Formato común: 0 = No / Ausencia, 1 = Sí / Presencia
anaemia
Anemia (0: No, 1: Sí)
diabetes
Diabetes mellitus (0: No, 1: Sí)
high_blood_pressure
Hipertensión arterial (0: No, 1: Sí)
sex
Género (0: Femenino, 1: Masculino)
smoking
Hábito tabáquico (0: No, 1: Sí)
DEATH_EVENT
🎯 Variable Objetivo: Mortalidad (0: Sobrevivió, 1: Falleció)
Nota: Todas las variables binarias están codificadas como 0 = No y 1 = Sí.
ejection_fraction (fracción de eyección) es el predictor más críticotime no debe usarse como predictor en modelos de clasificaciónDEATH_EVENT == 1 → time ≤ 285 (Fallecimiento → seguimiento limitado)DEATH_EVENT == 0 → time > 5 (Supervivencia → seguimiento mínimo)sex == 0 (Mujer) → smoking = 0 (Contexto: Pakistán)serum_creatinine > 3.0 → anaemia = 1 (Fallo renal → anemia)platelets > 600000 → anaemia = 1 (Plaquetas altas → anemia)creatinine_phosphokinase > 2500 → serum_creatinine ≥ 0.8 (CPK masiva → daño renal)serum_sodium < 125 → high_blood_pressure = 0 (Hiponatremia → no HBP)high_blood_pressure == 1 → age ≥ 18 (HTA → mayoría de edad)smoking == 1 → age ≥ 14 (Tabaquismo → edad adolescente)ejection_fraction > 55 → (high_blood_pressure = 1) OR (anaemia = 1)serum_creatinine > 2.0 → (diabetes = 1) OR (high_blood_pressure = 1)age > 82 → (anaemia = 1) OR (high_blood_pressure = 1) OR (diabetes = 1)age < 50 → (smoking = 1) OR (diabetes = 1) OR (high_blood_pressure = 1)diabetes == 1 → (high_blood_pressure = 1) OR (anaemia = 1)ejection_fraction < 25 → (high_blood_pressure = 1) OR (anaemia = 1)| Valor escala | 0.03 |
|---|---|
| Probabilidad Base | 0.1 |
| epochs | 500 |
|---|---|
| batch_size | 20 |
| generator_lr | 0.0002 |
| discriminator_lr | 0.0002 |
| pac | 2 |
| generator_dim | (128, 128) |
| discriminator_dim | (128, 128) |
| embedding_dim | 128 |
| l2scale | 1e-05 |
| epochs | 400 |
|---|---|
| batch_size | 50 |
| embedding_dim | 64 |
| compress_dims | (64, 64) |
| decompress_dims | (64, 64) |
| 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 | 242 | 0.925 | 0.833 | 0.833 | 5.542 | 0.108 | 0.804 | 0.011 | 0.975 | 50.564 | 0 | 242 | 0.457 | |
| Smote | 1 | 242 | 0.932 | 0.851 | 0.850 | 5.468 | 0.255 | 0.642 | 0.014 | 0.966 | 48.503 | 0.018 | 179 | 0.490 | |
| Borderline SMOTE | 1 | 242 | 0.920 | 0.820 | 0.817 | 3.488 | 0.252 | 0.614 | 0.016 | 0.961 | 48.921 | 0.018 | 179 | 0.500 | |
| ADASYN | 1.025 | 245 | 0.920 | 0.800 | 0.800 | 2.732 | 0.253 | 0.610 | 0.018 | 0.965 | 48.565 | 0.020 | 179 | 0.524 | |
| SMOTE RSB* Adaptado | 1.043 | 237 | 0.912 | 0.790 | 0.783 | 2.214 | 0.221 | 0.705 | 0.011 | 0.979 | 46.244 | 0.015 | 179 | 0.497 | |
| SMOTE RSB* Adaptado + Reglas | 1.043 | 237 | 0.922 | 0.837 | 0.833 | 4.723 | 0.226 | 0.746 | 0.010 | 0.977 | 45.811 | 0.015 | 179 | 0.484 | |
| OOF PSO para Balanceo | 1 | 242 | 0.920 | 0.812 | 0.817 | 1.549 | 0.280 | 0.029 | 0.027 | 0.771 | 55.136 | 0.059 | 179 | 0.440 | |
| OOF PSO para Balanceo + Reglas | 1 | 242 | 0.953 | 0.882 | 0.883 | 6.578 | 0.269 | 0.137 | 0.036 | 0.842 | 54.414 | 0.057 | 130 | 0.433 | 🏆 |
| 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.019 | 8062 | 0.926 | 0.803 | 0.800 | 6.166 | 0.481 | 0.053 | 0.034 | 0.850 | 73.917 | 0.495 | 0 | 0.398 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.019 | 8062 | 0.917 | 0.884 | 0.883 | 7.288 | 0.481 | 0.053 | 0.041 | 0.848 | 196.668 | 0.495 | 0 | 0.392 | |
| CTGAN | 1.068 | 10000 | 0.876 | 0.815 | 0.817 | 5.879 | 0.408 | 0.030 | 0.032 | 0.871 | 251.039 | 0.092 | 0 | 0.465 | |
| CTGAN + Reglas del Dominio | 1.068 | 10000 | 0.901 | 0.867 | 0.867 | 6.927 | 0.408 | 0.030 | 0.044 | 0.864 | 396.591 | 0.091 | 0 | 0.465 | |
| TVAE | 1.181 | 10000 | 0.898 | 0.851 | 0.850 | 5.970 | 0.600 | 0.076 | 0.080 | 0.792 | 150.477 | 0.082 | 0 | 0.475 | |
| TVAE + Reglas del Dominio | 1.181 | 10000 | 0.906 | 0.835 | 0.833 | 5.830 | 0.600 | 0.076 | 0.089 | 0.791 | 297.393 | 0.082 | 0 | 0.471 | |
| OOF PSO para Aumento | 1 | 10000 | 0.810 | 0.555 | 0.683 | 0.000 | 0.737 | 0.000 | 0.145 | 0.589 | 125.301 | 0.192 | 0 | 0.520 | |
| OOF PSO para Aumento + Reglas | 1 | 10000 | 0.822 | 0.592 | 0.700 | 0.791 | 0.737 | 0.000 | 0.191 | 0.667 | 269.290 | 0.179 | 0 | 0.524 | |
| SMOTE RSB* Refinado | 1.001 | 7901 | 0.953 | 0.885 | 0.883 | 8.190 | 0.493 | 0.097 | 0.036 | 0.844 | 68.196 | 0.421 | 0 | 0.433 | |
| SMOTE RSB* Refinado + Reglas | 1.001 | 7901 | 0.969 | 0.901 | 0.900 | 8.630 | 0.493 | 0.097 | 0.042 | 0.842 | 186.973 | 0.421 | 0 | 0.455 | 🏆 |
| 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.018 | 8304 | 0.920 | 0.851 | 0.850 | 5.945 | 0.474 | 0.055 | 0.034 | 0.850 | 135.654 | 0.499 | 0 | 0.368 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.018 | 8304 | 0.920 | 0.851 | 0.850 | 5.955 | 0.474 | 0.055 | 0.041 | 0.848 | 258.140 | 0.499 | 0 | 0.372 | |
| CTGAN | 1.067 | 10242 | 0.916 | 0.851 | 0.850 | 5.936 | 0.402 | 0.027 | 0.032 | 0.871 | 324.161 | 0.091 | 29 | 0.465 | |
| CTGAN + Reglas del Dominio | 1.067 | 10242 | 0.902 | 0.800 | 0.800 | 3.773 | 0.402 | 0.027 | 0.044 | 0.864 | 472.169 | 0.090 | 29 | 0.468 | |
| TVAE | 1.176 | 10242 | 0.912 | 0.867 | 0.867 | 5.767 | 0.586 | 0.075 | 0.079 | 0.793 | 224.519 | 0.083 | 29 | 0.432 | |
| TVAE + Reglas del Dominio | 1.176 | 10242 | 0.906 | 0.851 | 0.850 | 5.029 | 0.586 | 0.075 | 0.087 | 0.793 | 371.041 | 0.084 | 29 | 0.446 | |
| OOF PSO para Aumento | 1 | 10242 | 0.897 | 0.760 | 0.783 | 0.412 | 0.718 | 0.000 | 0.140 | 0.595 | 198.351 | 0.191 | 29 | 0.403 | |
| OOF PSO para Aumento + Reglas | 1 | 10242 | 0.879 | 0.823 | 0.833 | 2.285 | 0.718 | 0.000 | 0.184 | 0.672 | 338.219 | 0.178 | 29 | 0.395 | |
| SMOTE RSB* Refinado | 1.001 | 8143 | 0.959 | 0.885 | 0.883 | 8.526 | 0.485 | 0.098 | 0.036 | 0.844 | 128.093 | 0.420 | 0 | 0.428 | |
| SMOTE RSB* Refinado + Reglas | 1.001 | 8143 | 0.963 | 0.885 | 0.883 | 8.625 | 0.485 | 0.098 | 0.042 | 0.842 | 246.393 | 0.420 | 0 | 0.416 | 🏆 |
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 Heart Failure Clinical Records (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32934095.v1