Conjunto de datos biológico para la clasificación de hongos (comestible vs. venenoso). Caracterizado por ser 100% categórico nominal (22 variables de morfología, olor, hábitat) transformado numéricamente.
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.
| Clase | Precisión | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| Clase 0 | 0.85 | 0.96 | 0.90 | 104 |
| Clase 1 | 0.95 | 0.81 | 0.88 | 96 |
| Accuracy | 0.89 | |||
| Macro Avg | 0.90 | 0.89 | 0.89 | 200 |
| Weighted Avg | 0.90 | 0.89 | 0.89 | 200 |
| Clase | Precisión | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| Clase 0 | 1.00 | 1.00 | 1.00 | 104 |
| Clase 1 | 1.00 ⬆ +0.05 | 1.00 ⬆ +0.19 | 1.00 ⬆ +0.12 | 96 |
| Accuracy | 1.00 ⬆ +0.11 | |||
| Macro Avg | 1.00 ⬆ +0.10 | 1.00 ⬆ +0.11 | 1.00 ⬆ +0.11 | 200 |
| Weighted Avg | 1.00 ⬆ +0.10 | 1.00 ⬆ +0.11 | 1.00 ⬆ +0.11 | 200 |
El conjunto de datos de Clasificación de Hongos (Mushroom Classification) incluye descripciones de muestras hipotéticas correspondientes a 23 especies de hongos con branquias de las familias Agaricus y Lepiota, extraídas de The Audubon Society Field Guide to North American Mushrooms (1981). Cada especie está identificada como definitivamente comestible, definitivamente venenosa, o de comestibilidad desconocida (no recomendada). Esta última clase fue combinada con la clase venenosa. El objetivo es predecir si un hongo es comestible (e) o venenoso (p) basándose en 22 características morfológicas. La guía establece claramente que no existe una regla simple para determinar la comestibilidad de un hongo.
La identificación de hongos comestibles vs. venenosos es un problema de seguridad alimentaria y salud pública. La intoxicación por hongos puede causar desde molestias gastrointestinales hasta fallo hepático y muerte. Este dataset es importante porque:
La guía establece claramente que no existe una regla simple para determinar la comestibilidad de un hongo. No existe una regla como "hojas de tres, déjala ser" para el roble venenoso y la hiedra. La identificación de hongos debe realizarse por expertos capacitados y nunca basarse únicamente en modelos predictivos.
El dataset contiene 8,124 instancias con 22 atributos (21 variables predictoras y 1 variable objetivo). Todas las características son de tipo categórico y no presentan valores faltantes.
| Variable | Descripción | Categorías |
|---|---|---|
| A. Características Morfológicas | ||
| cap-shape | Forma del sombrero | bell=b, conical=c, convex=x, flat=f, knobbed=k, sunken=s |
| cap-surface | Superficie del sombrero | fibrous=f, grooves=g, scaly=y, smooth=s |
| cap-color | Color del sombrero | brown=n, buff=b, cinnamon=c, gray=g, green=r, pink=p, purple=u, red=e, white=w, yellow=y |
| bruises | ¿Presenta moretones? | bruises=t, no=f |
| odor | Olor del hongo | almond=a, anise=l, creosote=c, fishy=y, foul=f, musty=m, none=n, pungent=p, spicy=s |
| gill-attachment | Unión de las láminas | attached=a, descending=d, free=f, notched=n |
| gill-spacing | Espaciado de las láminas | close=c, crowded=w, distant=d |
| gill-size | Tamaño de las láminas | broad=b, narrow=n |
| gill-color | Color de las láminas | black=k, brown=n, buff=b, chocolate=h, gray=g, green=r, orange=o, pink=p, purple=u, red=e, white=w, yellow=y |
| stalk-shape | Forma del tallo | enlarging=e, tapering=t |
| stalk-root | Raíz del tallo | bulbous=b, club=c, cup=u, equal=e, rhizomorphs=z, rooted=r, missing=? |
| stalk-surface-above-ring | Superficie del tallo (por encima del anillo) | fibrous=f, scaly=y, silky=k, smooth=s |
| stalk-surface-below-ring | Superficie del tallo (por debajo del anillo) | fibrous=f, scaly=y, silky=k, smooth=s |
| stalk-color-above-ring | Color del tallo (por encima del anillo) | brown=n, buff=b, cinnamon=c, gray=g, orange=o, pink=p, red=e, white=w, yellow=y |
| stalk-color-below-ring | Color del tallo (por debajo del anillo) | brown=n, buff=b, cinnamon=c, gray=g, orange=o, pink=p, red=e, white=w, yellow=y |
| veil-type | Tipo de velo | partial=p, universal=u |
| veil-color | Color del velo | brown=n, orange=o, white=w, yellow=y |
| ring-number | Número de anillos | none=n, one=o, two=t |
| ring-type | Tipo de anillo | cobwebby=c, evanescent=e, flaring=f, large=l, none=n, pendant=p, sheathing=s, zone=z |
| spore-print-color | Color de la impresión de esporas | black=k, brown=n, buff=b, chocolate=h, green=r, orange=o, purple=u, white=w, yellow=y |
| population | Población | abundant=a, clustered=c, numerous=n, scattered=s, several=v, solitary=y |
| habitat | Hábitat | grasses=g, leaves=l, meadows=m, paths=p, urban=u, waste=w, woods=d |
| B. Variable Objetivo | ||
| class | Comestibilidad del hongo | e = comestible, p = venenoso |
El conjunto de datos contiene características morfológicas de hongos y no incluye información personal identificable. Los datos son de dominio público y se utilizan exclusivamente para fines académicos y de investigación. 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. Se enfatiza que los modelos predictivos no deben utilizarse para identificar hongos en la vida real sin la supervisión de un experto micólogo.
Este conjunto de datos es un clásico en clasificación categórica y es ideal para problemas de clasificación. Se recomienda:
La identificación correcta de hongos es crucial para la seguridad alimentaria. La intoxicación por hongos puede tener consecuencias graves:
Este dataset ha sido utilizado en numerosas investigaciones sobre clasificación y ha contribuido al desarrollo de técnicas de aprendizaje automático interpretable. A pesar de su antigüedad, sigue siendo relevante para entender qué características morfológicas son más indicativas de toxicidad.
Mushroom Classification Dataset. UCI Machine Learning Repository. https://archive.ics.uci.edu/ml/datasets/Mushroom
sklearn.preprocessing.LabelEncoder.train_test_split con parámetro stratify para preservar exactamente la proporción original de clases (desbalance de hongos venenosos vs comestibles).📊 Resultado: Dataset de 8,124 especímenes de hongos (con versión reducida estratificada de 1,000 ejemplos) con 21 variables predictoras (todas categóricas codificadas: características morfológicas y de hábitat) y 1 variable objetivo binaria (is_poisonous). Desbalance equilibrado-preservado (~52% comestibles / ~48% venenosos) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de clasificación biológica y micología, donde las características morfológicas de los hongos son determinantes para distinguir especies comestibles de venenosas.
🍄 Fuente: Mushroom Classification Dataset (UCI Machine Learning Repository) - Datos de hongos del género Agaricus y Lepiota.
📊 Variables morfológicas: Forma del sombrero (cap-shape), superficie (cap-surface), color (cap-color), moretones (bruises), olor (odor) — el olor es uno de los predictores más importantes.
📋 Variables de laminillas y tallo: Fijación (gill-attachment), espaciado (gill-spacing), tamaño (gill-size), color (gill-color), forma del tallo (stalk-shape), raíz (stalk-root), superficies y colores del tallo.
🌍 Variables de hábitat: Población (population) y hábitat (habitat) — factores ecológicos de crecimiento.
📁 Leyenda disponible: Archivo leyenda_mushrooms.txt con mapeo completo de todas las variables categóricas codificadas.
🎯 Variable objetivo: is_poisonous (1 = Venenoso, 0 = Comestible).
🧹 Limpieza aplicada: Eliminación de columnas constantes (veil-type), renombrado de target, mapeo de target ('p'→1, 'e'→0), Label Encoding de 21 variables categóricas, reducción estratificada a 1,000 ejemplos.
| Variable | Descripción Micológica | Tipo | Rango / Categorías | Unidad | ¿Objetivo? |
|---|---|---|---|---|---|
cap-shape |
Forma del sombrero del hongo | Categórico | 0: Bell, 1: Conical, 2: Flat, 3: Knobbed, 4: Sunken, 5: Convex | N/A | No |
cap-surface |
Superficie del sombrero | Categórico | 0: Fibrous, 1: Grooves, 2: Smooth, 3: Scaly | N/A | No |
cap-color |
Color del sombrero | Categórico | 0: Buff, 1: Cinnamon, 2: Red, 3: Gray, 4: Brown, 5: Pink, 6: Purple, 7: Green, 8: White, 9: Yellow | N/A | No |
bruises |
Magulladuras al tacto | Categórico | 0: No, 1: Sí | N/A | No |
odor |
Olor del hongo (predictor más potente) | Categórico | 0: Almond, 1: Creosote, 2: Foul, 3: Anise, 4: Musty, 5: None, 6: Pungent, 7: Spicy, 8: Fishy | N/A | No |
gill-attachment |
Inserción de las láminas | Categórico | 0: Attached (Adheridas), 1: Free (Libres) | N/A | No |
gill-spacing |
Espaciado de las láminas | Categórico | 0: Close (Juntas), 1: Crowded (Apretadas) | N/A | No |
gill-size |
Tamaño de las láminas | Categórico | 0: Broad (Anchas), 1: Narrow (Estrechas) | N/A | No |
gill-color |
Color de las láminas | Categórico | 0: Buff, 1: Red, 2: Gray, 3: Chocolate, 4: Black, 5: Brown, 6: Orange, 7: Pink, 8: Purple, 9: Green, 10: White, 11: Yellow | N/A | No |
stalk-shape |
Forma del tallo | Categórico | 0: Enlarging (Ensanchado), 1: Tapering (Ahusado) | N/A | No |
stalk-root |
Raíz del tallo | Categórico | 0: Desconocido, 1: Bulbous (Bulbosa), 2: Club (En forma de maza), 3: Equal (Igual), 4: Rooted (Enraizada) | N/A | No |
stalk-surface-above-ring |
Superficie del tallo por encima del anillo | Categórico | 0: Fibrous, 1: Silky, 2: Smooth, 3: Scaly | N/A | No |
stalk-surface-below-ring |
Superficie del tallo por debajo del anillo | Categórico | 0: Fibrous, 1: Silky, 2: Smooth, 3: Scaly | N/A | No |
stalk-color-above-ring |
Color del tallo por encima del anillo | Categórico | 0: Buff, 1: Cinnamon, 2: Red, 3: Gray, 4: Brown, 5: Orange, 6: Pink, 7: White, 8: Yellow | N/A | No |
stalk-color-below-ring |
Color del tallo por debajo del anillo | Categórico | 0: Buff, 1: Cinnamon, 2: Red, 3: Gray, 4: Brown, 5: Orange, 6: Pink, 7: White, 8: Yellow | N/A | No |
veil-color |
Color del velo (cortina parcial) | Categórico | 0: Brown, 1: Orange, 2: White, 3: Yellow | N/A | No |
ring-number |
Número de anillos | Categórico | 0: None (Ninguno), 1: One (Uno), 2: Two (Dos) | N/A | No |
ring-type |
Tipo de anillo | Categórico | 0: Evanescent (Evanescente), 1: Flaring (Abocinado), 2: Large (Grande), 3: None (Ninguno), 4: Pendant (Colgante) | N/A | No |
spore-print-color |
Color de la impresión de esporas | Categórico | 0: Buff, 1: Chocolate, 2: Black, 3: Brown, 4: Orange, 5: Green, 6: Purple, 7: White, 8: Yellow | N/A | No |
population |
Distribución poblacional del hongo | Categórico | 0: Abundant, 1: Clustered, 2: Numerous, 3: Scattered, 4: Several, 5: Solitary | N/A | No |
habitat |
Hábitat del hongo | Categórico | 0: Woods, 1: Grasses, 2: Leaves, 3: Meadows, 4: Paths, 5: Urban, 6: Waste | N/A | No |
is_poisonous |
Comestibilidad del hongo (objetivo) | Binario | 0: Comestible, 1: Venenoso | N/A | Sí |
Esta sección detalla los códigos y significados de las variables categóricas y binarias presentes en el conjunto de datos de Clasificación de Hongos (Mushrooms). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de identificación de hongos comestibles y venenosos.
cap-shape
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | b - Bell (Campana) |
| 1 | c - Conical (Cónico) |
| 2 | f - Flat (Plano) |
| 3 | k - Knobbed (Con protuberancia) |
| 4 | s - Sunken (Hundido) |
| 5 | x - Convex (Convexo) |
cap-surface
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | f - Fibrous (Fibrosa) |
| 1 | g - Grooves (Con surcos) |
| 2 | s - Smooth (Lisa) |
| 3 | y - Scaly (Escamosa) |
cap-color
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | b - Buff (Amarillo pálido) |
| 1 | c - Cinnamon (Canela) |
| 2 | e - Red (Rojo) |
| 3 | g - Gray (Gris) |
| 4 | n - Brown (Marrón) |
| 5 | p - Pink (Rosa) |
| 6 | r - Purple (Púrpura) |
| 7 | u - Green (Verde) |
| 8 | w - White (Blanco) |
| 9 | y - Yellow (Amarillo) |
bruises
Binario
| Código | Significado (Original) |
|---|---|
| 0 | f - No (No tiene magulladuras) |
| 1 | t - Yes (Tiene magulladuras) |
odor
Categórica
⚠️ El predictor más potente para detectar venenosos
| Código | Significado (Original) | Comestibilidad |
|---|---|---|
| 0 | a - Almond (Almendra) | ✓ Comestible |
| 1 | c - Creosote (Creosota) | ✗ Venenoso |
| 2 | f - Foul (Fétido) | ✗ Venenoso |
| 3 | l - Anise (Anís) | ✓ Comestible |
| 4 | m - Musty (Mohoso) | ✗ Venenoso |
| 5 | n - None (Ninguno) | ✓ Comestible |
| 6 | p - Pungent (Pungente) | ✗ Venenoso |
| 7 | s - Spicy (Picante) | ✓ Comestible |
| 8 | y - Fishy (A pescado) | ✗ Venenoso |
Regla clave: Olores como Almond (0), Anise (3), None (5) y Spicy (7) son típicamente comestibles.
gill-attachment
Binario
| Código | Significado (Original) |
|---|---|
| 0 | a - Attached (Adheridas al tallo) |
| 1 | f - Free (Libres, sin adherir) |
gill-spacing
Binario
| Código | Significado (Original) |
|---|---|
| 0 | c - Close (Juntas) |
| 1 | w - Crowded (Apretadas) |
gill-size
Binario
| Código | Significado (Original) |
|---|---|
| 0 | b - Broad (Anchas) |
| 1 | n - Narrow (Estrechas) |
gill-color
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | b - Buff |
| 1 | e - Red |
| 2 | g - Gray |
| 3 | h - Chocolate |
| 4 | k - Black |
| 5 | n - Brown |
| 6 | o - Orange |
| 7 | p - Pink |
| 8 | r - Purple |
| 9 | u - Green |
| 10 | w - White |
| 11 | y - Yellow |
stalk-shape
Binario
| Código | Significado (Original) |
|---|---|
| 0 | e - Enlarging (Ensanchado hacia la base) |
| 1 | t - Tapering (Ahusado) |
stalk-root
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | ? - Unknown (Desconocido) |
| 1 | b - Bulbous (Bulbosa) |
| 2 | c - Club (En forma de maza) |
| 3 | e - Equal (Igual) |
| 4 | r - Rooted (Enraizada) |
Nota: El código 0 corresponde a valores originales "?" (desconocidos).
stalk-surface-above-ring y stalk-surface-below-ring
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | f - Fibrous (Fibrosa) |
| 1 | k - Silky (Sedosa) |
| 2 | s - Smooth (Lisa) |
| 3 | y - Scaly (Escamosa) |
stalk-color-above-ring y stalk-color-below-ring
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | b - Buff |
| 1 | c - Cinnamon |
| 2 | e - Red |
| 3 | g - Gray |
| 4 | n - Brown |
| 5 | o - Orange |
| 6 | p - Pink |
| 7 | w - White |
| 8 | y - Yellow |
veil-color
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | n - Brown |
| 1 | o - Orange |
| 2 | w - White |
| 3 | y - Yellow |
ring-number
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | n - None (Ninguno) |
| 1 | o - One (Uno) |
| 2 | t - Two (Dos) |
ring-type
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | e - Evanescent (Evanescente) |
| 1 | f - Flaring (Abocinado) |
| 2 | l - Large (Grande) |
| 3 | n - None (Ninguno) |
| 4 | p - Pendant (Colgante) |
spore-print-color
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | b - Buff |
| 1 | h - Chocolate |
| 2 | k - Black |
| 3 | n - Brown |
| 4 | o - Orange |
| 5 | r - Green |
| 6 | u - Purple |
| 7 | w - White |
| 8 | y - Yellow |
population
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | a - Abundant (Abundante) |
| 1 | c - Clustered (Agrupado) |
| 2 | n - Numerous (Numeroso) |
| 3 | s - Scattered (Disperso) |
| 4 | v - Several (Varios) |
| 5 | y - Solitary (Solitario) |
habitat
Categórica
| Código | Significado (Original) |
|---|---|
| 0 | d - Woods (Bosque) |
| 1 | g - Grasses (Pastizales) |
| 2 | l - Leaves (Hojarasca) |
| 3 | m - Meadows (Prados) |
| 4 | p - Paths (Caminos) |
| 5 | u - Urban (Urbano) |
| 6 | w - Waste (Terreno baldío) |
is_poisonous
🎯 Objetivo
| Código | Significado |
|---|---|
| 0 | Edible (Comestible) - Hongo seguro para consumir (~52%) |
| 1 | Poisonous (Venenoso) - Hongo tóxico (~48%) |
Variable Objetivo: Clasifica la comestibilidad del hongo basado en 21 características morfológicas.
Regla clave: El odor (olor) es el predictor más potente. Olores como Almond (0) o None (5) son típicos de comestibles.
odor - Olores Foul (2), Musty (4), Pungent (6), Fishy (8) son venenososspore-print-color es muy discriminantebruises = 1 es un indicador importanteveil-type fue removida por ser constanteodor == 2 (Fétido) → is_poisonous = 1odor == 1 (Creosota, almendra, pimentón, sulfuroso) → is_poisonous = 1odor == 0 (Anís, almendra) → is_poisonous = 0spore-print-color == 5 (Verde) → is_poisonous = 1spore-print-color == 1 (Chocolate) → is_poisonous = 0gill-color == 0 (Buff) → is_poisonous = 1gill-size == 1 (Estrechas) → is_poisonous = 1gill-size == 0 (Anchas) → is_poisonous = 0ring-type == 2 (Grande) → is_poisonous = 1bruises == 0 → gill-spacing = 1 (Sin magulladuras → agallas juntas)stalk-surface-above-ring == 1 (Sedoso) → is_poisonous = 1stalk-surface-above-ring == 0 (Fibroso) → is_poisonous = 0population == 1 (Agrupada) → is_poisonous = 1population == 0 (Abundante/Numerosa) → is_poisonous = 0is_poisonous == 1 → odor ≠ 0 (Venenoso → olor no anís)odor y gill-size son mutuamente excluyentesgill-color y gill-size son mutuamente excluyentesstalk-color-above-ring == 7 → stalk-color-below-ring = 7 (Color consistente)ring-number == 0 → ring-type = 3 (Sin anillo → tipo ausente)gill-attachment == 1 → gill-spacing = 0| Valor escala | 0.03 |
|---|---|
| Probabilidad Base | 0.1 |
| epochs | 500 |
|---|---|
| batch_size | 50 |
| generator_lr | 0.0002 |
| discriminator_lr | 0.0002 |
| pac | 10 |
| generator_dim | (256, 256) |
| discriminator_dim | (256, 256) |
| embedding_dim | 128 |
| l2scale | 1e-05 |
| epochs | 500 |
|---|---|
| batch_size | 50 |
| embedding_dim | 128 |
| compress_dims | (128, 128) |
| decompress_dims | (128, 128) |
| l2scale | 1e-5 |
| loss_factor | 2 |
| Random Seed | 42 |
|---|---|
| Python | 3.12.12 |
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.
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:
El mejor conjunto de cada etapa fue seleccionado mediante el índice TabDSFidelity.
| Algoritmo | Ratio | N° Ejemplos | AUC-ROC | F1 | Accuracy | TabDSFidelity | Jensen-Shannon | Kolmogorov-Smirnov | Kullback-Leibler | Correlación | Tiempo Total (s) | Dist. Promedio | Copias Exactas | Ataque MIA | Mejor |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Random Oversampling | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| Smote | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| Borderline SMOTE | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| ADASYN | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| SMOTE RSB* Adaptado | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| SMOTE RSB* Adaptado + Reglas | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| OOF PSO para Balanceo | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
| OOF PSO para Balanceo + Reglas | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| 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.035 | 3000 | 0.895 | 0.885 | 0.885 | 5.434 | - | - | 0.418 | 0.839 | 42.265 | 0.495 | 0 | 0.466 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.020 | 3000 | 0.713 | 0.650 | 0.650 | 0.768 | - | - | 1.820 | 0.828 | 118.632 | 0.503 | 0 | 0.539 | |
| CTGAN | 1.386 | 9023 | 0.920 | 0.894 | 0.895 | 6.246 | - | - | 0.040 | 0.926 | 450.921 | 0.176 | 0 | 0.474 | |
| CTGAN + Reglas del Dominio | 1.017 | 9023 | 0.855 | 0.779 | 0.780 | 3.613 | - | - | 1.481 | 0.877 | 570.915 | 0.232 | 0 | 0.474 | |
| TVAE | 1.230 | 4739 | 1.000 | 0.995 | 0.995 | 8.000 | - | - | 0.021 | 0.933 | 167.292 | 0.103 | 0 | 0.447 | 🏆 |
| TVAE + Reglas del Dominio | 1.210 | 4739 | 0.892 | 0.845 | 0.845 | 4.672 | - | - | 1.475 | 0.886 | 270.923 | 0.180 | 0 | 0.478 | |
| OOF PSO para Aumento | 1 | 10000 | 0.932 | 0.863 | 0.865 | 4.639 | - | - | 0.869 | 0.686 | 101.292 | 0.424 | 0 | 0.479 | |
| OOF PSO para Aumento + Reglas | 2.503 | 10000 | 0.894 | 0.790 | 0.790 | 2.914 | - | - | 2.301 | 0.694 | 218.311 | 0.490 | 0 | 0.473 | |
| SMOTE RSB* Refinado | 1 | 3000 | 0.897 | 0.885 | 0.885 | 5.459 | - | - | 0.422 | 0.843 | 57.113 | 0.493 | 0 | 0.492 | |
| SMOTE RSB* Refinado + Reglas | 1.020 | 3000 | 0.807 | 0.725 | 0.725 | 2.300 | - | - | 1.828 | 0.830 | 155.910 | 0.503 | 0 | 0.534 |
| 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.045 | 4000 | 1.000 | 1.000 | 1.000 | 1.377 | - | - | 0.245 | 0.868 | 80.998 | 0.373 | 496 | 0.450 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.034 | 4000 | 1.000 | 1.000 | 1.000 | 1.231 | - | - | 0.316 | 0.855 | 159.281 | 0.379 | 496 | 0.458 | |
| CTGAN | 1.351 | 10023 | 1.000 | 1.000 | 1.000 | 1.930 | - | - | 0.033 | 0.933 | 512.128 | 0.157 | 209 | 0.454 | |
| CTGAN + Reglas del Dominio | 1.008 | 10023 | 1.000 | 1.000 | 1.000 | 1.530 | - | - | 0.193 | 0.886 | 630.570 | 0.207 | 209 | 0.463 | |
| TVAE | 1.201 | 5739 | 1.000 | 1.000 | 1.000 | 2.000 | - | - | 0.014 | 0.945 | 219.229 | 0.085 | 378 | 0.450 | 🏆 |
| TVAE + Reglas del Dominio | 1.156 | 5739 | 1.000 | 1.000 | 1.000 | 1.683 | - | - | 0.138 | 0.906 | 323.494 | 0.146 | 378 | 0.463 | |
| OOF PSO para Aumento | 1.007 | 11000 | 1.000 | 1.000 | 1.000 | 0.186 | - | - | 0.652 | 0.704 | 161.048 | 0.383 | 186 | 0.446 | |
| OOF PSO para Aumento + Reglas | 2.261 | 11000 | 1.000 | 1.000 | 1.000 | 0.042 | - | - | 0.798 | 0.714 | 277.407 | 0.444 | 186 | 0.434 | |
| SMOTE RSB* Refinado | 1.018 | 4000 | 1.000 | 1.000 | 1.000 | 1.384 | - | - | 0.247 | 0.870 | 107.385 | 0.370 | 496 | 0.439 | |
| SMOTE RSB* Refinado + Reglas | 1.034 | 4000 | 1.000 | 1.000 | 1.000 | 1.233 | - | - | 0.320 | 0.857 | 205.082 | 0.378 | 496 | 0.454 |
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:
¿Qué mide? Capacidad del modelo para distinguir entre clases (Ej: mortalidad vs supervivencia).
Interpretación:
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.
¿Qué mide? Media armónica entre precisión y sensibilidad (recall).
Interpretación:
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).
¿Qué mide? Proporción de predicciones correctas sobre el total.
Interpretación:
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.
¿Qué mide? Calidad global del conjunto sintético comparado con el original.
Interpretació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).
¿Qué mide? Similitud entre las distribuciones de variables numéricas del conjunto sintético y el original.
Interpretación:
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.
¿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:
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.
¿Qué mide? Divergencia entre las distribuciones de variables categóricas del conjunto sintético y el original.
Interpretación:
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.
¿Qué mide? Preservación de las relaciones entre variables del conjunto original.
Interpretación:
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.
¿Qué mide? Tiempo total de ejecución del proceso de generación del conjunto.
Interpretación:
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.
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.
¿Qué mide? La distancia promedio entre cada registro sintético y su registro más cercano en el conjunto de datos original.
Interpretación:
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.
¿Qué mide? Número de registros sintéticos que son copias idénticas de registros en el conjunto de datos original.
Interpretació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.
¿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:
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.
Formatos incluidos: CSV.
Díaz Bastida, M., Pérez Vázquez, R. A., & Bello Pérez, R. (2026). High-Fidelity Synthetic Dataset for Mushroom Edibility Classification (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32946821.v1