Conjunto de datos clínico recolectado en Apollo Hospitals para la clasificación binaria de Enfermedad Renal Crónica (class). Consta de 400 instancias y 25 variables: 1) Bioquímica Sanguínea/Hemograma (creatinina, urea, electrolitos, hemoglobina); 2) Análisis de Orina (albuminuria/azúcar ordinales, sedimentos binarios); y 3) Antecedentes Clínicos (hipertensión, diabetes, anemia). Destaca por ser un escenario de alta dimensionalidad y tipos de datos mixtos (continuos, ordinales, nominales), sometido a una limpieza rigurosa (imputación por mediana/moda) para subsanar la pérdida de datos original.
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.91 | 1.00 | 0.95 | 30 |
| Clase 1 | 1.00 | 0.94 | 0.97 | 50 |
| Accuracy | 0.96 | |||
| Macro Avg | 0.95 | 0.97 | 0.96 | 80 |
| Weighted Avg | 0.97 | 0.96 | 0.96 | 80 |
| Clase | Precisión | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| Clase 0 | 0.97 | 1.00 | 0.98 | 30 |
| Clase 1 | 1.00 — | 0.98 ⬆ +0.04 | 0.99 ⬆ +0.02 | 50 |
| Accuracy | 0.99 ⬆ +0.03 | |||
| Macro Avg | 0.98 ⬆ +0.03 | 0.99 ⬆ +0.02 | 0.99 ⬆ +0.03 | 80 |
| Weighted Avg | 0.99 ⬆ +0.02 | 0.99 ⬆ +0.03 | 0.99 ⬆ +0.03 | 80 |
El conjunto de datos de Enfermedad Renal Crónica (Chronic Kidney Disease - CKD) está diseñado para predecir la presencia de enfermedad renal crónica en pacientes. Los datos fueron recolectados durante un período de aproximadamente 2 meses en un entorno hospitalario. Cada instancia representa a un paciente y contiene 24 atributos que incluyen características demográficas (edad), signos vitales (presión arterial), resultados de laboratorio (glucosa, creatinina, electrolitos, hemoglobina, conteos celulares), hallazgos de análisis de orina (gravedad específica, albúmina, azúcar, células sanguíneas) y antecedentes médicos (hipertensión, diabetes, enfermedad arterial coronaria, anemia). El objetivo es clasificar al paciente como con enfermedad renal crónica o sin ella.
El conjunto de datos fue recolectado de registros médicos hospitalarios durante un período de aproximadamente 2 meses. Incluye una amplia gama de variables clínicas y de laboratorio que reflejan la evaluación integral de pacientes con sospecha o diagnóstico de enfermedad renal crónica. La enfermedad renal crónica es una condición progresiva que afecta la función de los riñones, y su detección temprana es crucial para retrasar su avance y prevenir complicaciones. Este dataset permite abordar un problema de clasificación binaria para identificar pacientes en riesgo o diagnosticados con CKD.
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. 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 presenta desafíos particulares debido a la presencia de valores faltantes en todas las variables predictoras. Se recomienda:
sg, al y su requieren codificación ordinal o one-hot encoding según correspondaclass está codificada como "ckd" (enfermedad renal crónica) y "notckd" (sin enfermedad)La enfermedad renal crónica (CKD) es una condición caracterizada por la pérdida progresiva de la función renal a lo largo del tiempo. Afecta a aproximadamente 850 millones de personas en todo el mundo y es una de las principales causas de morbilidad y mortalidad global. La detección temprana de CKD es fundamental para:
Este dataset, con su amplia gama de variables clínicas y de laboratorio, permite desarrollar modelos predictivos que pueden apoyar el diagnóstico temprano y la toma de decisiones clínicas en nefrología.
Chronic Kidney Disease Dataset. UCI Machine Learning Repository. https://archive.ics.uci.edu/ml/datasets/Chronic+Kidney+Disease
cat.codes).pd.to_numeric(..., errors='coerce').📊 Resultado: Dataset de 400 pacientes (después de limpieza de formatos e imputación) con 24 variables predictoras (mixtas: 11 numéricas continuas, 13 categóricas codificadas) y 1 variable objetivo binaria (class). Desbalance moderado (~75% casos CKD positivos / ~25% sanos) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de enfermedad renal crónica.
🏥 Fuente: Chronic Kidney Disease Dataset (UCI Machine Learning Repository).
🔬 Variables clínicas clave: Edad, presión arterial, gravedad específica de orina, albúmina, glucosa en sangre, urea, creatinina, sodio, potasio, hemoglobina, hematocrito, conteo de glóbulos blancos/rojos, hipertensión, diabetes mellitus, enfermedad coronaria, apetito, edema, anemia.
📁 Leyenda disponible: Archivo leyenda_ckd.txt con mapeo semántico completo de todas las variables categóricas codificadas.
🎯 Variable objetivo: class (1 = Enfermedad Renal Crónica - CKD, 0 = Sano - notckd).
| Variable | Descripción Clínica | Tipo | Rango / Categorías | Unidad | ¿Objetivo? |
|---|---|---|---|---|---|
sg |
Gravedad específica de la orina | Categórico | 0: 1.005, 1: 1.010, 2: 1.015, 3: 1.020, 4: 1.025 | N/A | No |
al |
Albúmina en orina (proteinuria) | Categórico | 0-5 (nivel de albúmina) | N/A | No |
su |
Azúcar en orina (glucosuria) | Categórico | 0-5 (nivel de azúcar) | N/A | No |
age |
Edad del paciente | Numérico | 2 - 82 | años | No |
bp |
Presión arterial (sistólica) | Numérico | 50 - 180 | mm Hg | No |
bgr |
Glucosa en sangre aleatoria | Numérico | 70 - 490 | mg/dL | No |
bu |
Urea en sangre (nitrógeno ureico) | Numérico | 10 - 309 | mg/dL | No |
sc |
Creatinina sérica (indicador crítico de función renal) | Numérico | 0.5 - 76 | mg/dL | No |
sod |
Sodio sérico | Numérico | 4.5 - 150 | mEq/L | No |
pot |
Potasio sérico | Numérico | 2.5 - 7.6 | mEq/L | No |
hemo |
Hemoglobina | Numérico | 3.1 - 17.8 | g/dL | No |
pcv |
Volumen celular aglomerado (hematocrito) | Numérico | 9 - 54 | % | No |
wbcc |
Conteo de glóbulos blancos | Numérico | 2,200 - 26,400 | células/mm³ | No |
rbcc |
Conteo de glóbulos rojos | Numérico | 2.1 - 8.0 | millones/mm³ | No |
rbc |
Glóbulos rojos en sedimento urinario | Binario | 0: Anormal, 1: Normal | N/A | No |
pc |
Células de pus en orina (piuria) | Binario | 0: Anormal, 1: Normal | N/A | No |
pcc |
Agrupaciones de células de pus | Binario | 0: No presente, 1: Presente | N/A | No |
ba |
Bacterias en orina (bacteriuria) | Binario | 0: No presente, 1: Presente | N/A | No |
htn |
Hipertensión arterial (antecedente) | Binario | 0: No, 1: Sí | N/A | No |
dm |
Diabetes Mellitus (antecedente) | Binario | 0: No, 1: Sí | N/A | No |
cad |
Enfermedad coronaria (antecedente) | Binario | 0: No, 1: Sí | N/A | No |
appet |
Estado del apetito | Binario | 0: Bueno, 1: Pobre | N/A | No |
pe |
Edema en pies (presencia) | Binario | 0: No, 1: Sí | N/A | No |
ane |
Anemia (diagnóstico) | Binario | 0: No, 1: Sí | N/A | No |
class |
Diagnóstico de Enfermedad Renal Crónica (objetivo) | Binario | 0: notckd (Sano), 1: ckd (Enfermedad Renal Crónica) | 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 Enfermedad Renal Crónica (Chronic Kidney Disease). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados clínicos.
sg
Categórica
Gravedad específica de la orina
| Código | Significado |
|---|---|
| 0 | 1.005 (Baja densidad - orina diluida) |
| 1 | 1.010 |
| 2 | 1.015 |
| 3 | 1.020 |
| 4 | 1.025 (Alta densidad - orina concentrada) |
Interpretación: La gravedad específica mide la capacidad de concentración renal. Valores bajos indican pérdida de capacidad de concentración.
al
Categórica
Albúmina en orina (Proteinuria)
| Código | Significado |
|---|---|
| 0 | Ausente (Normal) |
| 1 | Traza |
| 2 | + (Leve) |
| 3 | ++ (Moderada) |
| 4 | +++ (Severa) |
| 5 | ++++ (Muy severa) |
Importancia clínica: La presencia de albúmina en orina (proteinuria) es un marcador temprano de daño renal y predictor de progresión de enfermedad renal.
su
Categórica
Azúcar en orina (Glucosuria)
| Código | Significado |
|---|---|
| 0 | Ausente (Normal) |
| 1 | Traza |
| 2 | + (Leve) |
| 3 | ++ (Moderada) |
| 4 | +++ (Severa) |
| 5 | ++++ (Muy severa) |
Interpretación: La presencia de azúcar en orina puede indicar diabetes mellitus no controlada o daño tubular renal.
Formato común: 0 = No / Ausente / Anormal, 1 = Sí / Presente / Normal
rbc
Glóbulos rojos en orina (0: Anormal, 1: Normal)
pc
Células de pus en orina (0: Anormal, 1: Normal)
pcc
Agrupaciones de pus (0: No presente, 1: Presente)
ba
Bacterias en orina (0: No presente, 1: Presente)
htn
Hipertensión arterial (0: No, 1: Sí)
dm
Diabetes Mellitus (0: No, 1: Sí)
cad
Enfermedad coronaria (0: No, 1: Sí)
appet
Apetito (0: Bueno, 1: Pobre)
pe
Edema en pies (0: No, 1: Sí)
ane
Anemia (0: No, 1: Sí)
class
🎯 Variable Objetivo: Enfermedad Renal Crónica (0: notckd, 1: ckd)
Nota: Las variables rbc, pc, pcc, ba representan hallazgos del sedimento urinario. htn, dm, cad son antecedentes médicos. appet, pe, ane son hallazgos clínicos.
sc > 2.0 → class = 1 (Enfermedad renal presente)class == 0 → al = 0 (Sin enfermedad renal → sin albuminuria)class == 0 → sc < 1.2 (Sin enfermedad renal → creatinina normal)hemo > 14 → pcv > 40 (Hemoglobina alta → hematocrito elevado)hemo < 9 → rbcc < 3.5 (Hemoglobina baja → glóbulos rojos bajos)hemo < 9.0 → ane = 1 (Anemia diagnosticada)sc > 5.0 → pot > 4.5 (Creatinina muy alta → potasio elevado)bgr > 200 → dm = 1 (Glucosa elevada → diabetes)su > 0 → bgr > 140 (Glucosa en orina → glucosa en sangre elevada)ba == 1 → pc = 0 (Bacterias presentes → células de pus no deben estar)sc > 4.0 → bu > 50 (Creatinina extremadamente alta → BUN elevado)bp > 100 → htn = 1 (Presión arterial elevada → hipertensión)| 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 | 296 | 1.000 | 1.000 | 1.000 | 3.892 | 0.081 | 0.651 | 0.009 | 0.977 | 51.932 | 0 | 296 | 0.456 | 🏆 |
| Smote | 1 | 296 | 1.000 | 1.000 | 1.000 | 2.605 | 0.256 | 0.446 | 0.008 | 0.974 | 53.446 | 0.002 | 237 | 0.433 | |
| Borderline SMOTE | 1 | 296 | 1.000 | 1.000 | 1.000 | 2.595 | 0.255 | 0.496 | 0.009 | 0.976 | 55.393 | 0.002 | 237 | 0.404 | |
| ADASYN | 1.050 | 289 | 1.000 | 1.000 | 1.000 | 2.960 | 0.240 | 0.566 | 0.007 | 0.979 | 55.494 | 0.002 | 237 | 0.394 | |
| SMOTE RSB* Adaptado | 1 | 296 | 1.000 | 1.000 | 1.000 | 2.811 | 0.207 | 0.385 | 0.008 | 0.975 | 47.341 | 0.003 | 232 | 0.419 | |
| SMOTE RSB* Adaptado + Reglas | 1 | 296 | 1.000 | 1.000 | 1.000 | 2.824 | 0.208 | 0.400 | 0.008 | 0.975 | 48.162 | 0.003 | 232 | 0.432 | |
| OOF PSO para Balanceo | 1 | 296 | 1.000 | 1.000 | 1.000 | 0.024 | 0.252 | 0.002 | 0.020 | 0.802 | 59.651 | 0.041 | 237 | 0.430 | |
| OOF PSO para Balanceo + Reglas | 1 | 296 | 1.000 | 1.000 | 1.000 | 0.947 | 0.233 | 0.012 | 0.013 | 0.874 | 58.856 | 0.026 | 225 | 0.448 |
| 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.342 | 8664 | 1.000 | 0.988 | 0.988 | 9.413 | 0.379 | 0.414 | 0.018 | 0.947 | 90.811 | 0.565 | 0 | 0.454 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.428 | 8664 | 1.000 | 0.988 | 0.988 | 9.453 | 0.379 | 0.414 | 0.015 | 0.954 | 247.613 | 0.565 | 0 | 0.445 | 🏆 |
| CTGAN | 1.899 | 10000 | 0.996 | 0.963 | 0.963 | 8.062 | 0.291 | 0.099 | 0.012 | 0.925 | 294.970 | 0.094 | 0 | 0.463 | |
| CTGAN + Reglas del Dominio | 2.190 | 10000 | 1.000 | 1.000 | 1.000 | 9.129 | 0.291 | 0.099 | 0.017 | 0.925 | 474.570 | 0.095 | 0 | 0.448 | |
| TVAE | 1.244 | 10000 | 1.000 | 1.000 | 1.000 | 8.782 | 0.407 | 0.061 | 0.020 | 0.933 | 177.662 | 0.047 | 0 | 0.439 | |
| TVAE + Reglas del Dominio | 1.246 | 10000 | 1.000 | 1.000 | 1.000 | 8.778 | 0.407 | 0.061 | 0.019 | 0.932 | 350.593 | 0.048 | 0 | 0.424 | |
| OOF PSO para Aumento | 1 | 10000 | 0.980 | 0.815 | 0.813 | 0.701 | 0.752 | 0.000 | 0.279 | 0.624 | 125.135 | 0.206 | 0 | 0.490 | |
| OOF PSO para Aumento + Reglas | 6.220 | 10000 | 0.970 | 0.914 | 0.913 | 2.141 | 0.752 | 0.000 | 0.404 | 0.626 | 298.834 | 0.247 | 0 | 0.429 | |
| SMOTE RSB* Refinado | 1.106 | 9501 | 1.000 | 1.000 | 1.000 | 9.381 | 0.398 | 0.280 | 0.016 | 0.961 | 94.195 | 0.526 | 0 | 0.428 | |
| SMOTE RSB* Refinado + Reglas | 1.106 | 9501 | 1.000 | 0.988 | 0.988 | 9.125 | 0.398 | 0.280 | 0.014 | 0.963 | 265.196 | 0.526 | 0 | 0.434 |
| 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.329 | 8960 | 1.000 | 0.988 | 0.988 | 7.668 | 0.370 | 0.417 | 0.017 | 0.949 | 170.090 | 0.565 | 0 | 0.448 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.411 | 8960 | 1.000 | 0.988 | 0.988 | 7.708 | 0.370 | 0.417 | 0.014 | 0.955 | 327.843 | 0.565 | 0 | 0.450 | |
| CTGAN | 1.862 | 10296 | 0.993 | 0.975 | 0.975 | 3.152 | 0.284 | 0.110 | 0.011 | 0.927 | 385.775 | 0.092 | 59 | 0.456 | |
| CTGAN + Reglas del Dominio | 2.136 | 10296 | 1.000 | 0.988 | 0.988 | 7.150 | 0.284 | 0.110 | 0.016 | 0.927 | 564.341 | 0.093 | 59 | 0.432 | |
| TVAE | 1.236 | 10296 | 1.000 | 1.000 | 1.000 | 8.800 | 0.395 | 0.070 | 0.019 | 0.935 | 266.461 | 0.046 | 59 | 0.433 | 🏆 |
| TVAE + Reglas del Dominio | 1.238 | 10296 | 1.000 | 1.000 | 1.000 | 8.796 | 0.395 | 0.070 | 0.018 | 0.934 | 438.137 | 0.046 | 59 | 0.422 | |
| OOF PSO para Aumento | 1 | 10296 | 1.000 | 0.988 | 0.988 | 4.017 | 0.720 | 0.000 | 0.259 | 0.630 | 212.310 | 0.200 | 59 | 0.466 | |
| OOF PSO para Aumento + Reglas | 5.716 | 10296 | 1.000 | 0.975 | 0.975 | 2.007 | 0.720 | 0.000 | 0.373 | 0.632 | 388.849 | 0.240 | 59 | 0.475 | |
| SMOTE RSB* Refinado | 1.102 | 9797 | 1.000 | 0.987 | 0.988 | 7.274 | 0.390 | 0.286 | 0.015 | 0.962 | 181.736 | 0.526 | 0 | 0.453 | |
| SMOTE RSB* Refinado + Reglas | 1.102 | 9797 | 0.999 | 0.988 | 0.988 | 7.200 | 0.390 | 0.286 | 0.014 | 0.964 | 351.774 | 0.526 | 0 | 0.429 |
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 Chronic Kidney Disease (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32932754.v1