CD_52 Original + Derivados

CD_52: EEG Eye State

Conjunto de datos de ondas cerebrales (EEG) para detectar si una persona tiene los ojos abiertos o cerrados. Al ser una grabación continua de 14 sensores, los datos mantienen un orden temporal estricto (como los fotogramas de un video). Integra lecturas de 14 electrodos con alta autocorrelación.

📈 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.66 0.73 0.69 110
Clase 1 0.62 0.54 0.58 90
Accuracy 0.65
Macro Avg 0.64 0.64 0.64 200
Weighted Avg 0.64 0.65 0.64 200
AUC-ROC: 0.90
F1-Score (weighted): 0.64
Accuracy: 0.65
➡️ Mejora
⬆ +0.10 AUC ⬆ +0.35 F1 ⬆ +0.34 Acc
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 1.00 0.98 0.99 110
Clase 1 0.98 ⬆ +0.36 1.00 ⬆ +0.46 0.99 ⬆ +0.41 90
Accuracy 0.99 ⬆ +0.34
Macro Avg 0.99 ⬆ +0.35 0.99 ⬆ +0.35 0.99 ⬆ +0.35 200
Weighted Avg 0.99 ⬆ +0.35 0.99 ⬆ +0.34 0.99 ⬆ +0.35 200
AUC-ROC: 1.00 ⬆ +0.10
F1-Score (weighted): 0.99 ⬆ +0.35
Accuracy: 0.99 ⬆ +0.34

📊 Resumen de Mejoras en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.62
Sintético: 0.98
⬆ +0.36
📈
Recall
Original: 0.54
Sintético: 1.00
⬆ +0.46
⚖️
F1-Score
Original: 0.58
Sintético: 0.99
⬆ +0.41

📚 Fuente Original del Conjunto

EEG Eye State Dataset

v1.0
Datos de EEG con Emotiv Neuroheadset
Disponible en repositorios públicos

📄 Resumen (Abstract)

El conjunto de datos de Estado Ocular por EEG (EEG Eye State) consiste en 14,980 valores de EEG y un valor que indica el estado del ojo (abierto o cerrado). Todos los datos provienen de una medición EEG continua con el Emotiv EEG Neuroheadset con una duración de 117 segundos. El estado del ojo fue detectado mediante una cámara durante la medición EEG y agregado manualmente al archivo después de analizar los fotogramas del video. 1 indica el estado ojo cerrado y 0 el estado ojo abierto. Todos los valores están en orden cronológico con el primer valor medido al inicio del archivo.

🧠 Contexto del Dominio

La electroencefalografía (EEG) es una técnica no invasiva que registra la actividad eléctrica del cerebro mediante electrodos colocados en el cuero cabelludo. El Emotiv EEG Neuroheadset es un dispositivo de EEG portátil y de bajo costo que permite la captura de señales cerebrales en entornos no clínicos. La detección del estado ocular (ojos abiertos vs. cerrados) mediante EEG es un problema clásico en el procesamiento de señales cerebrales que tiene aplicaciones en:

  • Interfaces cerebro-computadora (BCI) para personas con discapacidades motoras
  • Monitoreo de fatiga y somnolencia en conductores y operarios
  • Estudios de sueño y estados de vigilia
  • Evaluación de atención y estados cognitivos

La actividad EEG cambia significativamente cuando los ojos están cerrados, con un aumento en la actividad alfa (8-13 Hz) en las regiones occipitales del cerebro. Este dataset captura este fenómeno y permite entrenar modelos para clasificar el estado ocular basándose únicamente en señales EEG.

📊 Descripción de Datos

El dataset contiene 14,980 instancias con 14 atributos (13 canales EEG y 1 variable objetivo). Las características son de tipo numérico (real) y no presentan valores faltantes. Los datos están en orden cronológico, representando una serie temporal continua.

📋 Canales del EEG (Sistema Internacional 10-20)

Los 13 canales EEG corresponden a la ubicación de los electrodos según el Sistema Internacional 10-20:

Canal
Descripción
AF3
Frontal anterior izquierdo
F7
Frontal lateral izquierdo
F3
Frontal medial izquierdo
FC5
Frontal central lateral izquierdo
T7
Temporal izquierdo
P7
Parietal lateral izquierdo
O1
Occipital izquierdo
O2
Occipital derecho
P8
Parietal lateral derecho
T8
Temporal derecho
FC6
Frontal central lateral derecho
F4
Frontal medial derecho
F8
Frontal lateral derecho
AF4
Frontal anterior derecho
📋 Variables del Dataset
Variable Tipo Descripción Unidades
A. Canales EEG (13 características)
AF3 Continuo Actividad eléctrica en AF3 μV
F7 Continuo Actividad eléctrica en F7 μV
F3 Continuo Actividad eléctrica en F3 μV
FC5 Continuo Actividad eléctrica en FC5 μV
T7 Continuo Actividad eléctrica en T7 μV
P7 Continuo Actividad eléctrica en P7 μV
O1 Continuo Actividad eléctrica en O1 μV
O2 Continuo Actividad eléctrica en O2 μV
P8 Continuo Actividad eléctrica en P8 μV
T8 Continuo Actividad eléctrica en T8 μV
FC6 Continuo Actividad eléctrica en FC6 μV
F4 Continuo Actividad eléctrica en F4 μV
F8 Continuo Actividad eléctrica en F8 μV
AF4 Continuo Actividad eléctrica en AF4 μV
B. Variable Objetivo
eyeDetection Binaria (Target) Estado del ojo (detectado por cámara) 1 = Cerrado, 0 = Abierto

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria (Ojo abierto vs. Ojo cerrado)
  • Dimensión: Multivariante, Serie Temporal (14,980 × 14)
  • Tipo de características: Reales (continuas)
  • Valores faltantes: No
  • Área de aplicación: Neurociencia, Interfaces Cerebro-Computadora (BCI), Procesamiento de Señales
  • Dispositivo: Emotiv EEG Neuroheadset
  • Duración: 117 segundos
  • Orden cronológico: Los datos están en orden temporal

⚖️ Ética y Privacidad

El conjunto de datos contiene señales EEG anonimizadas que no contienen información personal identificable. La medición se realizó en un entorno de investigación con el consentimiento del participante. Restricción de confidencialidad: El uso de los datos está restringido a fines académicos y de investigación. La publicación de resultados debe limitarse a métricas de evaluación, resultados agregados y metodología del modelo, sin divulgación de información que permita la reidentificación del participante.

📋 Notas de Uso

Este conjunto de datos es ideal para clasificación de series temporales y detección de estado ocular. Se recomienda:

  • La variable objetivo eyeDetection está codificada como 1 = Ojo cerrado y 0 = Ojo abierto
  • Los datos están en orden cronológico, lo que permite análisis de series temporales y modelos secuenciales
  • Los canales O1 y O2 (occipitales) suelen ser los más informativos para detectar el estado ocular (actividad alfa)
  • El dataset es adecuado para modelos secuenciales (LSTM, GRU, Transformers) y clasificadores convencionales (SVM, Random Forest, XGBoost)
  • Para modelos no secuenciales, se pueden utilizar características estadísticas (media, varianza, potencia por banda de frecuencia)
  • Estandarizar/normalizar las señales EEG por canal
  • Los canales EEG tienen correlación espacial que puede explotarse con técnicas de aprendizaje
  • El desbalanceo de clases debe verificarse, aunque la duración de 117 segundos sugiere un balanceo razonable entre estados
  • Utilizar validación temporal (time-series split) en lugar de validación cruzada aleatoria debido a la naturaleza secuencial de los datos
  • Este dataset es adecuado para investigación en BCI y procesamiento de señales biomédicas

💡 Importancia en Neurociencia y BCI

La detección del estado ocular mediante EEG es un problema fundamental en neurociencia y sistemas BCI. La actividad cerebral cambia significativamente entre estados de ojos abiertos y cerrados:

  • Con los ojos cerrados, hay un aumento de la actividad alfa (8-13 Hz), especialmente en regiones occipitales
  • La actividad beta (>13 Hz) también se ve afectada por el estado ocular
  • La detección automática del estado ocular tiene aplicaciones en monitoreo de somnolencia y control de interfaces
  • Los dispositivos EEG portátiles como el Emotiv permiten la recolección de datos en entornos no clínicos

Este dataset es particularmente valioso porque utiliza un dispositivo EEG de bajo costo (Emotiv) y proporciona datos etiquetados mediante grabación de video, lo que permite el desarrollo de modelos de clasificación robustos para aplicaciones prácticas de BCI.

📖 Cómo citar la fuente original

EEG Eye State Dataset. UCI Machine Learning Repository. https://archive.ics.uci.edu/ml/datasets/EEG+Eye+State

📚 Referencias Adicionales

  • UCI Machine Learning Repository - EEG Eye State. https://archive.ics.uci.edu/ml/datasets/EEG+Eye+State
  • Emotiv Systems. Emotiv EEG Neuroheadset. https://www.emotiv.com
  • Wolpaw, J. R., & Wolpaw, E. W. (Eds.). (2012). Brain-Computer Interfaces: Principles and Practice. Oxford University Press.
  • Niedermeyer, E., & da Silva, F. L. (Eds.). (2005). Electroencephalography: Basic Principles, Clinical Applications, and Related Fields. Lippincott Williams & Wilkins.

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (EEG Eye State Dataset)

  • Lectura personalizada del formato ARFF:
    • Procesamiento manual del archivo .arff (Attribute-Relation File Format) extrayendo exclusivamente la sección @data.
    • Asignación de nombres de columnas según la documentación oficial: 14 sensores EEG (AF3, F7, F3, FC5, T7, P7, O1, O2, P8, T8, FC6, F4, F8, AF4) y 1 variable objetivo (eyeDetection).
    • Manejo de archivos ARFF sin cabecera de atributos compleja.
  • Conversión y validación de tipos de datos:
    • Conversión forzada de 14 variables de sensores a tipo float utilizando pd.to_numeric(..., errors='coerce') para manejar valores no numéricos.
    • Conversión de la variable objetivo eyeDetection a tipo entero (int).
    • Eliminación de filas con valores nulos resultantes de la conversión para garantizar integridad del conjunto.
  • Transformación de la variable objetivo:
    • Preservación de eyeDetection en su formato binario original: 0 = Eye Open (Ojos Abiertos), 1 = Eye Closed (Ojos Cerrados).
    • Documentación del objetivo: detección del estado de apertura/cierre de ojos basado en señales EEG.
  • Preservación y documentación de variables de sensores:
    • Mantenimiento de las 14 variables correspondientes a sensores EEG en el sistema 10-20: Frontales (AF3, AF4, F7, F8, F3, F4, FC5, FC6), Temporales (T7, T8), Parietales (P7, P8), Occipitales (O1, O2).
    • Documentación de unidades: Microvoltios (μV) o valores ADC crudos.
    • Contextualización espacial de los sensores para interpretación neurofisiológica.
  • 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 estado ocular).
    • 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_eeg_eye_state.txt con semántica completa de la variable objetivo y la estructura de sensores EEG.
    • Documentación de la variable eyeDetection (0 = Ojos Abiertos, 1 = Ojos Cerrados).
    • Descripción de los 14 sensores EEG agrupados por región cerebral (Frontal, Temporal, Parietal, Occipital).
    • Contextualización del dataset: datos de electroencefalografía (EEG) para detección de estado ocular.
    • Nota sobre la naturaleza secuencial de los datos (117 segundos de registro).
    • Estadísticas finales: total de instancias, distribución de clases y ratio de desbalance.
  • Preservación de la estructura y calidad de datos:
    • Mantenimiento de las 14,980 instancias (muestras temporales de EEG) originales para el dataset completo.
    • Dataset reducido de 1,000 ejemplos estratificados para experimentación eficiente.
    • Dataset final con 14 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 14,980 muestras de EEG (con versión reducida estratificada de 1,000 ejemplos) con 14 variables predictoras (señales de sensores EEG en sistema 10-20) y 1 variable objetivo binaria (eyeDetection). Desbalance moderado-preservado (~56% ojos cerrados / ~44% ojos abiertos) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de señales biomédicas y análisis de electroencefalografía (EEG), donde la detección de estados oculares y la monitorización de actividad cerebral tienen aplicaciones en interfaces cerebro-computadora (BCI) y estudios de sueño/vigilia.

🧠 Fuente: EEG Eye State Dataset (UCI Machine Learning Repository) - Datos de electroencefalografía para detección de estado ocular.

📊 Sensores EEG (sistema 10-20): 14 electrodos distribuidos en regiones frontales (AF3, AF4, F7, F8, F3, F4, FC5, FC6), temporales (T7, T8), parietales (P7, P8) y occipitales (O1, O2).

⏱️ Naturaleza temporal: Datos secuenciales de 117 segundos continuos de registro EEG, con muestras individuales representando instantes de tiempo.

📁 Leyenda disponible: Archivo leyenda_eeg_eye_state.txt con descripción completa de la variable objetivo y la ubicación de los sensores EEG.

🎯 Variable objetivo: eyeDetection (1 = Ojos Cerrados, 0 = Ojos Abiertos).

🧹 Limpieza aplicada: Lectura manual de ARFF, conversión de sensores a float, conversión de target a int, eliminación de filas con nulos, reducción estratificada a 1,000 ejemplos.

📋 Diccionario de Datos Detallado

Variable Descripción del Sensor EEG Tipo Rango / Categorías Unidad ¿Objetivo?
AF3 Electrodo AF3 - Pre-frontal izquierdo Numérico 4,210.77 - 4,462.05 μV No
AF4 Electrodo AF4 - Pre-frontal derecho Numérico 4,258.97 - 4,529.23 μV No
F7 Electrodo F7 - Frontal izquierdo Numérico 3,929.74 - 4,136.92 μV No
F3 Electrodo F3 - Frontal izquierdo Numérico 4,211.28 - 4,373.85 μV No
F4 Electrodo F4 - Frontal derecho Numérico 4,228.21 - 4,380 μV No
F8 Electrodo F8 - Frontal derecho Numérico 4,450.26 - 4,768.72 μV No
FC5 Electrodo FC5 - Fronto-central izquierdo Numérico 4,072.82 - 4,232.31 μV No
FC6 Electrodo FC6 - Fronto-central derecho Numérico 4,109.23 - 4,305.13 μV No
T7 Electrodo T7 - Temporal izquierdo Numérico 4,310.26 - 4,442.05 μV No
T8 Electrodo T8 - Temporal derecho Numérico 4,165.64 - 4,331.28 μV No
P7 Electrodo P7 - Parietal izquierdo Numérico 4,570.26 - 4,747.69 μV No
P8 Electrodo P8 - Parietal derecho Numérico 4,153.85 - 4,297.44 μV No
O1 Electrodo O1 - Occipital izquierdo Numérico 4,032.82 - 4,163.59 μV No
O2 Electrodo O2 - Occipital derecho Numérico 4,567.18 - 4,714.87 μV No
eyeDetection Estado ocular (objetivo) Binario 0: Ojos abiertos, 1: Ojos cerrados N/A
15 Variables totales
14 Numéricas
0 Categóricas
1 Binarias
Objetivo: Estado Ocular (eyeDetection)
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 Estado Ocular por EEG. Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de clasificación de señales cerebrales.

eyeDetection 🎯 Objetivo
Código Significado
0 Ojos Abiertos (Eye Open) - Clase mayoritaria (~55.1%)
1 Ojos Cerrados (Eye Closed) - Clase minoritaria (~44.9%)
🎯

Variable Objetivo: Clasifica el estado ocular del sujeto basado en la amplitud de señales EEG de 14 electrodos.

⚠️

Naturaleza temporal: Los datos son una serie temporal continua de 117 segundos. Existe autocorrelación temporal.

Variables Binarias Binario

Formato: 0 = Ojos abiertos, 1 = Ojos cerrados

eyeDetection 🎯 Variable Objetivo: Estado ocular (0: Abiertos, 1: Cerrados)
ℹ️

Nota: Única variable binaria en el dataset.

📊
Variables numéricas: 14
  • 2 Pre-frontales (AF3, AF4)
  • 4 Frontales (F7, F3, F4, F8)
  • 2 Fronto-centrales (FC5, FC6)
  • 2 Temporales (T7, T8)
  • 2 Parietales (P7, P8)
  • 2 Occipitales (O1, O2)
🎯
Variables binarias: 1
  • 🎯 eyeDetection (Objetivo - Estado ocular)
⚠️
Recomendaciones de Análisis:
  • Electrodos clave: O1, O2 (región occipital) son los más discriminantes para estado ocular
  • Ritmo Alfa: El aumento de actividad Alfa en ojos cerrados es el principal marcador
  • Escalado: Todas las variables tienen rangos similares (~3,900-4,700 μV)

🔬 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

  • eyeDetection == 1 → O1 > 4500
  • eyeDetection == 1 → O2 > 4500
  • eyeDetection == 0 → O1 < 4450
  • eyeDetection == 0 → O2 < 4450
  • O1 < 4100 → eyeDetection = 0
  • AF3 > 4400 → AF4 > 4200
  • AF3 < 4100 → AF4 < 4300
  • T7 > 4400 → T8 > 4100
  • T7 < 4200 → T8 < 4300
  • P7 > 4600 → P8 > 4300
  • O1 > 4600 → O2 > 4400
  • F7 > 4100 → T7 > 4200
  • F8 > 4600 → T8 > 4200
  • AF3 > 4400 → O1 > 4400
  • eyeDetection == 1 → (P7 > 4550) OR (P8 > 4550) OR (O1 > 4550) OR (O2 > 4550)

⚙️ 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 - - - - - - - - - - - - - -
Smote - - - - - - - - - - - - - -
Borderline SMOTE - - - - - - - - - - - - - -
ADASYN - - - - - - - - - - - - - -
SMOTE RSB* Adaptado - - - - - - - - - - - - - -
SMOTE RSB* Adaptado + Reglas - - - - - - - - - - - - - -
OOF PSO para Balanceo - - - - - - - - - - - - - -
OOF PSO para Balanceo + Reglas - - - - - - - - - - - - - -
Mejor seleccionado: Sin datos disponibles (TabDSFidelity: -, AUC: -, F1: -, MIA: -). 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.227 7277 0.910 0.721 0.720 5.538 0.770 0.840 0.000 0.993 80.278 0.074 0 0.451
SMOTE RSB* + Ruido Gaussiano + Reglas 15.729 7277 0.556 0.484 0.585 2.475 0.770 0.840 0.611 0.961 216.591 0.074 0 0.452
CTGAN 1.035 10000 0.638 0.600 0.600 2.767 0.338 0.010 0.004 0.713 557.664 0.061 0 0.518
CTGAN + Reglas del Dominio 90.743 10000 0.577 0.401 0.555 1.623 0.338 0.010 1.347 0.717 712.190 0.061 0 0.453
TVAE 1.305 10000 0.797 0.727 0.730 3.882 0.806 0.039 0.000 0.886 219.574 0.036 0 0.484
TVAE + Reglas del Dominio 20.834 10000 0.576 0.464 0.585 1.309 0.806 0.039 0.722 0.867 377.118 0.036 0 0.435
OOF PSO para Aumento 1 10000 0.619 0.488 0.560 0.599 0.828 0.000 0.005 0.424 137.692 0.286 0 0.460
OOF PSO para Aumento + Reglas 8.363 10000 0.595 0.428 0.560 0.340 0.828 0.000 0.379 0.453 310.989 0.287 0 0.499
SMOTE RSB* Refinado 1 7000 1.000 0.995 0.995 7.961 0.813 0.785 0.005 0.991 75.204 0.010 0 0.437 🏆
SMOTE RSB* Refinado + Reglas 13.257 7000 0.558 0.512 0.610 2.536 0.813 0.785 0.545 0.958 208.350 0.020 0 0.458
Mejor seleccionado: SMOTE RSB* Refinado (TabDSFidelity: 7.961, AUC: 1.000, F1: 0.995, MIA: 0.437). 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.227 8277 0.997 0.970 0.970 5.845 0.673 0.914 0.000 0.994 153.845 0.073 0 0.430
SMOTE RSB* + Ruido Gaussiano + Reglas 8.363 8277 0.996 0.882 0.885 2.096 0.673 0.914 0.379 0.973 292.075 0.073 0 0.434
CTGAN 1.051 11000 1.000 1.000 1.000 7.556 0.311 0.017 0.003 0.735 641.932 0.056 186 0.470
CTGAN + Reglas del Dominio 18.713 11000 1.000 1.000 1.000 7.566 0.311 0.017 0.679 0.741 791.891 0.055 186 0.426
TVAE 1.298 11000 1.000 1.000 1.000 6.924 0.718 0.063 0.000 0.899 305.510 0.032 186 0.436
TVAE + Reglas del Dominio 11.128 11000 1.000 0.995 0.995 6.730 0.718 0.063 0.480 0.887 473.473 0.033 186 0.445
OOF PSO para Aumento 1.019 11000 1.000 1.000 1.000 6.000 0.728 0.000 0.004 0.435 227.962 0.261 186 0.427
OOF PSO para Aumento + Reglas 6.251 11000 1.000 1.000 1.000 6.050 0.728 0.000 0.283 0.463 401.552 0.261 186 0.437
SMOTE RSB* Refinado 1.026 8000 1.000 1.000 1.000 8.038 0.695 0.880 0.004 0.992 147.628 0.008 254 0.431 🏆
SMOTE RSB* Refinado + Reglas 7.511 8000 1.000 0.990 0.990 7.655 0.695 0.880 0.342 0.970 280.499 0.017 254 0.434
Mejor seleccionado: SMOTE RSB* Refinado (TabDSFidelity: 8.038, AUC: 1.000, F1: 1.000, MIA: 0.431). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_52
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
----
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
SMOTE RSB* Refinado
⭐ Mejor Aumentado
SMOTE RSB* Refinado
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 EEG-Based Eye State Detection (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32946797.v1