CD_39 Original + Derivados

CD_39: Water Potability

Conjunto de datos procesado con registros de mediciones de laboratorio continuas para la clasificación binaria de la potabilidad del agua. Integra variables físico-químicas (pH, dureza, sólidos disueltos) con imputación por mediana.

📈 Eficacia Predictiva Detallada

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.

📊 Conjunto Original

Clase Precisión Recall F1-Score Soporte
Clase 0 0.62 0.92 0.74 122
Clase 1 0.44 0.10 0.17 78
Accuracy 0.60
Macro Avg 0.53 0.51 0.45 200
Weighted Avg 0.55 0.60 0.51 200
AUC-ROC: 0.49
F1-Score (weighted): 0.51
Accuracy: 0.60
➡️ Mejora
⬆ +0.10 AUC ⬆ +0.09 F1 — Acc sin cambio
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.67 0.69 0.68 122
Clase 1 0.49 ⬆ +0.05 0.47 ⬆ +0.37 0.48 ⬆ +0.31 78
Accuracy 0.60
Macro Avg 0.58 ⬆ +0.05 0.58 ⬆ +0.07 0.58 ⬆ +0.13 200
Weighted Avg 0.60 ⬆ +0.05 0.60 0.60 ⬆ +0.09 200
AUC-ROC: 0.58 ⬆ +0.10
F1-Score (weighted): 0.60 ⬆ +0.09
Accuracy: 0.60 — Sin cambio

📊 Resumen de Mejoras en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.44
Sintético: 0.49
⬆ +0.05
📈
Recall
Original: 0.10
Sintético: 0.47
⬆ +0.37
⚖️
F1-Score
Original: 0.17
Sintético: 0.48
⬆ +0.31

📚 Fuente Original del Conjunto

Water Potability Dataset

v1.0
Datos de calidad de agua
Disponible en repositorios públicos

📄 Resumen (Abstract)

El conjunto de datos de Potabilidad del Agua (Water Potability) contiene métricas de calidad de agua para 3,276 cuerpos de agua diferentes. El acceso a agua potable segura es esencial para la salud, un derecho humano básico y un componente de políticas efectivas para la protección de la salud. Este conjunto de datos permite clasificar si el agua es potable (segura para el consumo humano) o no, basándose en 10 parámetros fisicoquímicos como pH, dureza, sólidos disueltos, cloraminas, sulfatos, conductividad, carbono orgánico, trihalometanos y turbidez. El objetivo es determinar si el agua es segura para el consumo humano (variable Potability).

🌍 Contexto y Motivación

El acceso a agua potable segura es un problema crítico de salud y desarrollo a nivel nacional, regional y local. Según la Organización Mundial de la Salud (OMS):

  • Al menos 2 mil millones de personas en todo el mundo utilizan una fuente de agua potable contaminada con heces
  • El agua contaminada puede transmitir enfermedades como diarrea, cólera, disentería, tifoidea y poliomielitis
  • Las enfermedades relacionadas con el agua causan aproximadamente 485,000 muertes por diarrea cada año

En algunas regiones, se ha demostrado que las inversiones en el suministro de agua y saneamiento pueden generar un beneficio económico neto, ya que las reducciones en los efectos adversos para la salud y los costos de atención médica superan los costos de las intervenciones.

📊 Descripción de Datos

El archivo water_potability.csv contiene 3,276 registros con 10 columnas (9 variables predictoras y 1 variable objetivo). Las características son de tipo numérico y representan diferentes parámetros fisicoquímicos del agua.

📋 Variables del Dataset
Variable Tipo Descripción Unidad Rango / Valor Típico
A. Parámetros Fisicoquímicos
ph Numérico pH del agua (medida de acidez/alcalinidad) - 0-14 (6.5-8.5 según OMS)
Hardness Numérico Dureza del agua (capacidad de precipitar jabón) mg/L -
Solids Numérico Sólidos disueltos totales (TDS) ppm Desirable: 500 mg/L, Máximo: 1000 mg/L
Chloramines Numérico Cantidad de cloraminas (desinfectante) ppm Hasta 4 mg/L (seguro)
Sulfate Numérico Cantidad de sulfatos disueltos mg/L 3-30 mg/L (agua dulce)
Conductivity Numérico Conductividad eléctrica del agua μS/cm No debe exceder 400 μS/cm (OMS)
Organic_carbon Numérico Carbono orgánico total (TOC) ppm < 2 mg/L (agua tratada)
Trihalomethanes Numérico Trihalometanos (subproductos de cloración) μg/L Hasta 80 ppm (seguro)
Turbidity Numérico Turbidez del agua (propiedades de emisión de luz) NTU Recomendado: 5.00 NTU
B. Variable Objetivo
Potability Binaria (Target) Indica si el agua es segura para el consumo humano - 1 = Potable
0 = No potable
📐 Unidades de Medida
  • ppm = partes por millón (equivalente a mg/L para agua)
  • mg/L = miligramos por litro
  • μg/L = microgramos por litro
  • μS/cm = microsiemens por centímetro (conductividad)
  • NTU = unidades nefelométricas de turbidez

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria (Potable vs. No Potable)
  • Dimensión: Multivariante (3,276 × 10)
  • Tipo de características: Numéricas (continuas)
  • Valores faltantes: Sí (presentes en varias variables)
  • Área de aplicación: Salud Pública, Gestión de Recursos Hídricos, Medio Ambiente
  • Contexto: Evaluación de calidad de agua para consumo humano

📖 Estándares de Calidad del Agua (Referencias)

📋 Parámetros y Límites Recomendados
Parámetro Unidad Límite Recomendado Fuente
pH - 6.5 - 8.5 OMS
Solids (TDS) mg/L 500 (deseable) / 1000 (máximo) WHO
Chloramines mg/L ≤ 4 EPA
Conductivity μS/cm ≤ 400 OMS
Organic_carbon mg/L < 2 (tratada) / < 4 (fuente) US EPA
Trihalomethanes ppm ≤ 80 EPA
Turbidity NTU ≤ 5 OMS

Referencias: OMS (Organización Mundial de la Salud), EPA (Agencia de Protección Ambiental de EE.UU.), US EPA (Agencia de Protección Ambiental de EE.UU.)

⚖️ Ética y Privacidad

El conjunto de datos contiene mediciones fisicoquímicas de cuerpos de agua y no incluye información personal identificable de individuos o comunidades. Los datos son anónimos y se utilizan exclusivamente para fines de investigación académica en calidad de agua y salud pública. 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.

📋 Notas de Uso

Este conjunto de datos es ideal para problemas de clasificación y evaluación de calidad de agua. Se recomienda:

  • La variable objetivo Potability está codificada como 1 = Potable y 0 = No Potable
  • Manejar adecuadamente los valores faltantes presentes en varias variables mediante imputación (media, mediana, KNN, MICE) o eliminación de registros
  • Considerar los estándares de calidad del agua (OMS, EPA) para contextualizar los valores de las variables
  • Estandarizar/normalizar las características numéricas dado que tienen escalas muy diferentes
  • Las variables pH, Solids, Chloramines, Conductivity y Trihalomethanes tienen límites de seguridad que pueden ser utilizados como referencia para umbrales
  • Utilizar validación cruzada estratificada para evaluar el rendimiento del modelo
  • El dataset es adecuado para modelos de clasificación como Regresión Logística, Random Forest, XGBoost y Redes Neuronales

💡 Importancia en Salud Pública

El acceso a agua potable segura es un derecho humano fundamental y un Objetivo de Desarrollo Sostenible (ODS 6) de las Naciones Unidas. La calidad del agua es esencial para:

  • Prevenir enfermedades transmitidas por el agua (diarrea, cólera, tifoidea, etc.)
  • Reducir la mortalidad infantil y mejorar la salud de las comunidades
  • Mejorar la calidad de vida y el desarrollo económico
  • Reducir costos de atención médica asociados a enfermedades hídricas

Este dataset permite desarrollar modelos de clasificación que pueden ayudar a evaluar la potabilidad del agua de manera rápida y eficiente, especialmente en regiones con recursos limitados para realizar análisis de laboratorio completos.

📖 Cómo citar la fuente original

Water Potability Dataset. Kaggle. https://www.kaggle.com/datasets/adityakadiwal/water-potability

📚 Referencias Adicionales

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (Water Potability Dataset)

  • Carga y verificación inicial de datos: < class="transformacion-lista">
  • Carga del dataset desde el archivo water_potability.csv.
  • Identificación de valores perdidos en variables físico-químicas (pH, Sulfatos, Trihalometanos, entre otros).
  • Imputación de valores faltantes:
    • Detección detallada de valores nulos por columna para transparencia metodológica.
    • Imputación con mediana para todas las variables numéricas — estrategia robusta y estándar para mediciones físico-químicas del agua.
    • Garantía de integridad total del conjunto de datos para modelado directo.
  • Estandarización de tipos de datos:
    • Conversión forzada de la variable objetivo Potability a tipo entero (int) para eliminar decimales.
    • Preservación de todas las variables predictoras en su tipo numérico original (flotantes) para mantener precisión en las mediciones.
  • Submuestreo estratificado para reducción del dataset:
    • Reducción del dataset a 1,000 ejemplos representativos mediante muestreo estratificado.
    • Uso de train_test_split con parámetro stratify para preservar exactamente la proporción original de clases (desbalance de potabilidad).
    • Semilla fija (random_state=42) para garantizar reproducibilidad científica de la muestra.
    • Verificación de integridad con diferencia máxima < 1% en proporción de clases.
  • Generación de documentación completa:
    • Creación del archivo leyenda_water_potability.txt con semántica completa de la variable objetivo y todas las variables predictoras.
    • Documentación de 9 variables físico-químicas del agua: ph (acidez/alcalinidad), Hardness (dureza), Solids (sólidos disueltos), Chloramines (cloraminas), Sulfate (sulfatos), Conductivity (conductividad eléctrica), Organic_carbon (carbono orgánico), Trihalomethanes (trihalometanos), Turbidity (turbidez).
    • Descripción de unidades de medida para cada variable (mg/L, ppm, µS/cm, NTU, etc.).
    • Contextualización del dataset: calidad del agua para consumo humano.
  • Preservación de la estructura y calidad de datos:
    • Mantenimiento de las 3,276 instancias (muestras de agua) originales para el dataset completo.
    • Dataset reducido de 1,000 ejemplos estratificados para experimentación eficiente.
    • Dataset final con 9 variables predictoras (todas numéricas continuas) y 1 variable objetivo binaria.
    • Guardado en formato CSV con separador punto y coma (;) para compatibilidad internacional.
  • 📊 Resultado: Dataset de 3,276 muestras de agua (con versión reducida estratificada de 1,000 ejemplos) con 9 variables predictoras (mediciones físico-químicas) y 1 variable objetivo binaria (Potability). Desbalance moderado (~60% agua no potable / ~40% agua potable) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de calidad del agua y salud pública, donde las mediciones fisicoquímicas son determinantes para la clasificación de potabilidad.

    💧 Fuente: Water Potability Dataset (Kaggle) - Datos de calidad del agua para consumo humano.

    🔬 Variables físico-químicas: pH, dureza, sólidos disueltos totales (TDS), cloraminas, sulfatos, conductividad eléctrica, carbono orgánico total, trihalometanos, turbidez — parámetros críticos para la potabilidad del agua.

    📋 Unidades de medida: pH (0-14), Hardness (mg/L), Solids (ppm), Chloramines (ppm), Sulfate (mg/L), Conductivity (µS/cm), Organic_carbon (ppm), Trihalomethanes (µg/L), Turbidity (NTU).

    📁 Leyenda disponible: Archivo leyenda_water_potability.txt con descripción completa de la variable objetivo y todas las variables predictoras con sus unidades de medida.

    🎯 Variable objetivo: Potability (1 = Agua potable/segura para consumo, 0 = Agua no potable/no segura).

    🧹 Limpieza aplicada: Imputación con mediana de valores perdidos, estandarización de tipos, reducción estratificada a 1,000 ejemplos.

    📋 Diccionario de Datos Detallado

    Variable Descripción de Calidad del Agua Tipo Rango / Categorías Unidad ¿Objetivo?
    ph Nivel de pH (acidez/alcalinidad del agua) Numérico 1.76 - 11.45 N/A No
    Hardness Dureza del agua (sales de calcio y magnesio) Numérico 77.46 - 323.12 mg/L No
    Solids Total de Sólidos Disueltos (TDS) - Mineralización Numérico 320.94 - 52,060.23 ppm No
    Chloramines Concentración de cloraminas (desinfectante) Numérico 2.39 - 12.65 ppm No
    Sulfate Concentración de sulfatos disueltos Numérico 187.17 - 476.54 mg/L No
    Conductivity Conductividad eléctrica (iones disueltos) Numérico 181.48 - 656.92 μS/cm No
    Organic_carbon Carbono Orgánico Total (TOC) Numérico 4.47 - 23.92 ppm No
    Trihalomethanes Trihalometanos (subproductos de cloración) Numérico 8.18 - 120.03 μg/L No
    Turbidity Turbidez (claridad del agua, partículas en suspensión) Numérico 1.68 - 6.74 NTU No
    Potability Potabilidad del agua (apta para consumo humano) - OBJETIVO Binario 0: No Potable, 1: Potable N/A
    10 Variables totales
    9 Numéricas
    0 Categóricas
    1 Binarias
    Objetivo: Potabilidad (Potability)
    Datos ausentes: 0%

    📈 Distribución de la variable objetivo en el conjunto original

    📖 Leyenda de Variables Categóricas

    Esta sección detalla los códigos y significados de las variables categóricas y binarias presentes en el conjunto de datos de Potabilidad del Agua. Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de calidad del agua.

    Potability 🎯 Objetivo
    Código Significado
    0 No Potable - Agua no segura para consumo humano
    1 Potable - Agua apta para consumo humano
    🎯

    Variable Objetivo: Clasifica la potabilidad del agua basada en parámetros fisicoquímicos.

    Variables Binarias Binario

    Formato: 0 = No Potable, 1 = Potable

    Potability 🎯 Variable Objetivo: Potabilidad (0: No Potable, 1: Potable)
    ℹ️

    Nota: Única variable binaria en el dataset.

    📊
    Variables binarias: 1
    • 🎯 Potability (Objetivo - Potabilidad)
    📈
    Variables numéricas: 9
    • ph, Hardness, Solids, Chloramines
    • Sulfate, Conductivity, Organic_carbon
    • Trihalomethanes, Turbidity
    💧
    Parámetros de Calidad del Agua (OMS):
    • pH: 6.5 - 8.5 (aceptable)
    • Turbidity: < 5 NTU (recomendado)
    • Conductivity: < 400 μS/cm (agua dulce)
    • TDS (Solids): < 500 ppm (buena calidad)
    • Chloramines: ≤ 4 ppm (límite seguro)
    • Trihalomethanes: ≤ 80 μg/L (límite seguro)
    ⚠️
    Recomendaciones de Análisis:
    • pH extremo: Valores < 6.5 o > 8.5 indican agua no potable
    • Solids (TDS): Valores > 1000 ppm indican alta mineralización
    • Chloramines: Niveles > 4 ppm pueden ser peligrosos
    • Trihalomethanes: Niveles > 80 μg/L indican subproductos de cloración
    • Turbidity: Valores > 5 NTU reducen efectividad de desinfección
    • Organic_carbon: Niveles altos favorecen formación de THMs
    • Conductivity: Correlaciona con concentración de iones disueltos
    • Hardness: Agua dura (> 200 mg/L) puede causar incrustaciones

    🔬 Metodología de Generación (Reproducibilidad Científica)

    📐 Método Principal

    SMOTE RSB* Adaptado

    Versión: 2.0

    DOI: 10.1007/s42979-026-04896-8

    📏 Reglas de restricción

    • ph < 4.5 → Potability = 0 (pH ácido extremo → no potable)
    • ph > 10.0 → Potability = 0 (pH básico extremo → no potable)
    • Sulfate > 480 → Potability = 0 (Sulfatos altos → no potable)
    • Trihalomethanes > 100 → Potability = 0 (THMs altos → no potable)
    • Turbidity > 6.0 → Potability = 0 (Turbidez alta → no potable)
    • Solids > 30000 → Conductivity > 500 (Sólidos altos → conductividad alta)
    • Conductivity < 300 → Solids < 25000 (Conductividad baja → sólidos bajos)
    • Hardness > 250 → ph > 5.0 (Dureza alta → pH no extremo)
    • Trihalomethanes > 80 → Organic_carbon > 5 (THMs altos → carbono orgánico alto)
    • Trihalomethanes > 80 → Chloramines > 2 (THMs altos → cloraminas altas)
    • Chloramines > 10 → Potability = 0 (Cloraminas altas → no potable)
    • Potability == 1 → Turbidity < 5.0
    • Potability == 1 → Sulfate < 400
    • Potability == 1 → ph > 5.5
    • Hardness > 280 → Conductivity > 300
    • Solids < 5000 → Hardness < 180

    ⚙️ Hiperparámetros SMOTE RSB* Adaptado

    Valor escala0.03
    Probabilidad Base0.1

    🔄 Hiperparámetros CTGAN

    epochs500
    batch_size50
    generator_lr0.0002
    discriminator_lr0.0002
    pac10
    generator_dim(256, 256)
    discriminator_dim(256, 256)
    embedding_dim128
    l2scale1e-05

    📊 Hiperparámetros TVAE

    epochs 500
    batch_size 50
    embedding_dim 128
    compress_dims (128, 128)
    decompress_dims (128, 128)
    l2scale 1e-5
    loss_factor 2

    🔐 Reproducibilidad

    Random Seed42
    Python3.12.12

    Librerías utilizadas:

    • pandas: 2.3.3
    • numpy: 2.4.4
    • scikit-learn: 1.7.2
    • imbalanced-learn: 0.14.0
    • ctgan: 0.11.1
    • torch: 2.9.0
    • sdv: 1.28.0
    • scipy: 1.16.3
    • matplotlib: 3.10.9
    📝

    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.

    📊 Conjuntos de Datos Derivados

    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:

    • 📊 Balanceados: Conjuntos creados mediante técnicas de sobremuestreo
    • 🔮 Sintéticos Puros: Conjuntos generados completamente con modelos generativos
    • ✨ Aumentados: Combinación del conjunto original + datos sintéticos

    El mejor conjunto de cada etapa fue seleccionado mediante el índice TabDSFidelity.

    📊 Conjuntos Balanceados 8 conjuntos

    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 732 0.604 0.617 0.630 5.767 0.131 0.987 0.024 0.983 57.676 0 732 0.464
    Smote 1 732 0.608 0.600 0.605 3.924 0.257 0.994 0.024 0.986 52.875 0.006 600 0.484
    Borderline SMOTE 1 732 0.636 0.602 0.600 4.967 0.258 0.977 0.024 0.986 56.516 0.006 600 0.484
    ADASYN 1.107 771 0.601 0.579 0.575 1.961 0.289 0.968 0.037 0.987 81.584 0.007 600 0.482
    SMOTE RSB* Adaptado 1.003 731 0.646 0.635 0.635 7.402 0.257 0.983 0.024 0.989 100.605 0.009 600 0.496 🏆
    SMOTE RSB* Adaptado + Reglas 1.003 731 0.647 0.625 0.625 6.839 0.256 0.981 0.024 0.989 52.790 0.009 600 0.487
    OOF PSO para Balanceo 1 732 0.620 0.619 0.645 4.367 0.253 0.034 0.024 0.748 56.454 0.037 600 0.474
    OOF PSO para Balanceo + Reglas 2.660 732 0.651 0.601 0.660 5.013 0.251 0.000 0.032 0.648 60.132 0.056 566 0.466
    Mejor seleccionado: SMOTE RSB* Adaptado (TabDSFidelity: 7.402, AUC: 0.646, F1: 0.635, MIA: 0.496). Nota: Ratio <= 1.5 = Conjunto Balanceado.

    🔮 Conjuntos Sintéticos Puros 10 conjuntos

    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 7243 0.550 0.604 0.615 7.432 0.799 0.327 0.022 0.985 78.371 0.126 0 0.449
    SMOTE RSB* + Ruido Gaussiano + Reglas 1.203 7243 0.609 0.601 0.630 8.303 0.799 0.327 0.008 0.981 211.418 0.126 0 0.463 🏆
    CTGAN 1.053 10000 0.481 0.486 0.480 1.560 0.810 0.041 0.030 0.905 278.051 0.077 0 0.483
    CTGAN + Reglas del Dominio 1.615 10000 0.499 0.502 0.505 2.376 0.810 0.041 0.000 0.916 434.152 0.076 0 0.480
    TVAE 1.139 10000 0.601 0.549 0.545 4.336 0.832 0.021 0.041 0.972 244.840 0.056 0 0.554
    TVAE + Reglas del Dominio 1.001 10000 0.644 0.610 0.610 6.648 0.832 0.021 0.024 0.972 427.969 0.056 0 0.527
    OOF PSO para Aumento 1 10000 0.531 0.516 0.510 1.636 0.827 0.000 0.024 0.510 128.607 0.263 0 0.412
    OOF PSO para Aumento + Reglas 321.581 10000 0.559 0.618 0.620 5.225 0.827 0.000 1.586 0.616 277.809 0.271 0 0.561
    SMOTE RSB* Refinado 1 7000 0.592 0.601 0.610 6.654 0.828 0.230 0.024 0.984 73.378 0.030 0 0.473
    SMOTE RSB* Refinado + Reglas 1.183 7000 0.627 0.607 0.615 7.228 0.828 0.230 0.009 0.983 206.565 0.033 0 0.446
    Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano + Reglas del Dominio (TabDSFidelity: 8.303, AUC: 0.609, F1: 0.601, MIA: 0.463). Nota: Ratio <= 1.5 = Conjunto Balanceado.

    ✨ Conjuntos Aumentados 10 conjuntos

    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 7974 0.603 0.622 0.630 7.932 0.724 0.365 0.023 0.986 146.578 0.124 0 0.459
    SMOTE RSB* + Ruido Gaussiano + Reglas 1.183 7974 0.586 0.556 0.580 6.351 0.724 0.365 0.009 0.983 278.216 0.124 0 0.443
    CTGAN 1.049 10731 0.475 0.505 0.500 1.968 0.743 0.054 0.030 0.911 359.068 0.072 123 0.490
    CTGAN + Reglas del Dominio 1.562 10731 0.516 0.481 0.480 1.951 0.743 0.054 0.000 0.921 519.336 0.072 123 0.497
    TVAE 1.128 10731 0.645 0.560 0.555 4.885 0.764 0.031 0.040 0.974 337.949 0.052 123 0.505
    TVAE + Reglas del Dominio 1.001 10731 0.613 0.579 0.580 5.017 0.764 0.031 0.024 0.974 521.465 0.052 123 0.518
    OOF PSO para Aumento 1.000 10731 0.582 0.571 0.570 3.543 0.758 0.000 0.024 0.520 205.787 0.242 123 0.494
    OOF PSO para Aumento + Reglas 26.099 10731 0.603 0.626 0.630 5.343 0.758 0.000 0.641 0.616 353.828 0.249 123 0.475
    SMOTE RSB* Refinado 1.000 7731 0.614 0.592 0.595 6.592 0.741 0.264 0.024 0.985 140.750 0.028 180 0.464
    SMOTE RSB* Refinado + Reglas 1.165 7731 0.632 0.645 0.655 8.131 0.741 0.264 0.011 0.984 275.039 0.029 180 0.454 🏆
    Mejor seleccionado: SMOTE RSB* Refinado + Reglas del Dominio (TabDSFidelity: 8.131, AUC: 0.632, F1: 0.645, MIA: 0.454). Nota: Ratio <= 1.5 = Conjunto Balanceado.

    📈 Diagrama del Proceso de Generación

    Conjunto Original
    CD_39
    Balanceo
    (8 métodos)
    ↓ Selección por TabDSFidelity
    ⭐ Mejor Balanceado
    SMOTE RSB* Adaptado
    Generación Sintética
    (10 métodos)
    ↓ Evaluación TabDSFidelity
    ⭐ Mejor Sintético
    SMOTE RSB* + Ruido Gaussiano + Reglas del Dominio
    ⭐ Mejor Aumentado
    SMOTE RSB* Refinado + Reglas del Dominio
    Conjunto Sintético Final
    Seleccionado por calidad

    📊 Guía de Métricas de Evaluación

    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:

    🎯 Métricas de Rendimiento Predictivo

    AUC-ROC (0.5 - 1.0)

    ¿Qué mide? Capacidad del modelo para distinguir entre clases (Ej: mortalidad vs supervivencia).

    Interpretación:

    • 0.5: Sin capacidad predictiva (aleatorio)
    • 0.7-0.8: Aceptable
    • 0.8-0.9: Excelente
    • >0.9: Sobresaliente

    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.

    F1-Score (0 - 1.0)

    ¿Qué mide? Media armónica entre precisión y sensibilidad (recall).

    Interpretación:

    • 0.7-0.8: Buen equilibrio entre precisión y sensibilidad
    • 0.8-0.9: Muy buen equilibrio
    • >0.9: Excelente equilibrio

    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).

    Accuracy (0 - 1.0)

    ¿Qué mide? Proporción de predicciones correctas sobre el total.

    Interpretación:

    • 0.7-0.8: Buen rendimiento general
    • 0.8-0.9: Muy buen rendimiento
    • >0.9: Excelente rendimiento

    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.

    🔬 Índice de Fidelidad del Conjunto

    TabDSFidelity (0 - 10+)

    ¿Qué mide? Calidad global del conjunto sintético comparado con el original.

    Interpretación:

    • < 3.0: Baja fidelidad (poca similitud con el original)
    • 3.0 - 6.0: Fidelidad moderada
    • 6.0 - 8.0: Alta fidelidad
    • > 8.0: Muy alta fidelidad (excelente representació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).

    📊 Métricas de Similitud de Distribuciones

    Jensen-Shannon (Promedio) (0 - 1.0)

    ¿Qué mide? Similitud entre las distribuciones de variables numéricas del conjunto sintético y el original.

    Interpretación:

    • Cerca de 0: Distribuciones muy similares (ideal)
    • 0.1 - 0.3: Diferencias moderadas
    • > 0.3: Diferencias significativas

    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.

    Kolmogorov-Smirnov (p-valor promedio) (0 - 1.0)

    ¿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:

    • Cerca de 1.0: Altísima probabilidad de que sean la misma distribución (ideal)
    • > 0.05: Similitud aceptable (no se rechaza que sean iguales)
    • < 0.05: Diferencias estadísticamente significativas

    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.

    Kullback-Leibler (Promedio) (0 - ∞)

    ¿Qué mide? Divergencia entre las distribuciones de variables categóricas del conjunto sintético y el original.

    Interpretación:

    • Cerca de 0: Distribuciones muy similares (ideal)
    • 0.01 - 0.1: Diferencias pequeñas
    • > 0.1: Diferencias notables

    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.

    📊 Métricas de Estructura

    Similitud de Correlación (0 - 1.0)

    ¿Qué mide? Preservación de las relaciones entre variables del conjunto original.

    Interpretación:

    • Cerca de 1.0: Las relaciones entre variables se mantienen casi idénticas
    • > 0.9: Excelente preservación de relaciones
    • 0.7 - 0.9: Buena preservación
    • < 0.7: Pérdida significativa de relaciones

    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.

    ⏱️ Métricas de Rendimiento Temporal

    Tiempo Total (s) (segundos)

    ¿Qué mide? Tiempo total de ejecución del proceso de generación del conjunto.

    Interpretación:

    • < 100s: Generación rápida
    • 100-300s: Tiempo moderado
    • > 300s: Proceso lento (puede ser aceptable para conjuntos grandes)

    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.

    🔒 Métricas de Privacidad

    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.

    Distancia al Registro Más Cercano (≥ 0)

    ¿Qué mide? La distancia promedio entre cada registro sintético y su registro más cercano en el conjunto de datos original.

    Interpretación:

    • Cerca de 0: Los datos sintéticos son muy similares a los originales → ⚠️ ALTO RIESGO de privacidad
    • 0.01 - 0.05: Similaridad moderada → Riesgo moderado
    • > 0.05: Buena separación de los datos originales → ✅ BAJO RIESGO de privacidad

    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.

    Copias Exactas (≥ 0)

    ¿Qué mide? Número de registros sintéticos que son copias idénticas de registros en el conjunto de datos original.

    Interpretación:

    • 0: Ninguna copia exacta → ✅ SEGURO
    • 1 - 10: Pocas copias → Riesgo bajo
    • 11 - 50: Copias moderadas → ⚠️ RIESGO MODERADO
    • > 50: Muchas copias → 🔴 ALTO RIESGO de reidentificació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.

    Ataque de Inferencia de Membresía (MIA) (0 - 1.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:

    • 0.5: Aleatorio (ideal) → ✅ PRIVACIDAD ÓPTIMA
    • 0.5 - 0.55: Riesgo bajo
    • 0.55 - 0.6: Riesgo moderado → ⚠️ PRIVACIDAD CUESTIONABLE
    • > 0.6: Riesgo alto → 🔴 PRIVACIDAD COMPROMETIDA

    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.

    📝 Resumen Rápido para Selección

    🏆
    Para seleccionar el mejor conjunto:
    • Priorizar TabDSFidelity más alto
    • Buscar AUC-ROC y F1 altos
    • Valores de divergencia JS y KL cercanos a 0
    • P-valor de KS lo más cercano a 1.0 posible (>0.05)
    • Correlación > 0.9
    ⚖️
    Balance entre calidad y tiempo:
    • Un TabDSFidelity > 8.0 indica excelente calidad
    • Tiempos de generación < 200s son aceptables
    • La Correlación > 0.95 asegura buena preservación de relaciones
    🔒
    Para garantizar la privacidad:
    • MIA lo más cercano a 0.5 (ideal)
    • Copias exactas = 0 (ideal) o lo más bajo posible
    • Distancia promedio > 0.02 para buena separación
    • Evaluar balance entre calidad (TabDSFidelity) y privacidad (MIA)

    📥 Descargar conjuntos y código Python

    Formatos incluidos: CSV.

    📚 Cómo citar este conjunto

    Díaz Bastida, M., Pérez Vázquez, R. A., & Bello Pérez, R. (2026). High-Fidelity Synthetic Dataset for Water Potability Prediction (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32945999.v1