CD_48 Original + Derivados

CD_48: APS Failure at Scania Trucks

Conjunto de datos industrial para la predicción de fallos en el Sistema de Presión de Aire (APS) de camiones. Caracterizado por un desbalance extremo (~1.6% positivos) y alta dimensionalidad (170 variables). Los atributos anonimizados representan contadores e intervalos de histogramas.

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

🏆 MEJOR RENDIMIENTO

📊 Conjunto Original

Clase Precisión Recall F1-Score Soporte
Clase 0 0.98 0.99 0.99 197
Clase 1 0.00 0.00 0.00 3
Accuracy 0.98
Macro Avg 0.49 0.50 0.49 200
Weighted Avg 0.97 0.98 0.98 200
AUC-ROC: 0.79
F1-Score (weighted): 0.98
Accuracy: 0.98
⬇️ Degradación
⬇ -0.29 AUC ⬇ -0.97 F1 ⬇ -0.13 Acc

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.98 0.87 0.92 197
Clase 1 0.00 0.00 0.00 3
Accuracy 0.85 ⬇ -0.13
Macro Avg 0.49 0.43 ⬇ -0.07 0.46 ⬇ -0.03 200
Weighted Avg 0.97 0.85 ⬇ -0.13 0.91 ⬇ -0.07 200
AUC-ROC: 0.51 ⬇ -0.29
F1-Score (weighted): 0.91 ⬇ -0.07
Accuracy: 0.85 ⬇ -0.13

📊 Resumen de Degradación en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.00
Sintético: 0.00
— Sin cambio
📈
Recall
Original: 0.00
Sintético: 0.00
— Sin cambio
⚖️
F1-Score
Original: 0.00
Sintético: 0.00
— Sin cambio

📚 Fuente Original del Conjunto

APS Failure at Scania Trucks Dataset

v1.0
Scania CV AB
Publicado: Septiembre 2016

📄 Resumen (Abstract)

El conjunto de datos de Fallos del APS en Camiones Scania consiste en datos recolectados de camiones Scania pesados en uso diario. El sistema en foco es el Sistema de Presión de Aire (APS - Air Pressure System), que genera aire presurizado utilizado en diversas funciones del camión, como frenado y cambios de marcha. La clase positiva del dataset consiste en fallos de componentes para un componente específico del sistema APS. La clase negativa consiste en camiones con fallos para componentes no relacionados con el APS. El objetivo es predecir fallos del sistema APS para prevenir averías y optimizar el mantenimiento de los camiones.

🚛 Contexto del Dominio

El mantenimiento predictivo en la industria del transporte es fundamental para reducir tiempos de inactividad y costos operativos. Este dataset fue creado para el Industrial Challenge 2016 en el 15th International Symposium on Intelligent Data Analysis (IDA). La detección temprana de fallos en el sistema APS permite:

  • Prevenir averías en carretera que pueden causar accidentes
  • Reducir costos de mantenimiento al programar reparaciones proactivas
  • Minimizar tiempos de inactividad de los camiones
  • Mejorar la seguridad de los conductores y otros usuarios de la vía
📊 Distribución de Clases
Clase Instancias Porcentaje Descripción
Positiva (1) 1,000 1.67% Fallos del componente APS
Negativa (0) 59,000 98.33% Fallos no relacionados con APS

⚠️ El dataset presenta un desbalanceo extremo (1.67% de ejemplos positivos), lo que requiere técnicas especiales de muestreo y evaluación.

💰 Métrica de Evaluación (Cost Matrix)

El desafío utiliza una métrica de costo específica para la clasificación errónea:

Predicción \\ Real Positivo (Fallo APS) Negativo (No APS)
Positivo 0 (Correcto) Cost_1 = 10
Negativo Cost_2 = 500 0 (Correcto)
  • Cost_1 = 10: Costo de una revisión innecesaria en el taller (falso positivo)
  • Cost_2 = 500: Costo de no detectar un fallo que puede causar una avería (falso negativo)

⚠️ Cost_2 es 50 veces mayor que Cost_1, lo que refleja que no detectar un fallo es mucho más costoso que realizar una revisión innecesaria.

Total_cost = Cost_1 × (Falsos Positivos) + Cost_2 × (Falsos Negativos)

📊 Estructura de los Datos

📋 Características del Dataset
  • Número de atributos: 171
  • Atributos de histograma: 7
  • Atributos numéricos simples: 164
  • Valores faltantes: Sí (denotados como 'na')
  • Nombres anonimizados: Por razones de propiedad industrial
📐 Estructura de los Atributos

Los nombres de los atributos han sido anonimizados por razones de propiedad industrial. Consisten en:

  • Contadores numéricos simples: Mediciones directas de sensores
  • Histogramas: Bins con diferentes condiciones (7 variables)

Formato: Identifier_Bin (ej: 'Identifier_Bin' donde Identifier es el sensor y Bin el rango)

📊 Ejemplo de Histograma

Por ejemplo, si se mide la temperatura ambiente 'T', el histograma podría definirse con 4 bins:

  • bin 1: T < -20°C
  • bin 2: -20°C ≤ T < 0°C
  • bin 3: 0°C ≤ T < 20°C
  • bin 4: T > 20°C
| b1 | b2 | b3 | b4 |
-----------------------------
-20 0 20

Los histogramas típicamente tienen condiciones abiertas en cada extremo (como se muestra).

🏆 Resultados del Desafío IDA 2016

Los tres mejores participantes del Industrial Challenge 2016 en el 15th International Symposium on Intelligent Data Analysis (IDA) obtuvieron los siguientes resultados:

Posición Participantes Puntaje Tipo 1 (FP) Tipo 2 (FN)
Camila F. Costa y Mario A. Nascimento 9,920 542 9
Christopher Gondek, Daniel Hafner y Oliver R. Sampson 10,900 490 12
Sumeet Garnaik, Sushovan Das, Rama Syamala Sreepada y Bidyut Kr. Patra 11,480 398 15

Nota: Menor puntaje indica mejor rendimiento. El cálculo del puntaje considera la métrica de costo: Puntaje = 10 × FP + 500 × FN

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria extremadamente desbalanceada
  • Dimensión: Multivariante (60,000 × 171 entrenamiento, 16,000 prueba)
  • Tipo de características: Mixtas (Enteras, Reales, Histogramas)
  • Valores faltantes: Sí (denotados como 'na')
  • Área de aplicación: Mantenimiento Predictivo, Industria Automotriz, Transporte
  • Licencia: GNU General Public License v3.0

⚖️ Ética y Privacidad

El conjunto de datos ha sido anonimizado para proteger la propiedad industrial de Scania CV AB. Los nombres de los atributos han sido codificados y no contienen información identificable de los camiones o conductores. El dataset se distribuye bajo la GNU General Public License v3.0, lo que permite su uso, modificación y distribución libre. 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 intentar inferir el significado de los atributos anonimizados o reidentificar los camiones.

📋 Notas de Uso

Este conjunto de datos presenta desafíos significativos debido al desbalanceo extremo, los valores faltantes y la métrica de costo asimétrica. Se recomienda:

  • La variable objetivo class está codificada como 1 (Fallo APS) y 0 (No APS)
  • Manejar los valores faltantes ('na') mediante imputación (media, mediana, KNN) o eliminación de variables con alta proporción de faltantes
  • Utilizar la métrica de costo para evaluar el rendimiento:
    • Cost_1 = 10 (Falso Positivo - revisión innecesaria)
    • Cost_2 = 500 (Falso Negativo - fallo no detectado)
    • Total_cost = 10 × FP + 500 × FN
  • Las 7 variables de histograma representan distribuciones de sensores en diferentes rangos
  • La clase positiva es extremadamente minoritaria (1.67%), requiriendo técnicas de balanceo:
    • Sobremuestreo (SMOTE, ADASYN)
    • Submuestreo de la clase mayoritaria
    • Cost-sensitive learning (ponderación de clases)
  • El conjunto de prueba contiene 16,000 instancias y ya está separado
  • Estandarizar/normalizar las características numéricas
  • El dataset es adecuado para modelos de ensemble (Random Forest, XGBoost, LightGBM) y redes neuronales
  • El objetivo final es minimizar el costo total, no solo maximizar la precisión

💡 Importancia en el Mantenimiento Predictivo

El mantenimiento predictivo en la industria del transporte es fundamental para reducir costos y mejorar la seguridad. Este dataset es significativo porque:

  • Refleja un problema del mundo real con costos asimétricos (fallar en detectar un problema es mucho más costoso que una revisión innecesaria)
  • Presenta un desbalanceo extremo (1.67% de fallos), común en aplicaciones de mantenimiento predictivo
  • Incluye datos de sensores de vehículos en operación real
  • Permite investigar técnicas de clasificación desbalanceada y aprendizaje sensible a costos
  • Los histogramas proporcionan información sobre distribuciones de variables, no solo valores puntuales

La detección temprana de fallos en el sistema APS puede prevenir accidentes, reducir tiempos de inactividad y ahorrar millones en costos de mantenimiento y reparación para flotas de camiones.

📖 Cómo citar la fuente original

APS Failure at Scania Trucks Dataset. UCI Machine Learning Repository. Scania CV AB. https://archive.ics.uci.edu/ml/datasets/APS+Failure+at+Scania+Trucks

📚 Referencias Adicionales

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (APS Failure at Scania Trucks)

  • Carga inteligente y detección de cabecera:
    • Lectura del archivo con detección automática de la fila donde comienza la cabecera ("class,aa_000").
    • Tratamiento de valores 'na' como NaN durante la carga para identificación temprana de valores faltantes.
    • Ignorar líneas de texto previas (comentarios/documentación) presentes en el archivo original.
  • Imputación de valores faltantes:
    • Detección de valores 'na' (etiqueta de valores perdidos en el dataset original) distribuidos en las 170 variables numéricas.
    • Imputación con mediana para todas las variables predictoras (170 columnas), preservando la robustez frente a outliers en datos de sensores de vehículos.
    • Garantía de integridad total del conjunto de datos para modelado directo.
  • Transformación de la variable objetivo:
    • Transformación de class de texto a binaria: 'neg'0 (Sin fallo en APS - Clase Mayoritaria), 'pos'1 (Fallo en APS - Clase Minoritaria Crítica).
    • Documentación del objetivo: predicción de fallos en el sistema de presión de aire de camiones Scania.
  • Preservación de la estructura de variables anonimizadas:
    • Mantenimiento de las 170 variables predictoras (aa_000 a eg_000) en su formato numérico original (float64).
    • Variables representan: contadores, histogramas, temperaturas, y otras mediciones de sensores del vehículo.
    • Nota sobre la estructura de variables: muchas son "bins" de histogramas (ej. ag_000...ag_009).
  • 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 extremo).
    • 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_aps_failure.txt con semántica completa de la variable objetivo y la estructura de datos.
    • Documentación de la variable class (0=neg - Sin fallo, 1=pos - Fallo en APS).
    • Descripción de las 170 variables predictoras anonimizadas (aa_000 a eg_000) como mediciones numéricas de sensores.
    • Contextualización del dataset: datos de vehículos Scania para mantenimiento predictivo.
    • Estadísticas finales: total de instancias, distribución de clases y ratio de desbalance extremo.
  • Preservación de la estructura y calidad de datos:
    • Mantenimiento de las 60,000 instancias (registros de vehículos) originales para el dataset completo.
    • Dataset reducido de 1,000 ejemplos estratificados para experimentación eficiente.
    • Dataset final con 170 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 60,000 registros de vehículos Scania (con versión reducida estratificada de 1,000 ejemplos) con 170 variables predictoras (mediciones de sensores anonimizadas) y 1 variable objetivo binaria (class). Desbalance extremo preservado (~98.6% sin fallo / ~1.4% con fallo en APS) — escenario crítico 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 vehículos industriales, donde la identificación temprana de anomalías en sistemas críticos (sistema de presión de aire) es fundamental para la prevención de accidentes y la optimización del mantenimiento.

🚛 Fuente: APS Failure at Scania Trucks Dataset (UCI Machine Learning Repository) - Datos de sensores de camiones Scania para predicción de fallos en el sistema de aire comprimido (APS).

📊 Variables predictoras: 170 variables anonimizadas (aa_000 a eg_000) que representan mediciones de sensores, incluyendo contadores, histogramas y temperaturas.

⚠️ Desbalance extremo: Solo ~1.4% de instancias corresponden a fallos en el sistema APS (clase positiva), lo que convierte a este dataset en un desafío crítico para técnicas de sobremuestreo y generación de datos sintéticos.

📁 Leyenda disponible: Archivo leyenda_aps_failure.txt con descripción completa de la variable objetivo y la estructura de variables predictoras.

🎯 Variable objetivo: class (1 = Fallo en APS - pos, 0 = Sin fallo - neg).

🧹 Limpieza aplicada: Detección automática de cabecera, tratamiento de 'na' como valores faltantes, imputación con mediana en 170 variables, codificación de target ('pos'→1, 'neg'→0), reducción estratificada a 1,000 ejemplos.

📋 Diccionario de Datos Detallado

Variable Descripción del Sensor Tipo Rango / Categorías Unidad ¿Objetivo?
aa_000 Sensor anonimizado - Contador/Medición Numérico 0 - 1,545,282 N/A No
ab_000 Sensor anonimizado - Contador discreto Numérico 0 - 6 N/A No
ac_000 Sensor anonimizado - Medición de alta escala Numérico 0 - 2,130,706,514 N/A No
ad_000 Sensor anonimizado - Contador Numérico 0 - 23,822 N/A No
ae_000 Sensor anonimizado - Contador discreto Numérico 0 - 1,130 N/A No
af_000 Sensor anonimizado - Contador discreto Numérico 0 - 1,130 N/A No
ag_000 Histograma - Bin 0 (Serie temporal) Numérico 0 - 268,780 N/A No
ag_001 Histograma - Bin 1 (Serie temporal) Numérico 0 - 2,769,256 N/A No
ag_002 Histograma - Bin 2 (Serie temporal) Numérico 0 - 5,831,982 N/A No
ag_003 Histograma - Bin 3 (Serie temporal) Numérico 0 - 16,067,740 N/A No
ag_004 Histograma - Bin 4 (Serie temporal) Numérico 0 - 30,377,592 N/A No
ag_005 Histograma - Bin 5 (Serie temporal) Numérico 0 - 32,265,010 N/A No
ag_006 Histograma - Bin 6 (Serie temporal) Numérico 0 - 38,929,260 N/A No
ag_007 Histograma - Bin 7 (Serie temporal) Numérico 0 - 11,752,946 N/A No
ag_008 Histograma - Bin 8 (Serie temporal) Numérico 0 - 1,342,374 N/A No
ag_009 Histograma - Bin 9 (Serie temporal) Numérico 0 - 702,394 N/A No
ah_000 Sensor anonimizado - Medición Numérico 0 - 36,055,496 N/A No
ai_000 Sensor anonimizado - Medición Numérico 0 - 1,119,586 N/A No
aj_000 Sensor anonimizado - Contador Numérico 0 - 20,840 N/A No
ak_000 Sensor anonimizado - Contador Numérico 0 - 69,236 N/A No
al_000 Sensor anonimizado - Medición Numérico 0 - 11,433,954 N/A No
am_0 Sensor anonimizado - Medición Numérico 0 - 17,681,784 N/A No
an_000 Sensor anonimizado - Medición Numérico 0 - 67,601,406 N/A No
ao_000 Sensor anonimizado - Medición Numérico 0 - 65,949,748 N/A No
ap_000 Sensor anonimizado - Medición Numérico 0 - 28,725,938 N/A No
aq_000 Sensor anonimizado - Medición Numérico 0 - 17,834,950 N/A No
ar_000 Sensor anonimizado - Contador discreto Numérico 0 - 78 N/A No
as_000 Sensor anonimizado - Constante (cero) Numérico 0 - 0 N/A No
at_000 Sensor anonimizado - Medición Numérico 0 - 2,075,458 N/A No
au_000 Sensor anonimizado - Contador Numérico 0 - 26,918 N/A No
av_000 Sensor anonimizado - Medición Numérico 0 - 104,998 N/A No
ax_000 Sensor anonimizado - Contador Numérico 0 - 11,940 N/A No
ay_000 Sensor anonimizado - Contador Numérico 0 - 42,004 N/A No
ay_001 Sensor anonimizado - Contador Numérico 0 - 15,928 N/A No
ay_002 Sensor anonimizado - Contador Numérico 0 - 17,290 N/A No
ay_003 Sensor anonimizado - Contador Numérico 0 - 20,846 N/A No
ay_004 Sensor anonimizado - Contador Numérico 0 - 545,288 N/A No
ay_005 Sensor anonimizado - Medición Numérico 0 - 49,836,550 N/A No
ay_006 Sensor anonimizado - Medición Numérico 0 - 33,092,300 N/A No
ay_007 Sensor anonimizado - Medición Numérico 0 - 58,380,366 N/A No
ay_008 Sensor anonimizado - Medición Numérico 0 - 69,254,478 N/A No
ay_009 Sensor anonimizado - Contador Numérico 0 - 123,752 N/A No
az_000 Sensor anonimizado - Medición Numérico 0 - 320,000 N/A No
az_001 Sensor anonimizado - Contador Numérico 0 - 170,058 N/A No
az_002 Sensor anonimizado - Contador Numérico 0 - 224,900 N/A No
az_003 Sensor anonimizado - Medición Numérico 0 - 6,343,916 N/A No
az_004 Sensor anonimizado - Medición Numérico 0 - 79,584,472 N/A No
az_005 Sensor anonimizado - Medición Numérico 0 - 55,742,146 N/A No
az_006 Sensor anonimizado - Medición Numérico 0 - 12,123,506 N/A No
az_007 Sensor anonimizado - Medición Numérico 0 - 4,353,786 N/A No
az_008 Sensor anonimizado - Contador Numérico 0 - 50,650 N/A No
az_009 Sensor anonimizado - Contador Numérico 0 - 18,526 N/A No
ba_000 Sensor anonimizado - Medición Numérico 0 - 37,991,750 N/A No
ba_001 Sensor anonimizado - Medición Numérico 0 - 29,362,398 N/A No
ba_002 Sensor anonimizado - Medición Numérico 0 - 14,981,190 N/A No
ba_003 Sensor anonimizado - Medición Numérico 0 - 8,956,562 N/A No
ba_004 Sensor anonimizado - Medición Numérico 0 - 8,037,928 N/A No
ba_005 Sensor anonimizado - Medición Numérico 0 - 6,489,468 N/A No
ba_006 Sensor anonimizado - Medición Numérico 0 - 12,885,214 N/A No
ba_007 Sensor anonimizado - Medición Numérico 0 - 6,382,286 N/A No
ba_008 Sensor anonimizado - Medición Numérico 0 - 3,549,702 N/A No
ba_009 Sensor anonimizado - Medición Numérico 0 - 10,805,998 N/A No
bb_000 Sensor anonimizado - Medición Numérico 0 - 97,862,470 N/A No
bc_000 Sensor anonimizado - Contador Numérico 0 - 45,840 N/A No
bd_000 Sensor anonimizado - Contador Numérico 0 - 65,810 N/A No
be_000 Sensor anonimizado - Contador Numérico 0 - 148,524 N/A No
bf_000 Sensor anonimizado - Contador Numérico 0 - 4,256 N/A No
bg_000 Sensor anonimizado - Medición Numérico 0 - 36,055,496 N/A No
bh_000 Sensor anonimizado - Medición Numérico 0 - 2,350,822 N/A No
bi_000 Sensor anonimizado - Medición Numérico 0 - 16,128,940 N/A No
bj_000 Sensor anonimizado - Medición Numérico 0 - 24,746,024 N/A No
bk_000 Sensor anonimizado - Contador Numérico 0 - 1,310,700 N/A No
bl_000 Sensor anonimizado - Contador Numérico 0 - 1,310,700 N/A No
bm_000 Sensor anonimizado - Contador Numérico 0 - 1,310,700 N/A No
bn_000 Sensor anonimizado - Contador Numérico 0 - 1,310,700 N/A No
bo_000 Sensor anonimizado - Contador Numérico 0 - 1,310,700 N/A No
bp_000 Sensor anonimizado - Contador Numérico 0 - 1,310,700 N/A No
bq_000 Sensor anonimizado - Contador Numérico 0 - 1,310,700 N/A No
br_000 Sensor anonimizado - Contador Numérico 0 - 1,310,700 N/A No
bs_000 Sensor anonimizado - Contador Numérico 0 - 618,100 N/A No
bt_000 Sensor anonimizado - Medición (distinta escala) Numérico 1.42 - 1,545,282.77 N/A No
bu_000 Sensor anonimizado - Medición Numérico 0 - 89,965,020 N/A No
bv_000 Sensor anonimizado - Medición Numérico 0 - 89,965,020 N/A No
bx_000 Sensor anonimizado - Medición Numérico 184 - 97,915,370 N/A No
by_000 Sensor anonimizado - Contador Numérico 0 - 687,090 N/A No
bz_000 Sensor anonimizado - Medición Numérico 0 - 12,820,078 N/A No
ca_000 Sensor anonimizado - Contador Numérico 0 - 120,754 N/A No
cb_000 Sensor anonimizado - Contador Numérico 0 - 1,206,220 N/A No
cc_000 Sensor anonimizado - Medición Numérico 0 - 92,869,348 N/A No
cd_000 Sensor anonimizado - Constante (valor fijo) Numérico 1,209,600 - 1,209,600 N/A No
ce_000 Sensor anonimizado - Medición Numérico 0 - 2,763,266 N/A No
cf_000 Sensor anonimizado - Contador Numérico 0 - 24,432 N/A No
cg_000 Sensor anonimizado - Contador Numérico 0 - 3,828 N/A No
ch_000 Sensor anonimizado - Constante (cero) Numérico 0 - 0 N/A No
ci_000 Sensor anonimizado - Medición (flotante) Numérico 476.16 - 76,671,147.84 N/A No
cj_000 Sensor anonimizado - Medición (flotante) Numérico 0 - 18,060,226.56 N/A No
ck_000 Sensor anonimizado - Medición (flotante) Numérico 105.6 - 18,872,921.28 N/A No
cl_000 Sensor anonimizado - Contador Numérico 0 - 73,728 N/A No
cm_000 Sensor anonimizado - Contador Numérico 0 - 19,462 N/A No
cn_000 Histograma - Bin 0 Numérico 0 - 4,618,596 N/A No
cn_001 Histograma - Bin 1 Numérico 0 - 6,465,900 N/A No
cn_002 Histograma - Bin 2 Numérico 0 - 17,010,746 N/A No
cn_003 Histograma - Bin 3 Numérico 0 - 26,976,576 N/A No
cn_004 Histograma - Bin 4 Numérico 0 - 29,407,046 N/A No
cn_005 Histograma - Bin 5 Numérico 0 - 27,646,496 N/A No
cn_006 Histograma - Bin 6 Numérico 0 - 23,105,918 N/A No
cn_007 Histograma - Bin 7 Numérico 0 - 2,066,758 N/A No
cn_008 Histograma - Bin 8 Numérico 0 - 1,405,788 N/A No
cn_009 Histograma - Bin 9 Numérico 0 - 347,338 N/A No
co_000 Sensor anonimizado - Contador Numérico 0 - 9,282 N/A No
cp_000 Sensor anonimizado - Contador Numérico 0 - 8,680 N/A No
cq_000 Sensor anonimizado - Medición Numérico 0 - 89,965,020 N/A No
cr_000 Sensor anonimizado - Constante (cero) Numérico 0 - 0 N/A No
cs_000 Sensor anonimizado - Contador Numérico 0 - 95,248 N/A No
cs_001 Sensor anonimizado - Contador Numérico 0 - 31,388 N/A No
cs_002 Sensor anonimizado - Medición Numérico 0 - 18,153,808 N/A No
cs_003 Sensor anonimizado - Medición Numérico 0 - 17,015,398 N/A No
cs_004 Sensor anonimizado - Medición Numérico 0 - 27,179,106 N/A No
cs_005 Sensor anonimizado - Medición Numérico 0 - 64,289,098 N/A No
cs_006 Sensor anonimizado - Medición Numérico 0 - 17,484,050 N/A No
cs_007 Sensor anonimizado - Contador Numérico 0 - 378,594 N/A No
cs_008 Sensor anonimizado - Contador Numérico 0 - 2,072 N/A No
cs_009 Sensor anonimizado - Contador Numérico 0 - 38 N/A No
ct_000 Sensor anonimizado - Contador Numérico 0 - 60,614 N/A No
cu_000 Sensor anonimizado - Contador Numérico 0 - 25,488 N/A No
cv_000 Sensor anonimizado - Medición Numérico 0 - 46,867,348 N/A No
cx_000 Sensor anonimizado - Medición Numérico 0 - 30,130,794 N/A No
cy_000 Sensor anonimizado - Contador Numérico 0 - 61,196 N/A No
cz_000 Sensor anonimizado - Medición Numérico 0 - 1,120,436 N/A No
da_000 Sensor anonimizado - Contador Numérico 0 - 1,638 N/A No
db_000 Sensor anonimizado - Contador Numérico 0 - 158 N/A No
dc_000 Sensor anonimizado - Medición Numérico 0 - 47,575,966 N/A No
dd_000 Sensor anonimizado - Contador Numérico 0 - 153,612 N/A No
de_000 Sensor anonimizado - Contador Numérico 0 - 57,952 N/A No
df_000 Sensor anonimizado - Contador Numérico 0 - 175,320 N/A No
dg_000 Sensor anonimizado - Medición Numérico 0 - 1,466,892 N/A No
dh_000 Sensor anonimizado - Contador Numérico 0 - 125,710 N/A No
di_000 Sensor anonimizado - Medición Numérico 0 - 4,740,684 N/A No
dj_000 Sensor anonimizado - Contador Numérico 0 - 200 N/A No
dk_000 Sensor anonimizado - Medición Numérico 0 - 890,990 N/A No
dl_000 Sensor anonimizado - Constante (cero) Numérico 0 - 0 N/A No
dm_000 Sensor anonimizado - Contador Numérico 0 - 18 N/A No
dn_000 Sensor anonimizado - Medición Numérico 0 - 2,116,394 N/A No
do_000 Sensor anonimizado - Medición Numérico 0 - 1,160,192 N/A No
dp_000 Sensor anonimizado - Contador Numérico 0 - 184,578 N/A No
dq_000 Sensor anonimizado - Medición (alta escala) Numérico 0 - 1,405,206,256 N/A No
dr_000 Sensor anonimizado - Medición Numérico 0 - 28,118,744 N/A No
ds_000 Sensor anonimizado - Medición Numérico 0 - 2,812,478 N/A No
dt_000 Sensor anonimizado - Contador Numérico 0 - 439,846 N/A No
du_000 Sensor anonimizado - Medición Numérico 0 - 235,103,600 N/A No
dv_000 Sensor anonimizado - Medición Numérico 0 - 24,836,024 N/A No
dx_000 Sensor anonimizado - Medición Numérico 0 - 70,013,636 N/A No
dy_000 Sensor anonimizado - Contador Numérico 0 - 716,942 N/A No
dz_000 Sensor anonimizado - Contador Numérico 0 - 14 N/A No
ea_000 Sensor anonimizado - Contador Numérico 0 - 462 N/A No
eb_000 Sensor anonimizado - Medición (muy alta escala) Numérico 0 - 1,006,498,200 N/A No
ec_00 Sensor anonimizado - Medición (flotante) Numérico 0 - 30,153.66 N/A No
ed_000 Sensor anonimizado - Contador Numérico 0 - 32,206 N/A No
ee_000 Histograma - Bin 0 Numérico 0 - 23,929,454 N/A No
ee_001 Histograma - Bin 1 Numérico 0 - 34,984,296 N/A No
ee_002 Histograma - Bin 2 Numérico 0 - 9,805,842 N/A No
ee_003 Histograma - Bin 3 Numérico 0 - 4,408,562 N/A No
ee_004 Histograma - Bin 4 Numérico 0 - 8,289,548 N/A No
ee_005 Histograma - Bin 5 Numérico 0 - 31,650,522 N/A No
ee_006 Histograma - Bin 6 Numérico 0 - 20,947,036 N/A No
ee_007 Histograma - Bin 7 Numérico 0 - 14,090,626 N/A No
ee_008 Histograma - Bin 8 Numérico 0 - 5,116,788 N/A No
ee_009 Histograma - Bin 9 Numérico 0 - 509,110 N/A No
ef_000 Sensor anonimizado - Contador Numérico 0 - 4 N/A No
eg_000 Sensor anonimizado - Contador Numérico 0 - 20 N/A No
class Fallo en el sistema APS (objetivo) Binario 0: Sin fallo, 1: Con fallo N/A
171 Variables totales
170 Numéricas
0 Categóricas
1 Binarias
Objetivo: Fallo APS (class)
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 Fallo APS en Camiones Scania. Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de mantenimiento predictivo.

class 🎯 Objetivo
Código Significado
0 neg (Sin fallo) - El Sistema de Presión de Aire (APS) no presentó fallo. Clase mayoritaria (~98.33%)
1 pos (Fallo APS) - El componente APS falló. Clase minoritaria (~1.67%)
🎯

Variable Objetivo: Predice fallos en el Sistema de Presión de Aire (APS) de camiones Scania.

Variables Binarias Binario

Formato: 0 = Sin fallo, 1 = Fallo APS

class 🎯 Variable Objetivo: Fallo APS (0: Sin fallo, 1: Con fallo)
ℹ️

Nota: Única variable binaria en el dataset.

📊
Variables binarias: 1
  • 🎯 class (Objetivo - Fallo APS)
📈
Variables numéricas: 170
  • Histogramas (ag_*, cn_*, ee_*)
  • Contadores y mediciones de sensores
  • Variables constantes: as_000, ch_000, cr_000, dl_000
⚠️
Recomendaciones de Modelado:
  • Métrica clave: Recall sobre Accuracy (detectar fallos es prioritario)
  • Variables constantes: Eliminar as_000, ch_000, cr_000, dl_000 (no aportan información)
  • Escalado: Variables tienen escalas muy diferentes - usar StandardScaler o RobustScaler
  • Reducción dimensional: PCA o selección de características para reducir 170 variables
  • Coste de fallo: El coste de un falso negativo (fallo no detectado) es muy alto. Priorizar recall sobre precisión

🔬 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

  • aa_000 == 0 → ag_000 = 0
  • aa_000 == 0 → al_000 = 0
  • class == 1 → (ag_001 > 0) OR (ag_002 > 0) OR (cn_000 > 0)
  • class == 1 → (ee_005 > 0) OR (cs_005 > 0)
  • class == 0 → ag_009 = 0
  • class == 0 → ee_009 = 0
  • ag_005 > 1000 → (ag_004 > 0) OR (ag_006 > 0)
  • ba_004 > 500 → (ba_003 > 0) OR (ba_005 > 0)
  • cn_004 > 500 → (cn_003 > 0) OR (cn_005 > 0)
  • al_000 > 0 → ag_000 > 0
  • cs_000 > 100 → (cn_000 > 0) OR (cn_001 > 0)
  • az_000 y az_009 son mutuamente excluyentes
  • ee_000 y ee_009 son mutuamente excluyentes
  • ay_000 == 0 → ay_001 ≤ 100
  • ag_000 == 0 → cn_000 = 0
  • class == 1 → (ee_005 > 0) OR (az_005 > 0)

⚙️ 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 1178 0.985 0.975 0.980 3.071 0.304 0.153 0.602 0.897 94.514 0 1178 0.478
Smote 1 1178 0.984 0.980 0.980 3.055 0.359 0.143 0.602 0.914 88.186 0.022 601 0.448
Borderline SMOTE 1 1178 0.985 0.988 0.990 6.233 0.359 0.148 0.602 0.910 83.881 0.023 601 0.453
ADASYN 1.007 1174 0.992 0.984 0.985 5.843 0.358 0.146 0.598 0.915 82.890 0.022 601 0.456
SMOTE RSB* Adaptado 1.010 1172 0.995 0.990 0.990 8.263 0.360 0.147 0.597 0.910 193.979 0.040 600 0.479 🏆
SMOTE RSB* Adaptado + Reglas 1.010 1172 0.992 0.984 0.985 6.015 0.358 0.148 0.597 0.919 195.037 0.040 600 0.449
OOF PSO para Balanceo 1 1178 0.996 0.978 0.985 3.335 0.411 0.029 0.602 0.610 96.394 0.206 600 0.526
OOF PSO para Balanceo + Reglas 1 1178 0.995 0.988 0.990 6.005 0.387 0.031 0.602 0.684 98.661 0.204 244 0.465
Mejor seleccionado: SMOTE RSB* Adaptado (TabDSFidelity: 8.263, AUC: 0.995, F1: 0.990, MIA: 0.479). 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.012 7278 0.939 0.984 0.985 7.103 0.591 0.066 0.596 0.903 345.841 0.043 26 0.485
SMOTE RSB* + Ruido Gaussiano + Reglas 1.012 7278 0.783 0.885 0.815 1.724 0.592 0.066 0.596 0.897 1023.590 0.044 22 0.484
CTGAN 1.016 10000 0.959 0.978 0.985 8.086 0.535 0.155 0.594 0.813 2860.440 0.132 0 0.419
CTGAN + Reglas del Dominio 1.016 10000 0.975 0.988 0.990 8.396 0.538 0.149 0.594 0.811 3871.270 0.131 0 0.487 🏆
TVAE 1.134 10000 0.992 0.984 0.985 7.139 0.645 0.077 0.543 0.884 1874.050 0.057 0 0.418
TVAE + Reglas del Dominio 1.134 10000 0.959 0.977 0.975 6.588 0.643 0.077 0.543 0.880 2905.420 0.057 0 0.519
OOF PSO para Aumento 1 10000 0.809 0.986 0.985 4.230 0.637 0.033 0.602 0.639 432.816 0.157 0 0.522
OOF PSO para Aumento + Reglas 1 10000 0.809 0.986 0.985 4.314 0.634 0.039 0.602 0.642 1314.070 0.156 0 0.537
SMOTE RSB* Refinado 1 7000 0.993 0.980 0.980 7.440 0.598 0.067 0.602 0.903 312.415 0.044 22 0.459
SMOTE RSB* Refinado + Reglas 1 7000 0.987 0.980 0.980 7.353 0.599 0.067 0.602 0.895 921.978 0.044 18 0.471
Mejor seleccionado: CTGAN + Reglas del Dominio (TabDSFidelity: 8.396, AUC: 0.975, F1: 0.988, MIA: 0.487). 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.012 8450 1.000 0.988 0.990 7.028 0.547 0.067 0.596 0.905 723.512 0.044 185 0.479 🏆
SMOTE RSB* + Ruido Gaussiano + Reglas 1.012 8450 0.990 0.984 0.985 2.632 0.547 0.067 0.596 0.901 1397.500 0.044 182 0.482
CTGAN 1.016 11172 0.982 0.984 0.985 2.730 0.500 0.151 0.594 0.839 3412.270 0.123 119 0.406
CTGAN + Reglas del Dominio 1.016 11172 0.990 0.988 0.990 6.738 0.503 0.146 0.594 0.838 4404.800 0.121 119 0.426
TVAE 1.120 11172 0.992 0.984 0.985 2.392 0.598 0.078 0.549 0.899 2433.570 0.057 119 0.437
TVAE + Reglas del Dominio 1.120 11172 0.988 0.984 0.985 2.016 0.596 0.078 0.549 0.895 3459.410 0.057 119 0.468
OOF PSO para Aumento 1.001 11172 0.988 0.990 0.990 4.784 0.587 0.035 0.601 0.664 977.394 0.140 119 0.470
OOF PSO para Aumento + Reglas 1.001 11172 0.986 0.990 0.990 4.574 0.584 0.038 0.601 0.670 1860.310 0.140 119 0.449
SMOTE RSB* Refinado 1.001 8172 0.996 0.988 0.990 6.546 0.550 0.069 0.601 0.904 651.750 0.041 179 0.455
SMOTE RSB* Refinado + Reglas 1.001 8172 0.993 0.984 0.985 3.007 0.550 0.069 0.601 0.900 1259.450 0.042 173 0.435
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano (TabDSFidelity: 7.028, AUC: 1.000, F1: 0.988, MIA: 0.479). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_48
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
CTGAN + Reglas del Dominio
⭐ 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 of Air Pressure System (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32946593.v1