Dataset estructurado para detección anticipada de sepsis (6h antes). Cada instancia representa una hora de estancia en UCI con 41 variables (signos vitales, laboratorio, demografía).
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.99 | 0.94 | 0.96 | 197 |
| Clase 1 | 0.08 | 0.33 | 0.12 | 3 |
| Accuracy | 0.93 | |||
| Macro Avg | 0.53 | 0.64 | 0.54 | 200 |
| Weighted Avg | 0.98 | 0.93 | 0.95 | 200 |
| Clase | Precisión | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| Clase 0 | 0.99 | 0.99 | 0.99 | 197 |
| Clase 1 | 0.67 ⬆ +0.59 | 0.67 ⬆ +0.34 | 0.67 ⬆ +0.55 | 3 |
| Accuracy | 0.99 ⬆ +0.06 | |||
| Macro Avg | 0.83 ⬆ +0.30 | 0.83 ⬆ +0.19 | 0.83 ⬆ +0.29 | 200 |
| Weighted Avg | 0.99 ⬆ +0.01 | 0.99 ⬆ +0.06 | 0.99 ⬆ +0.04 | 200 |
El conjunto de datos está diseñado para la predicción temprana de sepsis, una condición potencialmente mortal que requiere intervención oportuna. El objetivo principal es predecir la sepsis con 6 horas de anticipación antes del diagnóstico clínico. La predicción temprana puede salvar vidas, mientras que las predicciones tardías o los falsos positivos consumen recursos hospitalarios limitados. Cada instancia representa una medición horaria de pacientes en unidades de cuidados intensivos (UCI), integrando tres dimensiones de información: 1) Signos vitales (frecuencia cardíaca, oximetría, temperatura, presión arterial, frecuencia respiratoria, EtCO2); 2) Valores de laboratorio (bicarbonato, pH, gases arteriales, enzimas hepáticas, electrolitos, lactato, hematología); y 3) Datos demográficos y administrativos (edad, género, unidad UCI, tiempo de admisión).
La sepsis es una de las principales causas de mortalidad hospitalaria a nivel mundial. Su detección temprana es crítica para iniciar tratamientos como antibióticos y fluidos intravenosos de manera oportuna. Sin embargo, el diagnóstico temprano sigue siendo un desafío clínico significativo debido a la presentación inespecífica de los síntomas iniciales. Este conjunto de datos fue desarrollado para desafiar a la comunidad de investigación a crear modelos predictivos que identifiquen la sepsis hasta 6 horas antes de su manifestación clínica, equilibrando la sensibilidad (detección temprana) con la especificidad (minimización de falsas alarmas).
El desafío incorpora una función de utilidad que recompensa las predicciones tempranas y penaliza tanto las predicciones tardías como las falsas alarmas. Este enfoque refleja el equilibrio clínico entre:
El diseño de la función de utilidad incentiva a los modelos a predecir la sepsis dentro de la ventana de 6 horas previas al diagnóstico clínico, minimizando los falsos positivos.
Los datos han sido anonimizados para proteger la identidad de los pacientes. Se han eliminado todos los identificadores personales y fechas para cumplir con los estándares de privacidad. Restricción de confidencialidad: En estricto 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 está diseñado para tareas de clasificación y detección temprana. Cada instancia representa una medición horaria, por lo que los datos son de naturaleza temporal y pueden ser abordados como una serie temporal para predecir eventos futuros. Se recomienda:
La predicción temprana de sepsis es un problema crítico en medicina de cuidados intensivos. La sepsis afecta a millones de personas anualmente y tiene una tasa de mortalidad significativa si no se trata a tiempo. Cada hora de retraso en la administración de antibióticos se asocia con un aumento de la mortalidad. Este conjunto de datos facilita el desarrollo de sistemas de alerta temprana basados en inteligencia artificial que pueden integrarse en los sistemas de monitoreo de pacientes en UCI para apoyar la toma de decisiones clínicas.
Datos clínicos anonimizados para la predicción temprana de sepsis. Unidades de Cuidados Intensivos. Datos institucionales.
📊 Resultado: Dataset procesado de pacientes de UCI (Beth Israel Deaconess y Emory University) con 41 variables (8 signos vitales, 26 laboratorios, 6 estáticas/demográficas, 1 objetivo). Desbalance extremo de clases (~1.8% sepsis positiva) — escenario crítico para validación de técnicas de detección temprana y generación de datos sintéticos.
🏥 Fuente: PhysioNet/Computing in Cardiology Challenge 2019 - Predicción Temprana de Sepsis.
⏱️ Estructura temporal: Formato tabular con registros por hora de estancia en UCI (series temporales aplanadas).
🎯 Variable objetivo: SepsisLabel (1 = Sepsis/ventana de predicción temprana, 0 = No sepsis).
| Variable | Descripción Clínica | Tipo | Rango / Categorías | Unidad | ¿Objetivo? |
|---|---|---|---|---|---|
Gender |
Género del paciente | Binario | 0: Femenino, 1: Masculino | N/A | No |
Unit1 |
Tipo de UCI - MICU (Médica) | Binario | 0: No, 1: Sí (MICU) | N/A | No |
Unit2 |
Tipo de UCI - SICU (Quirúrgica) | Binario | 0: No, 1: Sí (SICU) | N/A | No |
SepsisLabel |
Indicador de sepsis (objetivo) | Binario | 0: No sepsis, 1: Sepsis (ventana 6h previa) | N/A | Sí |
HR |
Frecuencia cardíaca (Heart Rate) | Numérico | 44 - 138 | lpm | No |
O2Sat |
Saturación de oxígeno por pulsioximetría | Numérico | 78 - 100 | % | No |
Temp |
Temperatura corporal | Numérico | 34.8 - 38.56 | °C | No |
SBP |
Presión arterial sistólica (Systolic BP) | Numérico | 58 - 192 | mmHg | No |
MAP |
Presión arterial media (Mean Arterial Pressure) | Numérico | 45 - 127.5 | mmHg | No |
DBP |
Presión arterial diastólica (Diastolic BP) | Numérico | 28 - 116 | mmHg | No |
Resp |
Frecuencia respiratoria (Respiration Rate) | Numérico | 6 - 40 | rpm | No |
EtCO2 |
Dióxido de carbono al final de la espiración | Numérico | 31 - 43 | mmHg | No |
BaseExcess |
Exceso de base (déficit metabólico) | Numérico | -8 - 6 | mmol/L | No |
HCO3 |
Bicarbonato sérico | Numérico | 15 - 30 | mmol/L | No |
FiO2 |
Fracción de oxígeno inspirado | Numérico | 0.28 - 1.00 | % | No |
pH |
pH sanguíneo arterial | Numérico | 7.27 - 7.51 | N/A | No |
PaCO2 |
Presión parcial de CO2 arterial | Numérico | 24 - 55 | mmHg | No |
SaO2 |
Saturación arterial de oxígeno (artérica) | Numérico | 65 - 99.8 | % | No |
AST |
Aspartato aminotransferasa (enzima hepática) | Numérico | 14 - 381 | U/L | No |
Alkalinephos |
Fosfatasa alcalina (enzima hepática) | Numérico | 40 - 169 | U/L | No |
Bilirubin_total |
Bilirrubina total (función hepática) | Numérico | 0.3 - 2.9 | mg/dL | No |
Bilirubin_direct |
Bilirrubina directa (función hepática) | Numérico | 0.1 - 0.25 | mg/dL | No |
BUN |
Nitrógeno ureico en sangre (función renal) | Numérico | 3 - 69 | mg/dL | No |
Creatinine |
Creatinina sérica (función renal) | Numérico | 0.4 - 3.76 | mg/dL | No |
Calcium |
Calcio sérico | Numérico | 1.14 - 10.3 | mg/dL | No |
Chloride |
Cloruro sérico | Numérico | 95 - 119 | mmol/L | No |
Glucose |
Glucosa sérica | Numérico | 55 - 293 | mg/dL | No |
Magnesium |
Magnesio sérico | Numérico | 1.3 - 4.5 | mg/dL | No |
Phosphate |
Fosfato sérico | Numérico | 2.1 - 8.9 | mg/dL | No |
Potassium |
Potasio sérico | Numérico | 2.95 - 5.9 | mmol/L | No |
Hct |
Hematocrito (volumen de glóbulos rojos) | Numérico | 18 - 46.8 | % | No |
Hgb |
Hemoglobina (transporte de oxígeno) | Numérico | 5.9 - 15.3 | g/dL | No |
PTT |
Tiempo parcial de tromboplastina (coagulación) | Numérico | 23.8 - 150 | segundos | No |
WBC |
Leucocitos (glóbulos blancos) | Numérico | 1.9 - 28.7 | 10³/µL | No |
Fibrinogen |
Fibrinógeno (proteína de coagulación) | Numérico | 153 - 274 | mg/dL | No |
Platelets |
Plaquetas (coagulación sanguínea) | Numérico | 40 - 1783 | 10³/µL | No |
Lactate |
Lactato sérico (biomarcador principal de sepsis) | Numérico | 0.5 - 5.5 | mmol/L | No |
TroponinI |
Troponina I (marcador de daño cardíaco) | Numérico | 0.31 - 40 | ng/mL | No |
Age |
Edad del paciente | Numérico | 26 - 88 | años | No |
HospAdmTime |
Tiempo desde admisión hospitalaria hasta UCI | Numérico | -392.95 - 0 | horas | No |
ICULOS |
Horas de estancia en UCI (contador temporal) | Numérico | 1 - 98 | horas | No |
Esta sección detalla los códigos y significados de las variables categóricas y binarias presentes en el conjunto de datos de Predicción Temprana de Sepsis (PhysioNet Challenge 2019). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados clínicos.
Gender
Binario
| Código | Significado |
|---|---|
| 0 | Femenino |
| 1 | Masculino |
Variable estática: No cambia durante la estancia del paciente.
Unit1
Binario
| Código | Significado |
|---|---|
| 0 | No está en MICU |
| 1 | MICU (Unidad de Cuidados Intensivos Médicos) |
Unit2
Binario
| Código | Significado |
|---|---|
| 0 | No está en SICU |
| 1 | SICU (Unidad de Cuidados Intensivos Quirúrgicos) |
SepsisLabel
🎯 Objetivo
| Código | Significado |
|---|---|
| 0 | No sepsis - El paciente no presenta criterios de sepsis en el momento actual |
| 1 | Sepsis / Ventana de predicción - Indica que el paciente cumple criterios de sepsis (Sepsis-3) o está en la ventana de 6 horas previas al inicio clínico |
Variable Objetivo: El modelo debe predecir la aparición de sepsis con antelación para permitir intervención médica temprana.
Formato común: 0 = No, 1 = Sí
Gender
Género (0: Femenino, 1: Masculino)
Unit1
MICU (UCI Médica)
Unit2
SICU (UCI Quirúrgica)
SepsisLabel
🎯 Variable Objetivo: Sepsis / Ventana de predicción (6h)
Nota: Todas las variables binarias están codificadas como 0 = No y 1 = Sí.
Unit1 y Unit2 son mutuamente excluyentes (No puede estar en ambas)Unit1 == 0 → Unit2 = 1 (Debe estar en alguna unidad)Unit2 == 0 → Unit1 = 1 (Debe estar en alguna unidad)HCO3 < 18 → BaseExcess < -2pH < 7.15 → HCO3 < 20pH < 7.0 → BaseExcess < -5PaCO2 > 80 → pH < 7.35O2Sat < 80% → FiO2 ≥ 0.40SaO2 < 85% → O2Sat < 90%MAP < 40 → SBP ≤ 80SBP < 70 → DBP < 70Temp > 40°C → HR > 90Creatinine > 5.0 → BUN > 20Bilirubin_total < 0.5 → Bilirubin_direct ≤ 0.5SepsisLabel == 0 → Lactate < 12SepsisLabel == 0 → MAP ≥ 40| 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 | 1182 | 0.998 | 0.995 | 0.995 | 3.273 | 0.303 | 0.055 | 0.155 | 0.877 | 77.574 | 0 | 1182 | 0.488 | |
| Smote | 1 | 1182 | 1.000 | 1.000 | 1.000 | 8.205 | 0.382 | 0.046 | 0.174 | 0.887 | 78.643 | 0.015 | 601 | 0.497 | |
| Borderline SMOTE | 1 | 1182 | 1.000 | 1.000 | 1.000 | 8.179 | 0.382 | 0.045 | 0.172 | 0.886 | 77.984 | 0.015 | 605 | 0.476 | |
| ADASYN | 1 | 1182 | 1.000 | 1.000 | 1.000 | 8.248 | 0.384 | 0.049 | 0.176 | 0.889 | 80.239 | 0.017 | 601 | 0.470 | |
| SMOTE RSB* Adaptado | 1.010 | 1176 | 1.000 | 1.000 | 1.000 | 8.400 | 0.353 | 0.045 | 0.158 | 0.883 | 90.967 | 0.012 | 600 | 0.456 | |
| SMOTE RSB* Adaptado + Reglas | 1.010 | 1176 | 1.000 | 1.000 | 1.000 | 8.494 | 0.361 | 0.053 | 0.160 | 0.884 | 90.382 | 0.015 | 600 | 0.512 | 🏆 |
| OOF PSO para Balanceo | 1.053 | 1152 | 1.000 | 0.995 | 0.995 | 2.075 | 0.426 | 0.000 | 0.193 | 0.559 | 89.075 | 0.158 | 600 | 0.461 | |
| OOF PSO para Balanceo + Reglas | 1.031 | 1164 | 1.000 | 1.000 | 1.000 | 6.000 | 0.431 | 0.000 | 0.160 | 0.548 | 88.697 | 0.189 | 600 | 0.463 |
| 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.015 | 7864 | 0.971 | 0.964 | 0.950 | 6.275 | 0.540 | 0.005 | 0.161 | 0.885 | 154.018 | 0.113 | 0 | 0.445 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.015 | 7864 | 0.953 | 0.961 | 0.945 | 5.768 | 0.540 | 0.005 | 0.158 | 0.886 | 447.775 | 0.113 | 0 | 0.417 | |
| CTGAN | 1.187 | 10000 | 0.918 | 0.843 | 0.750 | 2.876 | 0.435 | 0.033 | 0.184 | 0.858 | 938.122 | 0.098 | 0 | 0.493 | |
| CTGAN + Reglas del Dominio | 1.187 | 10000 | 0.941 | 0.866 | 0.785 | 4.004 | 0.435 | 0.033 | 0.180 | 0.858 | 1286.920 | 0.096 | 0 | 0.481 | |
| TVAE | 1.426 | 10000 | 1.000 | 0.995 | 0.995 | 6.891 | 0.800 | 0.000 | 0.124 | 0.883 | 553.638 | 0.057 | 0 | 0.497 | |
| TVAE + Reglas del Dominio | 1.426 | 10000 | 0.998 | 0.995 | 0.995 | 6.850 | 0.800 | 0.000 | 0.122 | 0.883 | 919.371 | 0.056 | 0 | 0.477 | |
| OOF PSO para Aumento | 1 | 10000 | 0.989 | 0.869 | 0.790 | 2.409 | 0.793 | 0.000 | 0.446 | 0.661 | 221.707 | 0.283 | 0 | 0.521 | |
| OOF PSO para Aumento + Reglas | 1 | 10000 | 0.989 | 0.876 | 0.800 | 2.586 | 0.793 | 0.000 | 0.508 | 0.665 | 568.857 | 0.283 | 0 | 0.509 | |
| SMOTE RSB* Refinado | 1.003 | 7716 | 1.000 | 1.000 | 1.000 | 7.652 | 0.558 | 0.001 | 0.157 | 0.880 | 141.788 | 0.090 | 0 | 0.494 | |
| SMOTE RSB* Refinado + Reglas | 1.003 | 7716 | 1.000 | 1.000 | 1.000 | 7.653 | 0.558 | 0.001 | 0.155 | 0.880 | 408.766 | 0.090 | 0 | 0.500 | 🏆 |
| 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.012 | 9040 | 0.998 | 0.991 | 0.990 | 1.812 | 0.516 | 0.004 | 0.161 | 0.885 | 312.489 | 0.112 | 0 | 0.433 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.012 | 9040 | 1.000 | 0.995 | 0.995 | 5.755 | 0.516 | 0.004 | 0.158 | 0.886 | 603.944 | 0.112 | 0 | 0.414 | |
| CTGAN | 1.164 | 11176 | 1.000 | 0.995 | 0.995 | 6.838 | 0.423 | 0.033 | 0.181 | 0.863 | 1124.310 | 0.089 | 119 | 0.487 | |
| CTGAN + Reglas del Dominio | 1.164 | 11176 | 1.000 | 1.000 | 1.000 | 8.898 | 0.423 | 0.033 | 0.177 | 0.863 | 1476.930 | 0.087 | 119 | 0.484 | 🏆 |
| TVAE | 1.374 | 11176 | 1.000 | 0.995 | 0.995 | 4.939 | 0.722 | 0.000 | 0.127 | 0.884 | 746.618 | 0.053 | 119 | 0.521 | |
| TVAE + Reglas del Dominio | 1.374 | 11176 | 1.000 | 1.000 | 1.000 | 6.999 | 0.722 | 0.000 | 0.125 | 0.885 | 1118.260 | 0.052 | 119 | 0.525 | |
| OOF PSO para Aumento | 1.001 | 11176 | 1.000 | 1.000 | 1.000 | 6.046 | 0.710 | 0.000 | 0.351 | 0.668 | 407.506 | 0.255 | 119 | 0.468 | |
| OOF PSO para Aumento + Reglas | 1.001 | 11176 | 1.000 | 1.000 | 1.000 | 6.063 | 0.710 | 0.000 | 0.398 | 0.671 | 753.859 | 0.255 | 119 | 0.494 | |
| SMOTE RSB* Refinado | 1.001 | 8892 | 1.000 | 1.000 | 1.000 | 7.645 | 0.531 | 0.001 | 0.158 | 0.881 | 285.445 | 0.089 | 0 | 0.473 | |
| SMOTE RSB* Refinado + Reglas | 1.001 | 8892 | 1.000 | 1.000 | 1.000 | 7.646 | 0.531 | 0.001 | 0.156 | 0.881 | 550.147 | 0.089 | 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 Early Sepsis Prediction (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32931644.v1