CD_50 Original + Derivados

CD_50: AI4I 2020 Predictive Maintenance

Conjunto de datos de simulación industrial para la predicción de fallos mecánicos. Caracterizado por un desbalance alto (3.4%) y la incorporación de reglas físicas explícitas.

📈 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.96 1.00 0.98 193
Clase 1 0.00 0.00 0.00 7
Accuracy 0.96
Macro Avg 0.48 0.50 0.49 200
Weighted Avg 0.93 0.96 0.95 200
AUC-ROC: 0.60
F1-Score (weighted): 0.95
Accuracy: 0.96
➡️ Mejora
⬆ +0.38 AUC ⬆ +0.02 F1 ⬆ +0.01 Acc
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.97 1.00 0.99 193
Clase 1 1.00 ⬆ +1.00 0.29 ⬆ +0.29 0.44 ⬆ +0.44 7
Accuracy 0.97 ⬆ +0.01
Macro Avg 0.99 ⬆ +0.51 0.64 ⬆ +0.14 0.72 ⬆ +0.23 200
Weighted Avg 0.98 ⬆ +0.05 0.97 ⬆ +0.01 0.97 ⬆ +0.02 200
AUC-ROC: 0.98 ⬆ +0.38
F1-Score (weighted): 0.97 ⬆ +0.02
Accuracy: 0.97 ⬆ +0.01

📊 Resumen de Mejoras en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.00
Sintético: 1.00
⬆ +1.00
📈
Recall
Original: 0.00
Sintético: 0.29
⬆ +0.29
⚖️
F1-Score
Original: 0.00
Sintético: 0.44
⬆ +0.44

📚 Fuente Original del Conjunto

AI4I 2020 Predictive Maintenance Dataset

v1.0
Matzka, S.
Publicado: 29 de agosto de 2020

📄 Resumen (Abstract)

El conjunto de datos de Mantenimiento Predictivo AI4I 2020 es un dataset sintético que refleja datos reales de mantenimiento predictivo encontrados en la industria. Dado que los conjuntos de datos reales de mantenimiento predictivo son generalmente difíciles de obtener y, en particular, difíciles de publicar, este dataset proporciona una alternativa sintética pero realista para la investigación y el desarrollo de modelos de mantenimiento predictivo. El dataset consta de 10,000 puntos de datos con 14 características que incluyen condiciones operativas de máquinas, desgaste de herramientas y modos de fallo. El objetivo es predecir si una máquina fallará (Machine failure) y el tipo de fallo específico (Failure Type).

🔧 Contexto del Dominio

El mantenimiento predictivo es una aplicación crítica del aprendizaje automático en la industria 4.0. El objetivo es predecir fallos en equipos antes de que ocurran, permitiendo:

  • Reducir tiempos de inactividad no planificados
  • Optimizar programas de mantenimiento y reducir costos
  • Mejorar la seguridad en entornos industriales
  • Aumentar la vida útil de los equipos
⚙️ Generación de Datos Sintéticos
  • air temperature [K]: Proceso de caminata aleatoria normalizado a σ = 2 K alrededor de 300 K
  • process temperature [K]: Caminata aleatoria con σ = 1 K, añadido a la temperatura del aire + 10 K
  • rotational speed [rpm]: Calculado a partir de una potencia de 2860 W, con ruido normalmente distribuido
  • torque [Nm]: Distribución normal alrededor de 40 Nm con σ = 10 Nm, sin valores negativos
  • tool wear [min]: Las variantes de calidad H/M/L añaden 5/3/2 minutos de desgaste

El dataset incluye variantes de calidad de productos (L: 50%, M: 30%, H: 20%) que afectan el desgaste de la herramienta.

📊 Descripción de Datos

El dataset contiene 10,000 instancias con 14 atributos. Las características son de tipo mixto (numéricas y categóricas) y no presentan valores faltantes.

📋 Variables del Dataset
Variable Tipo Descripción Unidades / Categorías
A. Identificadores (A excluir del modelo)
UID Entero Identificador único (1-10000) Sin valor predictivo
Product ID Categórica Identificador del producto (letra + número de serie) L, M, H + número de serie
Type Categórica Variante de calidad del producto L (50%), M (30%), H (20%)
B. Variables Operativas
Air temperature Continuo Temperatura del aire Kelvin (K)
Process temperature Continuo Temperatura del proceso Kelvin (K)
Rotational speed Entero Velocidad de rotación rpm
Torque Continuo Torque aplicado Nm
Tool wear Entero Desgaste de la herramienta minutos
C. Variables de Fallo
Machine failure Binaria (Target) Indica si la máquina falló 1 = Fallo, 0 = No fallo
TWF Binaria Fallo por desgaste de herramienta 1 = Sí, 0 = No
HDF Binaria Fallo por disipación de calor 1 = Sí, 0 = No
PWF Binaria Fallo por potencia 1 = Sí, 0 = No
OSF Binaria Fallo por sobreesfuerzo 1 = Sí, 0 = No
RNF Binaria Fallo aleatorio 1 = Sí, 0 = No
⚠️ Modos de Fallo y Condiciones
Modo de Fallo Descripción Condición / Frecuencia
TWF Tool Wear Failure Desgaste entre 200-240 min (120 casos)
HDF Heat Dissipation Failure ΔT < 8.6 K y velocidad < 1380 rpm (115 casos)
PWF Power Failure Potencia < 3500 W o > 9000 W (95 casos)
OSF Overstrain Failure Desgaste × Torque > umbral por variante (98 casos)
RNF Random Failure Probabilidad aleatoria del 0.1% (5 casos)

⚠️ Machine failure = 1 si al menos un modo de fallo es verdadero. No es transparente para el modelo qué modo causó el fallo.

⚠️ Dos variables objetivo: Machine failure (binaria) y Failure Type (multi-clase). No usar una como característica para evitar fuga de datos.

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria (Machine failure) y Clasificación multi-clase (Failure Type)
  • Dimensión: Multivariante (10,000 × 14)
  • Tipo de características: Mixtas (Numéricas, Categóricas, Binarias)
  • Valores faltantes: No
  • Área de aplicación: Mantenimiento Predictivo, Industria 4.0, Manufactura
  • Dataset sintético: Refleja condiciones reales de mantenimiento predictivo

📖 Publicación Introductoria

El artículo fundamental que describe la aplicación de IA explicable para mantenimiento predictivo es:

Matzka, S. (2020). Explainable Artificial Intelligence for Predictive Maintenance Applications. International Conference on Artificial Intelligence for Industries (AI4I), 69-74. https://doi.org/10.1109/AI4I50062.2020.00021

⚖️ Ética y Privacidad

El conjunto de datos es sintético y no contiene datos reales de empresas, lo que elimina preocupaciones de privacidad y propiedad industrial. Se distribuye bajo la licencia Creative Commons Attribution 4.0 International (CC BY 4.0), permitiendo su uso, modificación y distribución con atribución adecuada. 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 presenta dos objetivos diferentes y requiere consideraciones especiales:

  • Dos variables objetivo:
    • Machine failure: Clasificación binaria (1 = fallo, 0 = sin fallo)
    • TWF, HDF, PWF, OSF, RNF: Modos de fallo individuales (binarios)
  • ⚠️ Importante: No usar las variables de fallo como características, ya que causarían fuga de datos
  • Excluir variables identificadoras (UID, Product ID, Type) del modelado
  • La variable Type (L/M/H) afecta el desgaste de la herramienta y puede ser una característica útil
  • Codificar Product ID y Type como categóricas (One-Hot Encoding)
  • Estandarizar/normalizar variables numéricas (temperaturas, velocidad, torque, desgaste)
  • El dataset tiene desbalanceo de clases (la mayoría de instancias no tienen fallo)
  • Los modos de fallo son mutuamente excluyentes (solo uno puede ocurrir por instancia)
  • El dataset es adecuado para modelos de clasificación (Random Forest, XGBoost, SVM, Redes Neuronales)
  • La interpretabilidad es importante en mantenimiento predictivo (XAI)

💡 Importancia en Mantenimiento Predictivo

El mantenimiento predictivo es una de las aplicaciones más valiosas del aprendizaje automático en la industria 4.0. Este dataset sintético permite:

  • Desarrollar y probar modelos de predicción de fallos sin datos reales
  • Investigar diferentes modos de fallo (desgaste, calor, potencia, sobreesfuerzo, aleatorio)
  • Entrenar modelos que identifiquen la causa raíz de los fallos
  • Implementar mantenimiento predictivo que optimice el reemplazo de herramientas y reduzca tiempos de inactividad
  • Explorar técnicas de IA explicable (XAI) para entender las decisiones del modelo

El dataset fue creado para el International Conference on Artificial Intelligence for Industries (AI4I) 2020 y ha sido ampliamente utilizado en investigaciones sobre mantenimiento predictivo y explicabilidad en IA.

📖 Cómo citar la fuente original

Matzka, S. (2020). AI4I 2020 Predictive Maintenance Dataset. UCI Machine Learning Repository. https://doi.org/10.24432/C5HS5C

📚 Referencias Adicionales

  • Matzka, S. (2020). Explainable Artificial Intelligence for Predictive Maintenance Applications. International Conference on Artificial Intelligence for Industries (AI4I), 69-74. https://doi.org/10.1109/AI4I50062.2020.00021
  • UCI Machine Learning Repository - AI4I 2020 Predictive Maintenance Dataset. https://archive.ics.uci.edu/ml/datasets/AI4I+2020+Predictive+Maintenance+Dataset
  • Jardine, A. K. S., Lin, D., & Banjevic, D. (2006). A review on machinery diagnostics and prognostics implementing condition-based maintenance. Mechanical Systems and Signal Processing, 20(7), 1483-1510.
  • Lee, J., Wu, F., Zhao, W., Ghaffari, M., Liao, L., & Siegel, D. (2014). Prognostics and health management design for rotary machinery systems—Reviews, methodology and applications. Mechanical Systems and Signal Processing, 42(1-2), 314-334.

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (Predictive Maintenance - AI4I 2020)

  • Limpieza inicial y eliminación de variables:
    • Eliminación de columnas identificadoras y con fuga de datos: UDI (identificador único), Product ID (identificador de producto), Failure Type (tipo de fallo — causa Data Leakage).
    • Reducción de la dimensionalidad del dataset para mejorar la eficiencia del modelo y evitar sobreajuste.
  • Renombrado y estandarización de nombres de columnas:
    • Transformación de nombres para eliminar caracteres especiales y espacios: 'Air temperature [K]'Air_Temp_K, 'Process temperature [K]'Process_Temp_K, 'Rotational speed [rpm]'Rotational_Speed_rpm, 'Torque [Nm]'Torque_Nm, 'Tool wear [min]'Tool_Wear_min, 'Target'Machine_Failure, 'Type'Product_Quality_Type.
    • Facilitación del uso en librerías de Machine Learning y generación de datos sintéticos.
  • Codificación de variable ordinal:
    • Product_Quality_Type: Mapeo preservando jerarquía de calidad: 'L' (Low) → 0, 'M' (Medium) → 1, 'H' (High) → 2.
    • Documentación detallada del mapeo en la leyenda.
  • Preservación de variables físicas y de proceso:
    • Variables de temperatura: Air_Temp_K (ambiente), Process_Temp_K (proceso) — en Kelvin.
    • Variables de operación: Rotational_Speed_rpm (velocidad de giro), Torque_Nm (fuerza de torsión), Tool_Wear_min (desgaste de herramienta en minutos).
    • Relaciones físicas documentadas: velocidad inversamente proporcional al torque.
  • Estandarización y optimización de tipos de datos:
    • Conversión forzada de Product_Quality_Type y Machine_Failure a tipo entero (int).
    • Preservación de variables continuas (temperaturas, velocidad, torque, desgaste) como float para mantener precisión.
  • 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 fallos de máquina).
    • 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_predictive_maintenance.txt con semántica completa de la variable objetivo y todas las variables predictoras.
    • Documentación de la variable Machine_Failure (0 = No Failure, 1 = Failure).
    • Descripción de la variable ordinal Product_Quality_Type (0=Low, 1=Medium, 2=High).
    • Descripción de variables físicas con sus unidades de medida (Kelvin, rpm, Nm, minutos).
    • Contextualización del dataset: mantenimiento predictivo en maquinaria industrial (AI4I 2020).
    • 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 10,000 instancias (registros de máquinas) originales para el dataset completo.
    • Dataset reducido de 1,000 ejemplos estratificados para experimentación eficiente.
    • Dataset final con 6 variables predictoras (mixtas: ordinal y continuas) y 1 variable objetivo binaria.
    • Guardado en formato CSV con separador punto y coma (;) para compatibilidad internacional.

📊 Resultado: Dataset de 10,000 registros de maquinaria industrial (con versión reducida estratificada de 1,000 ejemplos) con 6 variables predictoras (de proceso, operación y calidad) y 1 variable objetivo binaria (Machine_Failure). Desbalance moderado-preservado (~96.5% sin fallo / ~3.5% con fallo) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de mantenimiento predictivo y detección de fallos en maquinaria industrial, donde la monitorización de variables físicas (temperaturas, velocidad, torque, desgaste) es fundamental para la prevención de averías.

🏭 Fuente: Predictive Maintenance Dataset (AI4I 2020) - Datos de sensores industriales para mantenimiento predictivo.

🌡️ Variables de temperatura: Air_Temp_K (temperatura ambiente) y Process_Temp_K (temperatura del proceso) — ambas en Kelvin.

⚙️ Variables de operación: Rotational_Speed_rpm (velocidad de giro), Torque_Nm (fuerza de torsión), Tool_Wear_min (desgaste de herramienta).

📊 Variable de calidad: Product_Quality_Type (0=Low, 1=Medium, 2=High) — ordinal preservando jerarquía.

📁 Leyenda disponible: Archivo leyenda_predictive_maintenance.txt con descripción completa de la variable objetivo, variable ordinal y variables físicas.

🎯 Variable objetivo: Machine_Failure (1 = Fallo de máquina, 0 = Funcionamiento normal).

🧹 Limpieza aplicada: Eliminación de UDI, Product ID y Failure Type (Data Leakage), renombrado de columnas, codificación ordinal de Product_Quality_Type, estandarización de tipos, reducción estratificada a 1,000 ejemplos.

📋 Diccionario de Datos Detallado

Variable Descripción Industrial Tipo Rango / Categorías Unidad ¿Objetivo?
Product_Quality_Type Tipo de calidad del producto (ordinal) Categórico 0: Low (Baja), 1: Medium (Media), 2: High (Alta) N/A No
Air_Temp_K Temperatura ambiente del aire Numérico 295.6 - 304.4 K No
Process_Temp_K Temperatura del proceso de la máquina Numérico 306 - 313.7 K No
Rotational_Speed_rpm Velocidad de rotación de la máquina Numérico 1,168 - 2,595 RPM No
Torque_Nm Torque (par motor) de la máquina Numérico 12.5 - 71.8 Nm No
Tool_Wear_min Desgaste acumulado de la herramienta Numérico 0 - 241 minutos No
Machine_Failure Fallo de la máquina (objetivo) Binario 0: Normal, 1: Fallo N/A
7 Variables totales
5 Numéricas
1 Categóricas
1 Binarias
Objetivo: Fallo (Machine_Failure)
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 Mantenimiento Predictivo (AI4I 2020). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de predicción de fallos.

Product_Quality_Type Categórica (Ordinal)
Código Significado (Original) Interpretación
0Low (L) - Baja calidadMayor variabilidad en el proceso
1Medium (M) - Calidad mediaProceso estable
2High (H) - Alta calidadMayor precisión en el proceso
📊

Orden lógico: La calidad del producto es ordinal. Mayor calidad suele asociarse con menor variabilidad y menor riesgo de fallo.

Machine_Failure 🎯 Objetivo
Código Significado
0 Normal - Máquina en funcionamiento correcto (96.61%)
1 Fallo - La máquina experimentó un fallo (3.39%)
🎯

Variable Objetivo: Predice fallos mecánicos basándose en lecturas termodinámicas y cinemáticas.

Variables Binarias Binario

Formato: 0 = Normal, 1 = Fallo

Machine_Failure 🎯 Variable Objetivo: Fallo de máquina (0: Normal, 1: Fallo)
ℹ️

Nota: Única variable binaria en el dataset.

📊
Variables categóricas: 1
  • Product_Quality_Type (3 niveles - ordinal)
🎯
Variables binarias: 1
  • 🎯 Machine_Failure (Objetivo - Fallo)
📈
Variables numéricas: 5
  • Air_Temp_K (Temperatura ambiente)
  • Process_Temp_K (Temperatura proceso)
  • Rotational_Speed_rpm (Velocidad rotación)
  • Torque_Nm (Torque)
  • Tool_Wear_min (Desgaste herramienta)
⚠️
Recomendaciones de Mantenimiento Predictivo:
  • Factor crítico: Tool_Wear_min - El desgaste acumulado es un predictor clave de fallos
  • Relación velocidad-torque: Rotational_Speed_rpm × Torque_Nm ≈ constante (potencia)
  • Temperatura: Process_Temp_K > Air_Temp_K es una condición física esperada
  • Calidad: Productos de baja calidad (0) pueden indicar mayor variabilidad y riesgo
  • Desbalance: 28.5:1 - Usar Recall o AUC-PR como métrica principal
  • Coste de fallo: El coste de no detectar un fallo (falso negativo) es alto en mantenimiento industrial

🔬 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

  • Torque_Nm > 60 → Rotational_Speed_rpm < 1450
  • Torque_Nm > 50 → Rotational_Speed_rpm < 1700
  • Rotational_Speed_rpm > 2200 → Torque_Nm < 20
  • Rotational_Speed_rpm > 1800 → Torque_Nm < 30
  • Air_Temp_K > 300 → Process_Temp_K > 308
  • Process_Temp_K < 306 → Air_Temp_K < 298
  • Tool_Wear_min > 250 → Machine_Failure = 1
  • Machine_Failure == 0 → Tool_Wear_min < 260
  • Torque_Nm > 60 → Tool_Wear_min < 180
  • Tool_Wear_min > 220 → (Torque_Nm > 50) OR (Product_Quality_Type = 1)
  • Product_Quality_Type == 0 → Tool_Wear_min < 240
  • Tool_Wear_min == 0 → Machine_Failure = 0
  • Rotational_Speed_rpm < 1200 → Machine_Failure = 1
  • Torque_Nm > 70 → Machine_Failure = 1
  • Torque_Nm ≥ 0 (No negativo)
  • Rotational_Speed_rpm ≥ 0 (No negativo)

⚙️ 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 1160 0.990 0.980 0.980 8.085 0.324 0.001 0.279 0.907 49.966 0 1160 0.445
Smote 1 1160 0.934 0.939 0.925 1.286 0.382 0.000 0.307 0.887 47.807 0.022 601 0.425
Borderline SMOTE 1 1160 0.975 0.966 0.965 4.787 0.407 0.001 0.306 0.827 48.867 0.018 600 0.429
ADASYN 1.010 1154 0.933 0.949 0.940 2.278 0.380 0.000 0.305 0.889 48.760 0.021 600 0.440
SMOTE RSB* Adaptado 1 1160 0.922 0.959 0.955 3.795 0.390 0.000 0.282 0.901 47.101 0.024 600 0.422
SMOTE RSB* Adaptado + Reglas 1 1160 0.932 0.950 0.940 3.137 0.390 0.000 0.282 0.899 46.699 0.024 600 0.405
OOF PSO para Balanceo 2.248 838 0.987 0.968 0.970 5.880 0.309 0.006 0.138 0.770 54.295 0.031 600 0.408
OOF PSO para Balanceo + Reglas 11.135 631 0.984 0.974 0.975 9.378 0.111 0.721 0.010 0.914 55.680 0.005 599 0.456 🏆
Mejor seleccionado: OOF PSO para Balanceo + Reglas del Dominio (TabDSFidelity: 9.378, AUC: 0.984, F1: 0.974, MIA: 0.456). 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 8.383 8229 0.987 0.978 0.980 9.599 0.516 0.335 0.024 0.927 63.832 0.300 0 0.463 🏆
SMOTE RSB* + Ruido Gaussiano + Reglas 8.236 8229 0.952 0.978 0.980 9.386 0.516 0.335 0.024 0.925 174.541 0.300 0 0.462
CTGAN 3.537 9950 0.654 0.948 0.965 6.443 0.331 0.164 0.082 0.868 221.524 0.063 0 0.444
CTGAN + Reglas del Dominio 2.618 9950 0.691 0.948 0.965 6.667 0.331 0.164 0.114 0.869 342.548 0.066 0 0.445
TVAE 12.037 9999 0.813 0.964 0.970 7.105 0.627 0.130 0.031 0.898 166.536 0.034 0 0.435
TVAE + Reglas del Dominio 11.803 9999 0.820 0.956 0.965 6.882 0.627 0.130 0.032 0.898 289.507 0.034 0 0.436
OOF PSO para Aumento 1 10000 0.739 0.887 0.840 0.511 0.794 0.000 0.511 0.509 210.873 0.148 0 0.441
OOF PSO para Aumento + Reglas 6.710 10000 0.750 0.947 0.935 3.427 0.794 0.000 1.154 0.584 332.967 0.202 0 0.456
SMOTE RSB* Refinado 1.171 7722 0.981 0.964 0.960 7.438 0.581 0.000 0.249 0.776 63.672 0.178 0 0.471
SMOTE RSB* Refinado + Reglas 1.171 7722 0.981 0.964 0.960 7.438 0.581 0.000 0.249 0.776 173.171 0.178 0 0.471
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano (TabDSFidelity: 9.599, AUC: 0.987, F1: 0.978, 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 8.537 8860 0.979 0.972 0.975 9.418 0.487 0.357 0.022 0.927 119.928 0.299 0 0.490 🏆
SMOTE RSB* + Ruido Gaussiano + Reglas 8.396 8860 0.980 0.968 0.970 8.465 0.487 0.357 0.023 0.925 227.852 0.299 0 0.492
CTGAN 3.713 10581 0.647 0.945 0.960 3.322 0.316 0.172 0.077 0.871 285.447 0.060 125 0.453
CTGAN + Reglas del Dominio 2.776 10581 0.786 0.968 0.975 7.752 0.316 0.172 0.106 0.872 402.540 0.062 125 0.464
TVAE 11.979 10630 0.976 0.968 0.975 8.226 0.579 0.157 0.029 0.900 229.752 0.032 125 0.434
TVAE + Reglas del Dominio 11.761 10630 0.907 0.968 0.975 7.807 0.579 0.157 0.029 0.899 350.683 0.032 125 0.405
OOF PSO para Aumento 1.104 10631 0.956 0.974 0.975 5.856 0.732 0.000 0.449 0.520 271.050 0.139 125 0.457
OOF PSO para Aumento + Reglas 4.667 10631 0.974 0.974 0.975 6.161 0.732 0.000 0.966 0.600 394.379 0.187 125 0.414
SMOTE RSB* Refinado 1.314 8353 0.980 0.964 0.960 5.385 0.543 0.000 0.224 0.781 119.469 0.176 0 0.461
SMOTE RSB* Refinado + Reglas 1.314 8353 0.980 0.964 0.960 5.385 0.543 0.000 0.224 0.781 229.659 0.176 0 0.461
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano (TabDSFidelity: 9.418, AUC: 0.979, F1: 0.972, MIA: 0.490). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_50
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
OOF PSO para Balanceo + Reglas del Dominio
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
SMOTE RSB* + Ruido Gaussiano
⭐ Mejor Aumentado
SMOTE RSB* + Ruido Gaussiano
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 Predictive Maintenance (AI4I 2020) (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32946731.v1