CD_49 Original + Derivados

CD_49: Steel Plates Faults

Conjunto de datos industrial para la clasificación binaria de defectos superficiales ("Bumps" vs. Otros) en acero. Integra atributos geométricos, radiométricos y sus transformaciones matemáticas derivadas (logaritmos, sigmoides).

📈 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.85 0.94 0.89 159
Clase 1 0.61 0.34 0.44 41
Accuracy 0.82
Macro Avg 0.73 0.64 0.67 200
Weighted Avg 0.80 0.82 0.80 200
AUC-ROC: 0.83
F1-Score (weighted): 0.80
Accuracy: 0.82
➡️ Mejora
⬆ +0.03 AUC ⬆ +0.03 F1 ⬆ +0.01 Acc
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.89 0.90 0.89 159
Clase 1 0.59 ⬇ -0.02 0.56 ⬆ +0.22 0.57 ⬆ +0.13 41
Accuracy 0.83 ⬆ +0.01
Macro Avg 0.74 ⬆ +0.01 0.73 ⬆ +0.09 0.73 ⬆ +0.06 200
Weighted Avg 0.83 ⬆ +0.03 0.83 ⬆ +0.01 0.83 ⬆ +0.03 200
AUC-ROC: 0.86 ⬆ +0.03
F1-Score (weighted): 0.83 ⬆ +0.03
Accuracy: 0.83 ⬆ +0.01

📊 Resumen de Mejoras en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.61
Sintético: 0.59
⬇ -0.02
📈
Recall
Original: 0.34
Sintético: 0.56
⬆ +0.22
⚖️
F1-Score
Original: 0.44
Sintético: 0.57
⬆ +0.13

📚 Fuente Original del Conjunto

Steel Plates Faults Dataset

v1.0
Datos de inspección de placas de acero
Disponible en repositorios públicos

📄 Resumen (Abstract)

El conjunto de datos de Fallos en Placas de Acero (Steel Plates Faults) contiene imágenes de placas de acero clasificadas en 7 tipos diferentes de fallos. El objetivo es entrenar modelos de aprendizaje automático para el reconocimiento automático de patrones de defectos en placas de acero, permitiendo la inspección automatizada de calidad en la industria siderúrgica. Cada instancia representa una placa de acero con características extraídas de su imagen, y puede tener múltiples tipos de fallos simultáneamente (problema de clasificación multi-etiqueta).

🏭 Contexto del Dominio

La inspección de calidad de placas de acero es un proceso crítico en la industria siderúrgica. Los defectos en las placas pueden afectar significativamente la calidad del producto final y su rendimiento en aplicaciones estructurales. El reconocimiento automático de patrones permite:

  • Automatizar la inspección de calidad y reducir la dependencia de inspectores humanos
  • Mejorar la consistencia en la detección de defectos
  • Aumentar la velocidad de inspección en líneas de producción
  • Reducir costos asociados a productos defectuosos y retrabajos
📋 Tipos de Fallos en Placas de Acero
  • 1. Pastry: Defecto superficial similar a una masa (pastosa)
  • 2. Z_Scratch: Rayadura en forma de Z
  • 3. K_Scratch: Rayadura en forma de K
  • 4. Stains: Manchas en la superficie
  • 5. Dirtiness: Suciedad o contaminación superficial
  • 6. Bumps: Protuberancias o bultos
  • 7. Other_Faults: Otros tipos de fallos no clasificados

⚠️ Nota: Una placa puede tener múltiples tipos de fallos simultáneamente (clasificación multi-etiqueta).

📊 Descripción de Datos

El dataset contiene 1,941 instancias con 27 atributos (20 variables predictoras y 7 variables objetivo). Las características son de tipo mixto (enteras y continuas) y no presentan valores faltantes.

📋 Variables del Dataset
Variable Tipo Descripción Unidades / Rango
A. Características Geométricas
X_Minimum Entero Coordenada X mínima del defecto píxeles
X_Maximum Entero Coordenada X máxima del defecto píxeles
Y_Minimum Entero Coordenada Y mínima del defecto píxeles
Y_Maximum Entero Coordenada Y máxima del defecto píxeles
Pixels_Areas Entero Área del defecto en píxeles píxeles²
X_Perimeter Entero Perímetro en dirección X píxeles
Y_Perimeter Entero Perímetro en dirección Y píxeles
Length_of_Conveyer Entero Longitud en la cinta transportadora unidades
B. Características de Luminosidad
Sum_of_Luminosity Entero Suma de luminosidad del defecto unidades de luminosidad
Maximum_of_Luminosity Entero Luminosidad máxima del defecto unidades de luminosidad
Minimum_of_Luminosity Entero Luminosidad mínima del defecto unidades de luminosidad
C. Características del Material
TypeOfSteel_A300 Entero Tipo de acero A300 (indicador binario) 0/1
TypeOfSteel_A400 Entero Tipo de acero A400 (indicador binario) 0/1
Steel_Plate_Thickness Entero Grosor de la placa de acero mm
D. Índices Derivados
Edges_Index Continuo Índice de bordes -
Empty_Index Continuo Índice de vacío -
Square_Index Continuo Índice de cuadratura -
Outside_X_Index Continuo Índice de exterior en X -
Edges_X_Index Continuo Índice de bordes en X -
Edges_Y_Index Continuo Índice de bordes en Y -
Outside_Global_Index Continuo Índice global de exterior -
LogOfAreas Continuo Logaritmo del área -
Log_X_Index Continuo Índice logarítmico en X -
Log_Y_Index Continuo Índice logarítmico en Y -
Orientation_Index Continuo Índice de orientación del defecto -
Luminosity_Index Continuo Índice de luminosidad -
SigmoidOfAreas Continuo Función sigmoide del área -
E. Variables Objetivo (Multi-etiqueta)
Pastry Binaria Indica presencia de defecto Pastry 1 = Presente, 0 = Ausente
Z_Scratch Binaria Indica presencia de rayadura en Z 1 = Presente, 0 = Ausente
K_Scratch Binaria Indica presencia de rayadura en K 1 = Presente, 0 = Ausente
Stains Binaria Indica presencia de manchas 1 = Presente, 0 = Ausente
Dirtiness Binaria Indica presencia de suciedad 1 = Presente, 0 = Ausente
Bumps Binaria Indica presencia de protuberancias 1 = Presente, 0 = Ausente
Other_Faults Binaria Indica presencia de otros fallos 1 = Presente, 0 = Ausente

📋 Características del Dataset

  • Tipo de problema: Clasificación multi-etiqueta (7 etiquetas binarias)
  • Dimensión: Multivariante (1,941 × 27)
  • Tipo de características: Mixtas (Enteras y Continuas)
  • Valores faltantes: No
  • Área de aplicación: Industria Siderúrgica, Control de Calidad, Visión por Computadora
  • Número de etiquetas: 7 (Pastry, Z_Scratch, K_Scratch, Stains, Dirtiness, Bumps, Other_Faults)

⚖️ Ética y Privacidad

El conjunto de datos contiene información de procesos industriales y no incluye datos personales identificables. Las imágenes y características de las placas de acero son anónimas y no contienen información sobre trabajadores, clientes o ubicaciones específicas. 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 pueda comprometer procesos industriales propietarios.

📋 Notas de Uso

Este conjunto de datos es ideal para clasificación multi-etiqueta y reconocimiento de patrones. Se recomienda:

  • Las 7 variables objetivo son binarias y no mutuamente excluyentes (una placa puede tener múltiples defectos)
  • El problema es de clasificación multi-etiqueta, no multi-clase. Una placa puede tener etiquetas múltiples simultáneamente
  • Métricas de evaluación para multi-etiqueta:
    • Exact Match Ratio (precisión exacta)
    • Hamming Loss (pérdida por etiqueta)
    • Precision, Recall, F1-Score por etiqueta (macro/micro promedio)
    • Jaccard Similarity (similitud de conjuntos)
  • Las características X_Minimum, X_Maximum, Y_Minimum, Y_Maximum representan coordenadas de los defectos
  • Pixels_Areas y Perímetros son características geométricas clave para la identificación de defectos
  • TypeOfSteel_A300 y TypeOfSteel_A400 son indicadores binarios del tipo de acero
  • Los índices derivados (Edges_Index, Square_Index, etc.) capturan propiedades morfológicas adicionales
  • Estandarizar/normalizar las características continuas
  • Considerar el desbalanceo de etiquetas (algunos defectos son más raros que otros)
  • Utilizar validación cruzada estratificada por etiquetas para evaluar el rendimiento
  • El dataset es adecuado para modelos de clasificación multi-etiqueta como:
    • Binary Relevance (BR)
    • Classifier Chains (CC)
    • Label Powerset (LP)
    • Random Forest, XGBoost, Redes Neuronales con salida multi-etiqueta

💡 Importancia en la Industria Siderúrgica

La detección automatizada de defectos en placas de acero es fundamental para la industria siderúrgica por varias razones:

  • Los defectos en las placas de acero pueden comprometer la integridad estructural de construcciones, puentes y vehículos
  • La inspección manual es lenta, costosa y propensa a errores humanos
  • El reconocimiento automático de patrones permite inspección en tiempo real en líneas de producción
  • La clasificación multi-etiqueta permite identificar múltiples defectos simultáneamente, como ocurre en la realidad
  • La detección temprana de defectos reduce desperdicios, retrabajos y costos de producción

Este dataset ha sido fundamental para la investigación en visión por computadora y control de calidad automatizado, proporcionando un caso de estudio realista con múltiples tipos de defectos y características geométricas y de luminosidad bien definidas.

📖 Cómo citar la fuente original

Steel Plates Faults Dataset. UCI Machine Learning Repository. https://archive.ics.uci.edu/ml/datasets/Steel+Plates+Faults

📚 Referencias Adicionales

  • UCI Machine Learning Repository - Steel Plates Faults. https://archive.ics.uci.edu/ml/datasets/Steel+Plates+Faults
  • Zhang, M. L., & Zhou, Z. H. (2014). A review on multi-label learning algorithms. IEEE Transactions on Knowledge and Data Engineering, 26(8), 1819-1837.
  • Tsoumakas, G., & Katakis, I. (2007). Multi-label classification: An overview. International Journal of Data Warehousing and Mining, 3(3), 1-13.
  • He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 770-778.

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (Steel Plates Faults)

  • Carga y estructuración de datos:
    • Carga del archivo Faults.NNA con separador de espacios en blanco (\s+) para manejar cualquier cantidad de espacios o tabulaciones.
    • Asignación de nombres de columnas según la documentación oficial: 34 columnas (27 variables predictoras + 7 variables objetivo codificadas en one-hot).
  • Transformación de clasificación multiclase a binaria:
    • Creación de is_bump a partir de la variable original Bumps (uno de los 7 tipos de defectos).
    • Mapeo: Bumps = 1 (defecto tipo abolladura) → 1 (Clase Positiva), otros defectos (Pastry, Z_Scratch, K_Scratch, Stains, Dirtiness, Other_Faults) → 0 (Clase Negativa).
    • Eliminación de las 7 columnas originales de target para evitar Data Leakage (Pastry, Z_Scratch, K_Scratch, Stains, Dirtiness, Bumps, Other_Faults).
    • Documentación del objetivo: detección específica de defectos tipo "Bumps" (abolladuras) en placas de acero.
  • Estandarización y optimización de tipos de datos:
    • Conversión forzada de 14 variables a tipo entero (int): variables geométricas (X_Minimum, X_Maximum, Y_Minimum, Y_Maximum, Pixels_Areas, X_Perimeter, Y_Perimeter), variables de luminosidad (Sum_of_Luminosity, Minimum_of_Luminosity, Maximum_of_Luminosity), variables de proceso (Length_of_Conveyer, TypeOfSteel_A300, TypeOfSteel_A400, Steel_Plate_Thickness), y el target is_bump.
    • Preservación de variables continuas (índices calculados) como float para mantener precisión.
    • Eliminación de decimales espurios para optimizar memoria y mejorar legibilidad.
  • 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 defectos tipo Bumps).
    • 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_steel_faults.txt con semántica completa de la variable objetivo y la estructura de variables predictoras.
    • Documentación de la variable is_bump (0 = Otros defectos, 1 = Bumps/Abolladuras).
    • Descripción de las 27 variables predictoras agrupadas por categorías: geometría (X/Y Min/Max, áreas, perímetros), luminosidad (suma, mínimo, máximo), tipo de acero (A300, A400 - binarias), índices calculados (Edges_Index, Square_Index, Outside_X_Index, etc.).
    • Contextualización del dataset: inspección de calidad de placas de acero en la industria siderúrgica.
    • 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 1,941 instancias (placas de acero) originales para el dataset completo.
    • Dataset reducido de 1,000 ejemplos estratificados para experimentación eficiente.
    • Dataset final con 27 variables predictoras (mixtas: enteras y continuas) y 1 variable objetivo binaria.
    • Guardado en formato CSV con separador punto y coma (;) para compatibilidad internacional.

📊 Resultado: Dataset de 1,941 placas de acero (con versión reducida estratificada de 1,000 ejemplos) con 27 variables predictoras (geométricas, de luminosidad, de tipo de acero e índices calculados) y 1 variable objetivo binaria (is_bump). Desbalance moderado-preservado (~82% otros defectos / ~18% defectos tipo Bumps) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de control de calidad industrial e inspección automatizada de superficies, donde la detección de tipos específicos de defectos en materiales es fundamental.

🏭 Fuente: Steel Plates Faults Dataset (UCI Machine Learning Repository) - Datos de defectos en placas de acero para clasificación multiclase.

📊 Variables geométricas: X_Minimum, X_Maximum, Y_Minimum, Y_Maximum, Pixels_Areas, X_Perimeter, Y_Perimeter — dimensiones y características de la placa.

💡 Variables de luminosidad: Sum_of_Luminosity, Minimum_of_Luminosity, Maximum_of_Luminosity — mediciones de intensidad lumínica.

🔧 Variables de proceso: TypeOfSteel_A300, TypeOfSteel_A400 (binarias), Steel_Plate_Thickness, Length_of_Conveyer.

📐 Índices calculados: Edges_Index, Empty_Index, Square_Index, Outside_X_Index, Edges_X_Index, Edges_Y_Index, Outside_Global_Index, LogOfAreas, Log_X_Index, Log_Y_Index, Orientation_Index, Luminosity_Index, SigmoidOfAreas.

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

🎯 Variable objetivo: is_bump (1 = Defecto tipo Bumps/Abolladura, 0 = Otros defectos).

🧹 Limpieza aplicada: Carga con separador de espacios, transformación de multiclase a binaria (Bumps vs otros), eliminación de 7 columnas de target para evitar Data Leakage, estandarización de tipos (14 variables a int), reducción estratificada a 1,000 ejemplos.

⚠️ Prevención de Data Leakage: Eliminación intencional de las 7 columnas originales de defectos para evitar que el modelo aprenda la relación trivial entre la clase original y el target binario.

📋 Diccionario de Datos Detallado

Variable Descripción del Defecto Tipo Rango / Categorías Unidad ¿Objetivo?
X_Minimum Coordenada X mínima del defecto (bounding box) Numérico 0 - 1,685 píxeles No
X_Maximum Coordenada X máxima del defecto (bounding box) Numérico 4 - 1,692 píxeles No
fieldYMin Coordenada Y mínima del defecto (bounding box) Numérico 7,003 - 12,806,495 píxeles No
fieldYMax Coordenada Y máxima del defecto (bounding box) Numérico 7,020 - 12,806,520 píxeles No
Pixels_Areas Área del defecto en píxeles Numérico 2 - 22,554 píxeles² No
X_Perimeter Perímetro del defecto en dirección X Numérico 2 - 1,138 píxeles No
Y_Perimeter Perímetro del defecto en dirección Y Numérico 1 - 696 píxeles No
Sum_of_Luminosity Suma total de luminosidad del defecto Numérico 250 - 2,712,104 N/A No
Minimum_of_Luminosity Luminosidad mínima del defecto Numérico 6 - 195 N/A No
Maximum_of_Luminosity Luminosidad máxima del defecto Numérico 70 - 252 N/A No
Length_of_Conveyer Longitud de la cinta transportadora Numérico 1,280 - 1,710 mm No
Steel_Plate_Thickness Espesor de la placa de acero Numérico 40 - 300 mm No
Edges_Index Índice de bordes del defecto Numérico 0 - 0.9835 N/A No
Empty_Index Índice de vacío (proporción de espacio vacío) Numérico 0 - 0.8888 N/A No
Square_Index Índice de cuadratura (qué tan cuadrado es el defecto) Numérico 0.0393 - 1 N/A No
Outside_X_Index Índice de protrusión en dirección X Numérico 0.0015 - 0.6226 N/A No
Edges_X_Index Índice de bordes en dirección X Numérico 0.0645 - 1 N/A No
Edges_Y_Index Índice de bordes en dirección Y Numérico 0.1378 - 1 N/A No
Outside_Global_Index Índice de protrusión global Numérico 0 - 1 N/A No
LogOfAreas Logaritmo del área Numérico 0.301 - 43.532 N/A No
Log_X_Index Logaritmo del índice X Numérico 0.301 - 29.335 N/A No
Log_Y_Index Logaritmo del índice Y Numérico 0 - 26.181 N/A No
Orientation_Index Índice de orientación del defecto Numérico -0.9604 - 0.9607 N/A No
Luminosity_Index Índice de luminosidad relativa Numérico -0.5902 - 0.5916 N/A No
SigmoidOfAreas Transformación sigmoidal del área Numérico 0.119 - 1 N/A No
TypeOfSteel_A300 Tipo de acero A300 (aleación) Binario 0: No, 1: Sí N/A No
TypeOfSteel_A400 Tipo de acero A400 (aleación) Binario 0: No, 1: Sí N/A No
is_bump Defecto tipo "Bump" (Abolladura) - OBJETIVO Binario 0: Otros defectos, 1: Bump N/A
28 Variables totales
25 Numéricas
0 Categóricas
3 Binarias
Objetivo: Bump (is_bump)
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 Defectos en Placas de Acero (Steel Plates Faults). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de inspección de calidad.

TypeOfSteel_A300 y TypeOfSteel_A400 Binario
Código Significado
0No es de este tipo de acero
1Es de este tipo de acero
⚠️

Exclusividad: Los tipos A300 y A400 son mutuamente excluyentes. Un registro no puede tener ambos valores = 1 simultáneamente.

is_bump 🎯 Objetivo
Código Significado
0 Otros Defectos - Pastry, Z_Scratch, K_Scratch, Stains, Dirtiness, Other_Faults (~79.3%)
1 Bumps (Abolladura) - Defecto tipo abolladura (~20.7%)
🎯

Variable Objetivo: Detecta defectos tipo abolladura ("Bumps") frente a otros tipos de fallos superficiales.

Relaciones Matemáticas y Físicas Consistencias

Restricciones geométricas y matemáticas

📐 Relaciones Geométricas
  • X_Minimum < X_Maximum (coordenadas válidas)
  • fieldYMin < fieldYMax (coordenadas válidas)
  • Pixels_Areas ≤ (X_Max - X_Min) × (Y_Max - Y_Min) (área dentro del bounding box)
📊 Correlaciones Matemáticas
  • LogOfAreas = log(Pixels_Areas)
  • SigmoidOfAreas = transformación sigmoidal de Pixels_Areas
  • Square_Index relacionado con la compacidad del defecto
🔢 Variables Constantes
  • Length_of_Conveyer: La mayoría de los valores son 1,280 o 1,710
  • Steel_Plate_Thickness: Mayoría en 40 o 300
🚨

Relaciones críticas: Un generador sintético que no capture estas relaciones producirá defectos físicamente imposibles.

📊
Variables binarias: 3
  • TypeOfSteel_A300 (Acero tipo A300)
  • TypeOfSteel_A400 (Acero tipo A400)
  • 🎯 is_bump (Objetivo - Abolladura)
📈
Variables numéricas: 25
  • 4 Coordenadas espaciales (X_Min, X_Max, Y_Min, Y_Max)
  • 3 Área y perímetros (Pixels_Areas, X_Perimeter, Y_Perimeter)
  • 3 Luminosidad (Sum, Min, Max)
  • 2 Características de placa (Length, Thickness)
  • 13 Índices matemáticos
⚠️
Recomendaciones de Modelado:
  • Relaciones geométricas: Verificar que X_Min < X_Max y Y_Min < Y_Max
  • Área y bounding box: Pixels_Areas ≤ (X_Max - X_Min) × (Y_Max - Y_Min)
  • Exclusividad: A300 y A400 son mutuamente excluyentes
  • Correlaciones: LogOfAreas y SigmoidOfAreas son transformaciones de Pixels_Areas
  • Escalado: Variables con rangos muy diferentes (coordenadas vs índices) - usar StandardScaler o RobustScaler

🔬 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

  • TypeOfSteel_A300 y TypeOfSteel_A400 son mutuamente excluyentes
  • X_Minimum ≥ 1700 → X_Maximum > 1700
  • fieldYMin ≥ 100000 → fieldYMax > 100000
  • Minimum_of_Luminosity > 150 → Maximum_of_Luminosity > 150
  • Sum_of_Luminosity > 1000000 → Pixels_Areas > 3000
  • Log_X_Index > 2.5 → (Orientation_Index > 0) OR (X_Perimeter > 0)
  • Empty_Index < 0.1 → SigmoidOfAreas > 0.5
  • Edges_Index < 0.2 → Edges_X_Index < 0.8
  • is_bump == 1 → LogOfAreas < 5
  • X_Perimeter < 5 → Log_X_Index < 1.5
  • Pixels_Areas == 0 → LogOfAreas ≤ 0
  • Steel_Plate_Thickness > 200 → (TypeOfSteel_A300 = 1) OR (TypeOfSteel_A400 = 1)
  • Log_X_Index < 1 → LogOfAreas < 4
  • Maximum_of_Luminosity == 255 → Luminosity_Index > -0.5
  • Outside_Global_Index == 1 → Outside_X_Index ≥ 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 950 0.867 0.816 0.815 4.884 0.172 0.148 0.075 0.960 67.220 0 950 0.485
Smote 1 950 0.862 0.829 0.825 4.095 0.324 0.030 0.084 0.965 61.987 0.017 600 0.489
Borderline SMOTE 1 950 0.884 0.838 0.835 7.364 0.321 0.064 0.087 0.963 59.033 0.016 600 0.444 🏆
ADASYN 1.017 942 0.870 0.838 0.835 6.330 0.322 0.104 0.082 0.968 59.791 0.017 600 0.483
SMOTE RSB* Adaptado 1.267 850 0.865 0.810 0.805 3.205 0.285 0.153 0.053 0.975 57.798 0.018 600 0.472
SMOTE RSB* Adaptado + Reglas 1.267 850 0.864 0.842 0.835 6.514 0.285 0.170 0.050 0.976 58.381 0.019 600 0.455
OOF PSO para Balanceo 1 950 0.873 0.792 0.815 1.788 0.350 0.003 0.128 0.661 66.825 0.123 600 0.486
OOF PSO para Balanceo + Reglas 1 950 0.876 0.812 0.825 3.401 0.350 0.000 0.128 0.635 66.430 0.106 600 0.475
Mejor seleccionado: Borderline SMOTE (TabDSFidelity: 7.364, AUC: 0.884, F1: 0.838, MIA: 0.444). 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.003 7727 0.847 0.781 0.790 7.964 0.620 0.040 0.086 0.957 107.506 0.136 0 0.446
SMOTE RSB* + Ruido Gaussiano + Reglas 1.003 7727 0.843 0.802 0.810 8.196 0.620 0.040 0.089 0.957 310.499 0.136 0 0.448 🏆
CTGAN 1.393 10000 0.559 0.589 0.545 2.904 0.546 0.012 0.155 0.844 579.969 0.147 0 0.467
CTGAN + Reglas del Dominio 1.393 10000 0.517 0.543 0.495 2.057 0.546 0.012 0.168 0.844 848.057 0.143 0 0.501
TVAE 1.150 10000 0.852 0.834 0.830 7.320 0.685 0.005 0.076 0.928 424.898 0.075 0 0.490
TVAE + Reglas del Dominio 1.150 10000 0.855 0.829 0.825 7.273 0.685 0.005 0.077 0.928 696.848 0.074 0 0.495
OOF PSO para Aumento 1 10000 0.771 0.571 0.535 1.962 0.757 0.000 0.069 0.590 170.848 0.231 0 0.441
OOF PSO para Aumento + Reglas 1 10000 0.772 0.534 0.500 1.509 0.757 0.000 0.069 0.590 424.554 0.231 0 0.473
SMOTE RSB* Refinado 1.009 7509 0.845 0.786 0.790 7.120 0.633 0.007 0.090 0.960 109.586 0.102 0 0.444
SMOTE RSB* Refinado + Reglas 1.009 7509 0.862 0.817 0.820 7.601 0.633 0.007 0.092 0.961 308.161 0.102 0 0.473
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano + Reglas del Dominio (TabDSFidelity: 8.196, AUC: 0.843, F1: 0.802, MIA: 0.448). 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.003 8677 0.850 0.823 0.830 6.843 0.577 0.038 0.086 0.958 212.188 0.134 0 0.482 🏆
SMOTE RSB* + Ruido Gaussiano + Reglas 1.003 8677 0.862 0.810 0.815 6.550 0.577 0.038 0.089 0.958 417.901 0.134 0 0.473
CTGAN 1.353 10950 0.842 0.808 0.800 3.157 0.514 0.021 0.148 0.851 721.059 0.133 120 0.482
CTGAN + Reglas del Dominio 1.353 10950 0.842 0.803 0.795 2.687 0.514 0.021 0.160 0.852 990.520 0.129 120 0.492
TVAE 1.136 10950 0.847 0.821 0.815 4.386 0.635 0.006 0.077 0.933 567.607 0.069 120 0.495
TVAE + Reglas del Dominio 1.136 10950 0.849 0.801 0.795 2.398 0.635 0.006 0.078 0.933 840.977 0.068 120 0.508
OOF PSO para Aumento 1 10950 0.857 0.812 0.805 2.897 0.693 0.000 0.070 0.606 304.567 0.210 120 0.460
OOF PSO para Aumento + Reglas 1 10950 0.862 0.834 0.830 5.963 0.693 0.000 0.070 0.606 561.253 0.210 120 0.496
SMOTE RSB* Refinado 1.008 8459 0.856 0.812 0.815 5.213 0.585 0.009 0.090 0.961 215.059 0.099 0 0.464
SMOTE RSB* Refinado + Reglas 1.008 8459 0.855 0.796 0.805 3.738 0.585 0.009 0.092 0.961 413.079 0.099 0 0.461
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano (TabDSFidelity: 6.843, AUC: 0.850, F1: 0.823, MIA: 0.482). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_49
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
Borderline SMOTE
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
SMOTE RSB* + Ruido Gaussiano + 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 Steel Plate Surface Defect Detection (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32946674.v1