CD_47 Original + Derivados

CD_47: Credit Approval

Conjunto de datos clásico para la evaluación de solicitudes de crédito. Caracterizado por la anonimización total de sus atributos (A1-A16) y una mezcla de tipos de datos (continuos, binarios, nominales) procesados numéricamente.

📈 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.86 0.85 0.85 72
Clase 1 0.82 0.83 0.82 59
Accuracy 0.84
Macro Avg 0.84 0.84 0.84 131
Weighted Avg 0.84 0.84 0.84 131
AUC-ROC: 0.96
F1-Score (weighted): 0.84
Accuracy: 0.84
➡️ Mejora
⬆ +0.04 AUC ⬆ +0.14 F1 ⬆ +0.14 Acc
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.97 1.00 0.99 72
Clase 1 1.00 ⬆ +0.18 0.97 ⬆ +0.14 0.98 ⬆ +0.16 59
Accuracy 0.98 ⬆ +0.14
Macro Avg 0.99 ⬆ +0.15 0.98 ⬆ +0.14 0.98 ⬆ +0.14 131
Weighted Avg 0.99 ⬆ +0.15 0.98 ⬆ +0.14 0.98 ⬆ +0.14 131
AUC-ROC: 1.00 ⬆ +0.04
F1-Score (weighted): 0.98 ⬆ +0.14
Accuracy: 0.98 ⬆ +0.14

📊 Resumen de Mejoras en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.82
Sintético: 1.00
⬆ +0.18
📈
Recall
Original: 0.83
Sintético: 0.97
⬆ +0.14
⚖️
F1-Score
Original: 0.82
Sintético: 0.98
⬆ +0.16

📚 Fuente Original del Conjunto

Credit Card Applications Dataset

v1.0
Datos de solicitudes de tarjetas de crédito
Disponible en repositorios públicos

📄 Resumen (Abstract)

El conjunto de datos de Solicitudes de Tarjetas de Crédito (Credit Card Applications) contiene 690 solicitudes de tarjetas de crédito. Este dataset es interesante porque presenta una buena combinación de atributos de diferentes tipos: continuos, nominales con pocos valores y nominales con muchos valores. Todos los nombres y valores de los atributos han sido cambiados a símbolos sin significado para proteger la confidencialidad de los datos. El objetivo es predecir si una solicitud de tarjeta de crédito será aprobada (+) o rechazada (-).

🏦 Contexto del Dominio

La evaluación de solicitudes de tarjetas de crédito es un proceso crítico en la industria bancaria y financiera. Las instituciones financieras deben decidir rápidamente si aprobar o rechazar una solicitud basándose en la evaluación del riesgo crediticio. Este dataset permite:

  • Desarrollar modelos predictivos para automatizar la aprobación de tarjetas
  • Identificar factores clave en la decisión de aprobación
  • Reducir tiempos de procesamiento y mejorar la experiencia del cliente
  • Mantener consistencia en las decisiones de aprobación
🔒 Confidencialidad

Todos los nombres y valores de atributos han sido cambiados a símbolos sin significado (A1, A2, ..., A16) para proteger la confidencialidad de los datos. Esto es una práctica común en conjuntos de datos financieros para cumplir con normativas de privacidad y proteger información sensible de los solicitantes.

📊 Descripción de Datos

El dataset contiene 690 instancias con 15 atributos (14 variables predictoras y 1 variable objetivo). Las características son de tipo mixto (categóricas, continuas) y presentan valores faltantes en varias variables.

📋 Variables del Dataset
Variable Tipo Descripción Valores / Rango Faltantes
A. Variables Predictoras
A1 Categórica Atributo anonimizado 1 b, a
A2 Continua Atributo anonimizado 2 Numérico
A3 Continua Atributo anonimizado 3 Numérico No
A4 Categórica Atributo anonimizado 4 u, y, l, t
A5 Categórica Atributo anonimizado 5 g, p, gg
A6 Categórica Atributo anonimizado 6 c, d, cc, i, j, k, m, r, q, w, x, e, aa, ff
A7 Categórica Atributo anonimizado 7 v, h, bb, j, n, z, dd, ff, o
A8 Continua Atributo anonimizado 8 Numérico No
A9 Categórica Atributo anonimizado 9 t, f No
A10 Categórica Atributo anonimizado 10 t, f No
A11 Continua Atributo anonimizado 11 Numérico No
A12 Categórica Atributo anonimizado 12 t, f No
A13 Categórica Atributo anonimizado 13 g, p, s No
A14 Continua Atributo anonimizado 14 Numérico
A15 Continua Atributo anonimizado 15 Numérico No
B. Variable Objetivo
A16 Categórica (Target) Resultado de la solicitud + = Aprobada
- = Rechazada
No
📊 Distribución de Tipos de Atributos
  • Atributos Continuos (6): A2, A3, A8, A11, A14, A15
  • Atributos Categóricos con pocos valores (5): A1 (2), A4 (4), A5 (3), A9 (2), A10 (2), A12 (2), A13 (3)
  • Atributos Categóricos con muchos valores (3): A6 (14 valores), A7 (9 valores)
  • Variable Objetivo (1): A16 (+/-)

Esta variedad de tipos de atributos hace que el dataset sea ideal para probar diferentes técnicas de preprocesamiento y algoritmos de clasificación.

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria (Aprobación + / Rechazo -)
  • Dimensión: Multivariante (690 × 15)
  • Tipo de características: Mixtas (Categóricas, Continuas)
  • Valores faltantes: Sí (en varias variables)
  • Área de aplicación: Finanzas, Banca, Evaluación de Crédito
  • Anonimización: Todos los nombres y valores han sido codificados

⚖️ Ética y Privacidad

El conjunto de datos ha sido completamente anonimizado para proteger la confidencialidad de los solicitantes y la información de la institución financiera. Todos los nombres y valores de atributos han sido cambiados a símbolos sin significado (A1, A2, ..., A16). 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 a los solicitantes.

📋 Notas de Uso

Este conjunto de datos es ideal para problemas de clasificación y evaluación de riesgos crediticios. Se recomienda:

  • La variable objetivo A16 está codificada como + (Aprobada) y - (Rechazada). Convertir a valores binarios: + → 1, - → 0
  • Manejar valores faltantes:
    • Variables continuas (A2, A14): Imputación por mediana
    • Variables categóricas (A1, A4, A5, A6, A7): Imputación por moda
  • Codificar variables categóricas:
    • Binarias (A1, A9, A10, A12): Label Encoding (a/b → 0/1, t/f → 0/1)
    • Multiclase con pocos valores (A4, A5, A13): One-Hot Encoding
    • Multiclase con muchos valores (A6, A7): One-Hot Encoding o Frequency Encoding
  • Estandarizar/normalizar variables continuas (A2, A3, A8, A11, A14, A15)
  • Los atributos han sido anonimizados, por lo que no hay interpretación semántica directa
  • Este dataset tiene una buena mezcla de tipos de atributos, lo que lo hace adecuado para probar diferentes algoritmos
  • Utilizar validación cruzada estratificada para evaluar el rendimiento del modelo

💡 Importancia en la Evaluación de Crédito

La evaluación automática de solicitudes de tarjetas de crédito es una aplicación fundamental del aprendizaje automático en el sector financiero. Los beneficios incluyen:

  • Reducción de tiempos de procesamiento de solicitudes
  • Consistencia en las decisiones de aprobación
  • Reducción de sesgos en la evaluación manual
  • Mejora de la experiencia del cliente con respuestas rápidas
  • Optimización de recursos en el departamento de crédito

Este dataset es especialmente valioso porque presenta una mezcla realista de tipos de atributos (continuos, categóricos con pocos y muchos valores) y valores faltantes, lo que lo convierte en un desafío práctico para el desarrollo de modelos predictivos en el sector financiero.

📖 Cómo citar la fuente original

Credit Card Applications Dataset. UCI Machine Learning Repository. https://archive.ics.uci.edu/ml/datasets/Credit+Card+Applications

📚 Referencias Adicionales

  • UCI Machine Learning Repository - Credit Card Applications. https://archive.ics.uci.edu/ml/datasets/Credit+Card+Applications
  • Quinlan, J. R. (1993). C4.5: Programs for Machine Learning. Morgan Kaufmann.
  • Thomas, L. C., Edelman, D. B., & Crook, J. N. (2002). Credit Scoring and Its Applications. SIAM.
  • Hand, D. J., & Henley, W. E. (1997). Statistical classification methods in consumer credit scoring: a review. Journal of the Royal Statistical Society: Series A, 160(3), 523-541.

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (Credit Approval - CRX)

  • Carga y estructuración de datos:
    • Carga del archivo crx.data con nombres de columnas A1 a A16 según la documentación oficial.
    • Tratamiento de valores '?' como NaN durante la carga para identificación temprana de valores faltantes.
    • Eliminación de filas con valores faltantes (aproximadamente 5% de los datos) para garantizar integridad y calidad del conjunto.
  • Transformación de la variable objetivo:
    • Renombramiento de A16 a target para mayor claridad semántica.
    • Mapeo: '+' (Crédito Aprobado) → 1 (Clase Positiva), '-' (Crédito Rechazado) → 0 (Clase Negativa).
    • Documentación detallada del objetivo en la leyenda.
  • Codificación de variables categóricas:
    • Transformación de variables categóricas a valores numéricos mediante Label Encoding con cat.codes.
    • Generación de mapeo completo (código → valor original) en la leyenda para todas las variables categóricas.
    • Preservación de la semántica original a través de la documentación.
  • Estandarización de tipos de datos:
    • Conversión forzada de variables numéricas A2 y A14 a tipo float para garantizar integridad numérica.
    • Preservación de todas las variables en sus tipos numéricos correspondientes.
  • Generación de documentación completa:
    • Creación del archivo leyenda_credit_approval.txt con semántica completa de la variable objetivo y todas las variables predictoras.
    • Mapeo completo de variables categóricas codificadas con sus valores originales.
    • Listado de variables numéricas conservadas en su formato original.
    • Contextualización del dataset: clasificación de aprobación de crédito.
    • Nota sobre eliminación de filas con valores faltantes (≈5% de los datos).
  • Preservación de la estructura y calidad de datos:
    • Mantenimiento de las instancias después de la eliminación de filas con nulos.
    • Dataset final con 15 variables predictoras (mixtas: categóricas codificadas y numéricas) y 1 variable objetivo binaria.
    • Guardado en formato CSV con separador punto y coma (;) para compatibilidad internacional.

📊 Resultado: Dataset de solicitudes de crédito (≈653 registros después de limpieza) con 15 variables predictoras (mixtas: categóricas codificadas y numéricas) y 1 variable objetivo binaria (target). Desbalance moderado (~55% créditos aprobados / ~45% rechazados) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de evaluación de riesgo crediticio y aprobación de préstamos, donde factores demográficos, financieros y de historial crediticio son determinantes.

🏦 Fuente: Credit Approval Dataset (CRX - UCI Machine Learning Repository) - Datos de solicitudes de crédito para clasificación binaria.

📊 Variables categóricas codificadas: A1 (estado de cuenta), A4 (estado civil), A5 (trabajo), A6 (empleo), A7 (vivienda), A8 (historial crediticio), A9 (registro público), A10 (ocupación), A11 (forma de pago), A12 (garante), A13 (cuenta de ahorro), A15 (verificación de crédito) — 12 variables con mapeo documentado.

📊 Variables numéricas: A2 (edad), A3 (monto del crédito), A14 (código postal) — preservadas como números continuos/enteros.

📁 Leyenda disponible: Archivo leyenda_credit_approval.txt con mapeo completo de variables categóricas codificadas (12 variables) y descripción de variables numéricas.

🎯 Variable objetivo: target (1 = Crédito aprobado, 0 = Crédito rechazado).

🧹 Limpieza aplicada: Tratamiento de '?' como NaN, eliminación de filas con valores faltantes (~5% de los datos), codificación de variables categóricas con Label Encoding, estandarización de tipos, renombrado de target.

📋 Diccionario de Datos Detallado

Variable Descripción Crediticia Tipo Rango / Categorías Unidad ¿Objetivo?
A4 Atributo categórico anonimizado (Original: l, u, y, t) Categórico 0: l, 1: u, 2: y, 3: t N/A No
A5 Atributo categórico anonimizado (Original: g, gg, p) Categórico 0: g, 1: gg, 2: p N/A No
A7 Atributo categórico anonimizado (Alta cardinalidad) Categórico 0: bb, 1: dd, 2: ff, 3: h, 4: j, 5: n, 6: o, 7: v, 8: z N/A No
A13 Atributo categórico anonimizado (Original: g, p, s) Categórico 0: g, 1: p, 2: s N/A No
A2 Atributo numérico anonimizado (Posiblemente edad) Numérico 13.75 - 74.83 N/A No
A3 Atributo numérico anonimizado (Posiblemente antigüedad laboral) Numérico 0 - 28 N/A No
A6 Atributo numérico anonimizado (Alta cardinalidad) Numérico 0 - 13 N/A No
A8 Atributo numérico anonimizado Numérico 0 - 28.5 N/A No
A11 Atributo numérico anonimizado (Conteo) Numérico 0 - 40 N/A No
A14 Atributo numérico anonimizado (Posiblemente código postal) Numérico 0 - 2,000 N/A No
A15 Atributo numérico anonimizado (Posiblemente ingresos) Numérico 0 - 51,100 N/A No
A1 Atributo binario anonimizado (Original: a, b) Binario 0: a, 1: b N/A No
A9 Atributo binario anonimizado (Original: f, t) Binario 0: f, 1: t N/A No
A10 Atributo binario anonimizado (Original: f, t) Binario 0: f, 1: t N/A No
A12 Atributo binario anonimizado (Original: f, t) Binario 0: f, 1: t N/A No
target Estado de aprobación de crédito (objetivo) Binario 0: Rechazado, 1: Aprobado N/A
16 Variables totales
7 Numéricas
4 Categóricas
5 Binarias
Objetivo: Aprobación de Crédito (target)
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 Aprobación de Crédito (Japanese Credit Screening). Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de aprobación crediticia.

A1 Binario
Código Significado (Original)
0a (Valor anonimizado)
1b (Valor anonimizado)
🔒

Nota: Variable anonimizada. Los valores "a" y "b" corresponden a alguna característica binaria del solicitante.

A4 Categórica
Código Significado (Original)
0l
1u
2y
3t
A5 Categórica
Código Significado (Original)
0g
1gg
2p
A6 Numérica (Categórica)

Atributo categórico con alta cardinalidad

0 aa
1 c
2 cc
3 d
4 e
5 ff
6 i
7 j
8 k
9 m
10 q
11 r
12 w
13 x
⚠️

Alta cardinalidad: 14 categorías anonimizadas.

A7 Categórica

Atributo categórico anonimizado

0 bb
1 dd
2 ff
3 h
4 j
5 n
6 o
7 v
8 z
A9, A10, A12 Binario
Código Significado (Original)
0f (False)
1t (True)
🔲

Variables booleanas: A9, A10 y A12 son variables binarias que representan características del solicitante.

A13 Categórica
Código Significado (Original)
0g
1p
2s
target 🎯 Objetivo
Código Significado
0 - (Crédito Rechazado)
1 + (Crédito Aprobado)
🎯

Variable Objetivo: Predice la aprobación o rechazo de solicitudes de tarjeta de crédito.

📊
Variables categóricas: 4
  • A4 (4 categorías: l, u, y, t)
  • A5 (3 categorías: g, gg, p)
  • A7 (9 categorías: bb, dd, ff, h, j, n, o, v, z)
  • A13 (3 categorías: g, p, s)
🎯
Variables binarias: 5
  • A1 (a, b)
  • A9 (f, t)
  • A10 (f, t)
  • A12 (f, t)
  • 🎯 target (Objetivo - Aprobación de crédito)
📈
Variables numéricas: 7
  • A2 (Posiblemente edad)
  • A3 (Posiblemente antigüedad)
  • A6 (Categórica codificada numéricamente - 14 niveles)
  • A8, A11, A14, A15
⚠️
Recomendaciones de Análisis:
  • Datos anonimizados: Las variables no tienen significado semántico directo
  • A6: Variable con alta cardinalidad (14 categorías) - considerar reducción dimensional
  • Variables binarias: A9, A10, A12 son booleanas y pueden ser discriminantes
  • Valores perdidos: 37 instancias eliminadas para asegurar un dataset limpio
  • Target: Variable objetivo anonimizada (A16 en el dataset original)
  • Dataset histórico: Referencia utilizada en trabajos pioneros de C4.5 de Quinlan

🔬 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

  • A2 < 20 → A8 ≤ 4 (Joven → pocos años trabajando)
  • A8 > 20 → A2 > 36 (Muchos años trabajando → edad madura)
  • A4 == 1 (desempleado) → A5 = 0
  • A4 == 2 (empleado) → A5 = 2
  • A4 == 0 (estudiante) → A5 = 1
  • A9 == 0 → target = 0 (Sin historial crediticio → rechazo)
  • A9 == 0 → A11 ≤ 5 (Sin historial → score bajo)
  • A10 == 0 → A11 = 0 (Sin empleo → score 0)
  • A11 > 0 → A10 = 1 (Score >0 → tiene empleo)
  • A2 < 18 → target = 0 (Menor de edad → rechazo)
  • A15 > 5000 → target = 1 (Saldo alto → aprobación)
  • A15 == 0 → A3 < 15 (Sin saldo → deuda limitada)
  • A12 == 1 → A2 ≥ 17 (Tiene licencia → edad mínima)
  • A15 > 1000 → target = 1 (Saldo positivo → aprobación)
  • A9 == 0 → target = 0 (Sin historial → rechazo)
  • A3 > 25 → A2 > 30 (Deuda alta → edad madura)

⚙️ 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(128, 128)
discriminator_dim(128, 128)
embedding_dim128
l2scale1e-05

📊 Hiperparámetros TVAE

epochs 400
batch_size 50
embedding_dim 64
compress_dims (64, 64)
decompress_dims (64, 64)
l2scale 1e-5
loss_factor 2

🔐 Reproducibilidad

Random Seed42
Python3.12.12

Librerías utilizadas:

  • pandas: 2.3.3
  • numpy: 2.4.4
  • scikit-learn: 1.7.2
  • imbalanced-learn: 0.14.0
  • ctgan: 0.11.1
  • torch: 2.9.0
  • sdv: 1.28.0
  • scipy: 1.16.3
  • matplotlib: 3.10.9
📝

Para reproducir exactamente este conjunto de datos, ejecute el script de generación con la semilla aleatoria 42. Los resultados pueden variar ligeramente según la versión de las librerías.

📊 Conjuntos de Datos Derivados

El conjunto original ha sido sometido a un proceso de balanceo de clases y generación sintética para mejorar la representación de clases minoritarias. Nota: se ha empleado un conjunto de validación para evaluar el índice de fidelidad. Se han generado tres familias de conjuntos:

  • 📊 Balanceados: Conjuntos creados mediante técnicas de sobremuestreo
  • 🔮 Sintéticos Puros: Conjuntos generados completamente con modelos generativos
  • ✨ Aumentados: Combinación del conjunto original + datos sintéticos

El mejor conjunto de cada etapa fue seleccionado mediante el índice TabDSFidelity.

📊 Conjuntos Balanceados 8 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
Random Oversampling - - - - - - - - - - - - - -
Smote - - - - - - - - - - - - - -
Borderline SMOTE - - - - - - - - - - - - - -
ADASYN - - - - - - - - - - - - - -
SMOTE RSB* Adaptado - - - - - - - - - - - - - -
SMOTE RSB* Adaptado + Reglas - - - - - - - - - - - - - -
OOF PSO para Balanceo - - - - - - - - - - - - - -
OOF PSO para Balanceo + Reglas - - - - - - - - - - - - - -
Mejor seleccionado: Sin datos disponibles (TabDSFidelity: -, AUC: -, F1: -, MIA: -). Nota: Ratio <= 1.5 = Conjunto Balanceado.

🔮 Conjuntos Sintéticos Puros 10 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
SMOTE RSB* + Ruido Gaussiano 1.207 9978 1.000 1.000 1.000 9.928 0.369 0.463 0.049 0.971 81.221 0.567 0 0.409 🏆
SMOTE RSB* + Ruido Gaussiano + Reglas 1.488 9978 0.960 0.969 0.969 8.926 0.369 0.447 0.049 0.974 222.195 0.567 0 0.491
CTGAN 1.760 10000 0.853 0.740 0.748 3.295 0.355 0.000 0.061 0.937 320.454 0.071 0 0.467
CTGAN + Reglas del Dominio 1.765 10000 0.902 0.781 0.786 4.534 0.355 0.000 0.061 0.944 462.761 0.060 0 0.512
TVAE 1.125 10000 0.925 0.855 0.855 5.566 0.543 0.140 0.040 0.944 184.093 0.029 0 0.465
TVAE + Reglas del Dominio 1.252 10000 0.920 0.848 0.847 5.383 0.543 0.140 0.040 0.943 325.856 0.028 0 0.454
OOF PSO para Aumento 1 10000 0.888 0.710 0.718 0.736 0.669 0.000 0.548 0.665 110.207 0.225 0 0.452
OOF PSO para Aumento + Reglas 1.571 10000 0.885 0.840 0.840 2.258 0.663 0.000 0.730 0.679 247.050 0.249 0 0.427
SMOTE RSB* Refinado 1.001 9958 1.000 1.000 1.000 9.372 0.378 0.221 0.048 0.969 79.588 0.504 0 0.461
SMOTE RSB* Refinado + Reglas 1.204 9958 0.959 0.969 0.969 8.665 0.377 0.346 0.047 0.972 223.220 0.505 0 0.504
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano (TabDSFidelity: 9.928, AUC: 1.000, F1: 1.000, MIA: 0.409). 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.207 10631 1.000 1.000 1.000 3.849 0.353 0.514 0.045 0.972 153.863 0.566 0 0.416 🏆
SMOTE RSB* + Ruido Gaussiano + Reglas 1.468 10631 1.000 1.000 1.000 3.831 0.352 0.498 0.045 0.975 294.919 0.566 0 0.485
CTGAN 1.718 10653 1.000 1.000 1.000 2.860 0.332 0.001 0.035 0.941 393.862 0.064 134 0.477
CTGAN + Reglas del Dominio 1.722 10653 1.000 1.000 1.000 2.878 0.333 0.001 0.035 0.947 535.352 0.054 134 0.526
TVAE 1.129 10653 1.000 1.000 1.000 2.599 0.505 0.158 0.011 0.949 257.243 0.027 134 0.461
TVAE + Reglas del Dominio 1.249 10653 1.000 1.000 1.000 2.594 0.505 0.158 0.011 0.948 398.870 0.026 134 0.463
OOF PSO para Aumento 1.012 10653 1.000 1.000 1.000 0.265 0.612 0.000 0.403 0.681 180.625 0.211 134 0.434
OOF PSO para Aumento + Reglas 1.546 10653 1.000 1.000 1.000 0.076 0.604 0.000 0.544 0.694 318.264 0.234 134 0.452
SMOTE RSB* Refinado 1.012 10611 1.000 1.000 1.000 3.326 0.361 0.262 0.044 0.971 154.155 0.505 0 0.458
SMOTE RSB* Refinado + Reglas 1.204 10611 1.000 1.000 1.000 3.572 0.360 0.382 0.044 0.973 294.703 0.505 0 0.518
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano (TabDSFidelity: 3.849, AUC: 1.000, F1: 1.000, MIA: 0.416). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_47
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
----
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
SMOTE RSB* + Ruido Gaussiano
⭐ Mejor Aumentado
SMOTE RSB* + Ruido Gaussiano
Conjunto Sintético Final
Seleccionado por calidad

📊 Guía de Métricas de Evaluación

Para interpretar correctamente los resultados de los conjuntos de datos generados, es fundamental comprender qué mide cada métrica y cómo se relacionan entre sí. A continuación, se detalla cada una de las métricas utilizadas en la evaluación:

🎯 Métricas de Rendimiento Predictivo

AUC-ROC (0.5 - 1.0)

¿Qué mide? Capacidad del modelo para distinguir entre clases (Ej: mortalidad vs supervivencia).

Interpretación:

  • 0.5: Sin capacidad predictiva (aleatorio)
  • 0.7-0.8: Aceptable
  • 0.8-0.9: Excelente
  • >0.9: Sobresaliente

Ejemplo: AUC-ROC = 0.82 significa que hay un 82% de probabilidad de que el modelo clasifique correctamente un paciente fallecido frente a uno superviviente.

F1-Score (0 - 1.0)

¿Qué mide? Media armónica entre precisión y sensibilidad (recall).

Interpretación:

  • 0.7-0.8: Buen equilibrio entre precisión y sensibilidad
  • 0.8-0.9: Muy buen equilibrio
  • >0.9: Excelente equilibrio

Ejemplo: F1 = 0.76 indica que el modelo mantiene un buen balance entre identificar correctamente a los pacientes que fallecen (sensibilidad) y no etiquetar erróneamente a los que sobreviven (precisión).

Accuracy (0 - 1.0)

¿Qué mide? Proporción de predicciones correctas sobre el total.

Interpretación:

  • 0.7-0.8: Buen rendimiento general
  • 0.8-0.9: Muy buen rendimiento
  • >0.9: Excelente rendimiento

Ejemplo: Accuracy = 0.75 significa que el 75% de las predicciones del modelo son correctas.

⚠️ Nota: En conjuntos desbalanceados, esta métrica puede ser engañosa. Es mejor usar F1-Score o AUC-ROC.

🔬 Índice de Fidelidad del Conjunto

TabDSFidelity (0 - 10+)

¿Qué mide? Calidad global del conjunto sintético comparado con el original.

Interpretación:

  • < 3.0: Baja fidelidad (poca similitud con el original)
  • 3.0 - 6.0: Fidelidad moderada
  • 6.0 - 8.0: Alta fidelidad
  • > 8.0: Muy alta fidelidad (excelente representación)

Ejemplo: TabDSFidelity = 8.08 indica que el conjunto sintético mantiene una alta similitud con el original, preservando las relaciones y distribuciones de los datos reales, además de maximizar su eficacia predictiva.

💡 Importante: Este es el índice para seleccionar el mejor conjunto de datos sintéticos. Para este caso, el peso empleado para las métricas "AUC-ROC", "F1-Score" y "Accuracy" fue (2) y para el resto de las métricas fue (1).

📊 Métricas de Similitud de Distribuciones

Jensen-Shannon (Promedio) (0 - 1.0)

¿Qué mide? Similitud entre las distribuciones de variables numéricas del conjunto sintético y el original.

Interpretación:

  • Cerca de 0: Distribuciones muy similares (ideal)
  • 0.1 - 0.3: Diferencias moderadas
  • > 0.3: Diferencias significativas

Ejemplo: JS = 0.118 indica que las distribuciones de las variables numéricas (edad, presión arterial, etc.) son bastante similares a las del conjunto original.

📌 Nota: Es el promedio de la divergencia de Jensen-Shannon calculada para todas las variables numéricas.

Kolmogorov-Smirnov (p-valor promedio) (0 - 1.0)

¿Qué mide? Probabilidad estadística de que las muestras numéricas del conjunto sintético provengan de la misma distribución continua que el original.

Interpretación:

  • Cerca de 1.0: Altísima probabilidad de que sean la misma distribución (ideal)
  • > 0.05: Similitud aceptable (no se rechaza que sean iguales)
  • < 0.05: Diferencias estadísticamente significativas

Ejemplo: KS p-valor = 0.753 indica que hay evidencia fuerte a favor de que las distribuciones acumulativas de la variable sintética y la original son equivalentes.

📌 Nota: Se reporta el promedio de los p-valores obtenidos mediante la prueba de Kolmogorov-Smirnov de dos muestras para las variables numéricas.

Kullback-Leibler (Promedio) (0 - ∞)

¿Qué mide? Divergencia entre las distribuciones de variables categóricas del conjunto sintético y el original.

Interpretación:

  • Cerca de 0: Distribuciones muy similares (ideal)
  • 0.01 - 0.1: Diferencias pequeñas
  • > 0.1: Diferencias notables

Ejemplo: KL = 0.014 indica que la distribución de las variables categóricas (género, mortalidad) es muy similar a la del conjunto original.

📌 Nota: Es el promedio de la divergencia de Kullback-Leibler para todas las variables categóricas. A diferencia de JS y KS, esta métrica se aplica solo a variables categóricas.

📊 Métricas de Estructura

Similitud de Correlación (0 - 1.0)

¿Qué mide? Preservación de las relaciones entre variables del conjunto original.

Interpretación:

  • Cerca de 1.0: Las relaciones entre variables se mantienen casi idénticas
  • > 0.9: Excelente preservación de relaciones
  • 0.7 - 0.9: Buena preservación
  • < 0.7: Pérdida significativa de relaciones

Ejemplo: Correlación = 0.976 significa que las relaciones entre variables (ej. edad y mortalidad) se mantienen en un 97.6% respecto al conjunto original.

⏱️ Métricas de Rendimiento Temporal

Tiempo Total (s) (segundos)

¿Qué mide? Tiempo total de ejecución del proceso de generación del conjunto.

Interpretación:

  • < 100s: Generación rápida
  • 100-300s: Tiempo moderado
  • > 300s: Proceso lento (puede ser aceptable para conjuntos grandes)

Ejemplo: Tiempo total = 69.45s significa que el proceso completo de generación del conjunto balanceado tomó aproximadamente 1.16 minutos.

⏱️ Nota: Incluye el tiempo de generación sintética + cálculo de métricas.

🔒 Métricas de Privacidad

Estas métricas evalúan el riesgo de exposición de información sensible y la capacidad de un atacante para inferir datos de los pacientes a partir del conjunto de datos sintéticos.

Distancia al Registro Más Cercano (≥ 0)

¿Qué mide? La distancia promedio entre cada registro sintético y su registro más cercano en el conjunto de datos original.

Interpretación:

  • Cerca de 0: Los datos sintéticos son muy similares a los originales → ⚠️ ALTO RIESGO de privacidad
  • 0.01 - 0.05: Similaridad moderada → Riesgo moderado
  • > 0.05: Buena separación de los datos originales → ✅ BAJO RIESGO de privacidad

Ejemplo: Distancia promedio = 0.015 en SMOTE indica que los registros sintéticos están relativamente cerca de los originales, lo que podría implicar un riesgo de privacidad moderado.

🔬

Metodología: Calculada utilizando la Distancia de Gower, la cual maneja internamente tipos de datos mixtos, normalizando las variables numéricas y penalizando diferencias categóricas para devolver un índice estandarizado entre 0 y 1.

💡

Recomendación: Valores < 0.01 deben ser evaluados con precaución. Idealmente, buscar valores > 0.02 para garantizar la privacidad.

Copias Exactas (≥ 0)

¿Qué mide? Número de registros sintéticos que son copias idénticas de registros en el conjunto de datos original.

Interpretación:

  • 0: Ninguna copia exacta → ✅ SEGURO
  • 1 - 10: Pocas copias → Riesgo bajo
  • 11 - 50: Copias moderadas → ⚠️ RIESGO MODERADO
  • > 50: Muchas copias → 🔴 ALTO RIESGO de reidentificación

Ejemplo: SMOTE RSB* Refinado genera 76 copias exactas de 8817 registros (0.86%), lo que representa un riesgo de privacidad que debe ser evaluado.

⚠️

Importante: La presencia de copias exactas es uno de los indicadores más críticos de fuga de datos. Idealmente, este valor debe ser 0.

Ataque de Inferencia de Membresía (MIA) (0 - 1.0)

¿Qué mide? Tasa de éxito (medida en AUC-ROC) de un atacante para determinar si un registro específico pertenece al conjunto de datos original.

Interpretación:

  • 0.5: Aleatorio (ideal) → ✅ PRIVACIDAD ÓPTIMA
  • 0.5 - 0.55: Riesgo bajo
  • 0.55 - 0.6: Riesgo moderado → ⚠️ PRIVACIDAD CUESTIONABLE
  • > 0.6: Riesgo alto → 🔴 PRIVACIDAD COMPROMETIDA

Ejemplo: MIA = 0.553 significa que el atacante tiene un éxito ligeramente superior al 50% aleatorio, lo que indica un riesgo de privacidad bajo/moderado.

🎯

Objetivo: Buscar valores lo más cercanos a 0.5. Valores > 0.6 indican que el conjunto sintético no protege adecuadamente la privacidad.

📝 Resumen Rápido para Selección

🏆
Para seleccionar el mejor conjunto:
  • Priorizar TabDSFidelity más alto
  • Buscar AUC-ROC y F1 altos
  • Valores de divergencia JS y KL cercanos a 0
  • P-valor de KS lo más cercano a 1.0 posible (>0.05)
  • Correlación > 0.9
⚖️
Balance entre calidad y tiempo:
  • Un TabDSFidelity > 8.0 indica excelente calidad
  • Tiempos de generación < 200s son aceptables
  • La Correlación > 0.95 asegura buena preservación de relaciones
🔒
Para garantizar la privacidad:
  • MIA lo más cercano a 0.5 (ideal)
  • Copias exactas = 0 (ideal) o lo más bajo posible
  • Distancia promedio > 0.02 para buena separación
  • Evaluar balance entre calidad (TabDSFidelity) y privacidad (MIA)

📥 Descargar conjuntos y código Python

Formatos incluidos: CSV.

📚 Cómo citar este conjunto

Díaz Bastida, M., Pérez Vázquez, R. A., & Bello Pérez, R. (2026). High-Fidelity Synthetic Dataset for Credit Card Application Approval (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32946572.v1