CD_31 Original + Derivados

CD_31: Credit Card Fraud Detection (Europe)

Dataset financiero para la detección de fraude en tiempo real (Class). Se caracteriza por un desbalance de clases extremo (solo el 0.172% son fraudes), constituyendo la prueba definitiva para las técnicas de sobremuestreo. Por privacidad, 28 variables son componentes principales (PCA) continuos y ortogonales (V1-V28) de significado abstracto, acompañadas de las variables originales Time y Amount.

📈 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 1.00 0.99 0.99 200
Clase 1 0.00 0.00 0.00 0
Accuracy 0.99
Macro Avg 0.50 0.49 0.50 200
Weighted Avg 1.00 0.99 0.99 200
AUC-ROC: 0.00
F1-Score (weighted): 0.99
Accuracy: 0.99
➡️ Mejora
— AUC sin cambio ⬆ +0.01 F1 ⬆ +0.01 Acc
🏆 MEJOR RENDIMIENTO

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 1.00 1.00 1.00 200
Clase 1 0.00 0.00 0.00 0
Accuracy 1.00 ⬆ +0.01
Macro Avg 1.00 ⬆ +0.50 1.00 ⬆ +0.51 1.00 ⬆ +0.50 200
Weighted Avg 1.00 1.00 ⬆ +0.01 1.00 ⬆ +0.01 200
AUC-ROC: 0.00 — Sin cambio
F1-Score (weighted): 1.00 ⬆ +0.01
Accuracy: 1.00 ⬆ +0.01

📊 Resumen de Mejoras

📌
Nota sobre el conjunto de datos

⚠️ Conjunto de datos sin clase minoritaria: El conjunto de datos utilizado no contiene instancias de la Clase 1 (soporte = 0). Por lo tanto, las métricas de precisión, recall y F1-Score para esta clase son 0.00 en ambos conjuntos (Original y Sintético). El AUC-ROC también es 0.00 debido a la ausencia de la clase positiva.

📚 Fuente Original del Conjunto

Credit Card Fraud Detection Dataset

v1.0
Worldline & Machine Learning Group (ULB - Université Libre de Bruxelles)
Publicado: Septiembre 2013

📄 Resumen (Abstract)

El conjunto de datos de Detección de Fraude en Tarjetas de Crédito contiene transacciones realizadas con tarjetas de crédito en septiembre de 2013 por titulares de tarjetas europeos. El dataset presenta transacciones ocurridas en dos días, con 492 fraudes de un total de 284,807 transacciones. El conjunto está altamente desbalanceado, donde la clase positiva (fraude) representa solo el 0.172% de todas las transacciones. El objetivo es desarrollar modelos que reconozcan transacciones fraudulentas para que los clientes no sean cobrados por artículos que no compraron.

🔬 Contexto y Motivación

La detección de fraude en tarjetas de crédito es un problema crítico en la industria financiera. Las compañías de tarjetas de crédito necesitan identificar transacciones fraudulentas para:

  • Proteger a los clientes de cargos no autorizados
  • Reducir pérdidas financieras por fraudes
  • Mantener la confianza en el sistema de pagos
  • Cumplir con regulaciones y requisitos de seguridad

El dataset fue recolectado y analizado durante una colaboración de investigación entre Worldline y el Machine Learning Group (MLG) de la Université Libre de Bruxelles (ULB) en el ámbito del big data mining y la detección de fraudes.

⚠️ Importante: Desbalanceo Extremo

El dataset es extremadamente desbalanceado:

  • Fraudes (Clase 1): 492 transacciones (0.172%)
  • No fraudes (Clase 0): 284,315 transacciones (99.828%)

⚠️ La precisión de la matriz de confusión no es significativa para clasificación desbalanceada. Se recomienda medir el rendimiento utilizando el Área Bajo la Curva de Precisión-Recall (AUPRC).

📊 Descripción de Datos

El dataset contiene 284,807 instancias con 30 atributos (28 variables PCA + Time + Amount + Class). Las características son numéricas y son el resultado de una transformación PCA para proteger la confidencialidad de los datos originales.

📋 Variables del Dataset
Variable Tipo Descripción Notas
A. Componentes Principales (PCA)
V1 - V28 Numérico Componentes principales obtenidos mediante PCA Sin significado semántico por confidencialidad
B. Variables sin Transformación PCA
Time Numérico Segundos transcurridos entre cada transacción y la primera transacción del dataset -
Amount Numérico Monto de la transacción Puede utilizarse para aprendizaje sensible a costos dependiente del ejemplo
C. Variable Objetivo
Class Binaria (Target) Indica si la transacción es fraudulenta 1 = Fraude
0 = No fraude
🔒 Confidencialidad

Debido a problemas de confidencialidad, no se pueden proporcionar las características originales ni información de fondo adicional sobre los datos. Las características V1 a V28 son los componentes principales obtenidos mediante PCA, lo que preserva la estructura de los datos mientras protege la información sensible.

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria extremadamente desbalanceada
  • Dimensión: Multivariante
  • Tipo de características: Numéricas (todas)
  • Valores faltantes: No
  • Área de aplicación: Finanzas, Seguridad, Detección de fraudes
  • Razón de desbalanceo: 0.172% (clase positiva - fraudes)
  • Transformación: PCA aplicado para anonimización

📖 Publicaciones y Referencias Académicas

Este dataset ha sido ampliamente utilizado en la investigación académica. Se recomienda citar los siguientes trabajos:

Dal Pozzolo, A., Caelen, O., Johnson, R. A., & Bontempi, G. (2015). Calibrating Probability with Undersampling for Unbalanced Classification. IEEE Symposium on Computational Intelligence and Data Mining (CIDM).

Dal Pozzolo, A., Caelen, O., Le Borgne, Y. A., Waterschoot, S., & Bontempi, G. (2014). Learned lessons in credit card fraud detection from a practitioner perspective. Expert Systems with Applications, 41(10), 4915-4928.

Dal Pozzolo, A., Boracchi, G., Caelen, O., Alippi, C., & Bontempi, G. (2018). Credit card fraud detection: a realistic modeling and a novel learning strategy. IEEE Transactions on Neural Networks and Learning Systems, 29(8), 3784-3797.

⚖️ Ética y Privacidad

El conjunto de datos ha sido anonimizado mediante PCA para proteger la confidencialidad de los titulares de tarjetas y la información de las transacciones. Las características originales no están disponibles por razones de confidencialidad. Restricción de confidencialidad: En cumplimiento de los protocolos de privacidad, 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 permita la reidentificación de transacciones o titulares.

📋 Notas de Uso

Este conjunto de datos presenta desafíos únicos debido al desbalanceo extremo y la anonimización de características. Se recomienda:

  • No utilizar la precisión de la matriz de confusión como métrica principal debido al desbalanceo extremo
  • Utilizar Área Bajo la Curva de Precisión-Recall (AUPRC) como métrica de evaluación principal
  • También se recomiendan: F1-Score, Recall (sensibilidad), Precision y ROC-AUC
  • Aplicar técnicas de balanceo de clases:
    • Submuestreo de la clase mayoritaria (random undersampling)
    • Sobremuestreo de la clase minoritaria (SMOTE, ADASYN)
    • Métodos híbridos (SMOTE + Tomek Links)
    • Cost-sensitive learning (ponderación de clases)
  • Las características V1-V28 son componentes principales sin significado semántico
  • La variable Time puede utilizarse para análisis temporal o ser excluida si no es relevante
  • La variable Amount puede utilizarse para aprendizaje sensible a costos (transacciones de mayor monto pueden tener mayor costo de clasificación errónea)
  • Estandarizar Time y Amount ya que las variables PCA ya están escaladas
  • Utilizar validación cruzada estratificada (manteniendo la proporción de fraudes)
  • Considerar técnicas de detección de anomalías (One-Class SVM, Isolation Forest) como enfoque alternativo

💡 Importancia en la Industria Financiera

El fraude con tarjetas de crédito es un problema global que causa pérdidas significativas. Según estudios de la industria:

  • Las pérdidas globales por fraude con tarjetas de pago se estiman en miles de millones de dólares anualmente
  • El fraude en transacciones sin presencia de tarjeta (CNP) es la categoría de fraude de más rápido crecimiento
  • Los sistemas de detección de fraude deben tener alta sensibilidad para detectar fraudes y alta especificidad para no bloquear transacciones legítimas
  • El costo de un falso positivo (bloquear una transacción legítima) puede incluir la pérdida de un cliente
  • El costo de un falso negativo (no detectar un fraude) es la pérdida financiera directa

Este dataset ha sido fundamental para el desarrollo de modelos de aprendizaje automático para la detección de fraudes, contribuyendo a la investigación en clasificación desbalanceada, aprendizaje sensible a costos y detección de anomalías.

📖 Cómo citar la fuente original

Dal Pozzolo, A., Caelen, O., Johnson, R. A., & Bontempi, G. (2015). Calibrating Probability with Undersampling for Unbalanced Classification. In IEEE Symposium on Computational Intelligence and Data Mining (CIDM), 2015. Worldline & Machine Learning Group (ULB). Credit Card Fraud Detection Dataset. https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud

📚 Referencias Adicionales

  • Dal Pozzolo, A., Caelen, O., Le Borgne, Y. A., Waterschoot, S., & Bontempi, G. (2014). Learned lessons in credit card fraud detection from a practitioner perspective. Expert Systems with Applications, 41(10), 4915-4928.
  • Dal Pozzolo, A., Boracchi, G., Caelen, O., Alippi, C., & Bontempi, G. (2018). Credit card fraud detection: a realistic modeling and a novel learning strategy. IEEE Transactions on Neural Networks and Learning Systems, 29(8), 3784-3797.
  • Carcillo, F., Dal Pozzolo, A., Le Borgne, Y. A., Caelen, O., Mazzer, Y., & Bontempi, G. (2018). Scarff: a scalable framework for streaming credit card fraud detection with Spark. Information Fusion, 41, 182-194.
  • Le Borgne, Y. A., & Bontempi, G. (2021). Reproducible Machine Learning for Credit Card Fraud Detection - Practical Handbook. https://fraud-detection-handbook.github.io/fraud-detection-handbook/
  • Kaggle - Credit Card Fraud Detection Dataset. https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud
  • ULB Machine Learning Group. http://mlg.ulb.ac.be

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (Credit Card Fraud Detection)

  • Verificación y garantía de integridad de datos:
    • Confirmación de la ausencia total de valores perdidos en el dataset original, tal como lo documenta la fuente.
    • Implementación de imputación con mediana como medida preventiva en caso de detección de valores nulos.
    • Garantía de integridad total del conjunto de datos para modelado directo.
  • Estandarización de tipos de datos:
    • Conversión forzada de la variable objetivo Class a tipo entero (int) para eliminar decimales espurios (ej. 0.0 → 0, 1.0 → 1).
    • Preservación de todas las variables en sus tipos numéricos originales (continuos y enteros).
  • Generación de documentación y leyenda:
    • Creación del archivo leyenda_creditcard.txt con la semántica completa de la variable objetivo y las variables originales.
    • Documentación detallada de la variable Class (0 = Transacción Legítima, 1 = Fraude).
    • Descripción de variables originales: Time (segundos desde primera transacción) y Amount (importe de la transacción).
    • Nota sobre las 28 variables transformadas con PCA (V1 a V28): variables numéricas continuas centradas y no correlacionadas linealmente, sin interpretación semántica directa por razones de confidencialidad.
    • Contextualización del dataset: transacciones de tarjetas de crédito europeas (Septiembre 2013).
  • Optimización y formato de salida:
    • Dataset completamente numérico (31 columnas: 30 predictoras + 1 objetivo).
    • Preservación de las 284,807 instancias (transacciones) sin eliminación de filas.
    • Guardado en formato CSV con separador punto y coma (;) para mantener consistencia con el resto de datasets procesados.
  • Control de calidad y verificaciones:
    • Confirmación de calidad de datos: ausencia de valores perdidos según documentación original.
    • Vista previa del dataset resultante para validación visual.
    • Verificación de la distribución de clases para confirmar el desbalance extremo.

📊 Resultado: Dataset de 284,807 transacciones con 30 variables predictoras (2 originales + 28 transformadas con PCA) y 1 variable objetivo binaria (Class). Desbalance extremo (~99.83% transacciones legítimas / ~0.17% fraudes) — escenario crítico para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de detección de fraude financiero, donde la identificación de eventos raros es fundamental y las variables han sido anonimizadas mediante PCA para proteger la privacidad de los usuarios.

💳 Fuente: Credit Card Fraud Detection Dataset (Kaggle) - Transacciones de tarjetas de crédito europeas (Septiembre 2013).

🔒 Variables transformadas: V1 a V28 son componentes principales obtenidos mediante PCA, anonimizados para proteger información confidencial de los titulares de tarjetas.

⏱️ Variables originales: Time (segundos desde primera transacción) y Amount (importe) — útiles para modelos sensibles al costo y análisis de patrones temporales.

📁 Leyenda disponible: Archivo leyenda_creditcard.txt con descripción completa de la variable objetivo, variables originales y contexto del dataset.

🎯 Variable objetivo: Class (1 = Transacción fraudulenta, 0 = Transacción legítima).

⚠️ Desbalance extremo: Solo 0.172% de transacciones son fraudulentas — escenario ideal para validación de técnicas de sobremuestreo y generación de datos sintéticos en problemas de detección de eventos raros.

📋 Diccionario de Datos Detallado

Variable Descripción Clínica / Financiera Tipo Rango / Categorías Unidad ¿Objetivo?
Time Tiempo transcurrido desde la primera transacción del dataset Numérico 205 - 171,924 segundos No
V1 Componente principal 1 (PCA - Anónimo) Numérico -11.74 - 2.31 N/A No
V2 Componente principal 2 (PCA - Anónimo) Numérico -7.79 - 7.57 N/A No
V3 Componente principal 3 (PCA - Anónimo) Numérico -6.95 - 3.36 N/A No
V4 Componente principal 4 (PCA - Anónimo) Numérico -4.40 - 4.81 N/A No
V5 Componente principal 5 (PCA - Anónimo) Numérico -7.43 - 7.04 N/A No
V6 Componente principal 6 (PCA - Anónimo) Numérico -5.08 - 5.28 N/A No
V7 Componente principal 7 (PCA - Anónimo) Numérico -5.59 - 5.43 N/A No
V8 Componente principal 8 (PCA - Anónimo) Numérico -12.07 - 4.30 N/A No
V9 Componente principal 9 (PCA - Anónimo) Numérico -2.91 - 3.82 N/A No
V10 Componente principal 10 (PCA - Anónimo) Numérico -5.25 - 4.77 N/A No
V11 Componente principal 11 (PCA - Anónimo) Numérico -2.38 - 4.60 N/A No
V12 Componente principal 12 (PCA - Anónimo) Numérico -5.03 - 2.06 N/A No
V13 Componente principal 13 (PCA - Anónimo) Numérico -3.30 - 3.52 N/A No
V14 Componente principal 14 (PCA - Anónimo) Numérico -6.42 - 3.07 N/A No
V15 Componente principal 15 (PCA - Anónimo) Numérico -2.54 - 2.39 N/A No
V16 Componente principal 16 (PCA - Anónimo) Numérico -2.78 - 2.18 N/A No
V17 Componente principal 17 (PCA - Anónimo) Numérico -4.61 - 4.13 N/A No
V18 Componente principal 18 (PCA - Anónimo) Numérico -2.73 - 2.71 N/A No
V19 Componente principal 19 (PCA - Anónimo) Numérico -2.91 - 3.10 N/A No
V20 Componente principal 20 (PCA - Anónimo) Numérico -4.50 - 2.93 N/A No
V21 Componente principal 21 (PCA - Anónimo) Numérico -6.27 - 8.83 N/A No
V22 Componente principal 22 (PCA - Anónimo) Numérico -2.58 - 2.00 N/A No
V23 Componente principal 23 (PCA - Anónimo) Numérico -1.85 - 2.44 N/A No
V24 Componente principal 24 (PCA - Anónimo) Numérico -2.28 - 1.24 N/A No
V25 Componente principal 25 (PCA - Anónimo) Numérico -2.56 - 1.75 N/A No
V26 Componente principal 26 (PCA - Anónimo) Numérico -1.18 - 2.47 N/A No
V27 Componente principal 27 (PCA - Anónimo) Numérico -3.88 - 2.09 N/A No
V28 Componente principal 28 (PCA - Anónimo) Numérico -1.41 - 2.76 N/A No
Amount Importe de la transacción Numérico 0 - 1,383.76 moneda No
Class Indicador de fraude en la transacción (objetivo) Binario 0: Legítima, 1: Fraude N/A
31 Variables totales
30 Numéricas
0 Categóricas
1 Binarias
Objetivo: Fraude (Class)
Datos ausentes: 0%

📈 Distribución de la variable objetivo en el conjunto original

📖 Leyenda de Variables Categóricas

Esta sección detalla los códigos y significados de las variables categóricas y binarias presentes en el conjunto de datos de Detección de Fraude en Tarjetas de Crédito. Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados y la detección de transacciones fraudulentas.

Class 🎯 Objetivo
Código Significado
0 Transacción Legítima - Operación normal. Clase mayoritaria (>99.8%)
1 Fraude - Transacción fraudulenta. Clase minoritaria (0.172%)
🎯

Variable Objetivo: El modelo debe identificar transacciones fraudulentas en tiempo real.

Variables Binarias Binario

Formato: 0 = Legítimo, 1 = Fraude

Class 🎯 Variable Objetivo: Fraude en transacción (0: Legítima, 1: Fraude)
ℹ️

Nota: Única variable binaria en el dataset.

📊
Variables binarias: 1
  • 🎯 Class (Objetivo - Fraude)
📈
Variables numéricas: 30
  • 28 variables PCA (V1-V28)
  • 1 variable temporal (Time)
  • 1 variable de importe (Amount)
⚠️
Recomendaciones para Modelado:
  • Métrica principal: AUC-PR (no Accuracy, debido al desbalance extremo)
  • Balanceo: SMOTE, SMOTE-ENN, o SMOTE-Tomek son recomendados
  • Escalado: Amount debe ser escalado (StandardScaler o RobustScaler)
  • Time: Puede contener patrones temporales (fraudes en horas específicas)
  • Cost-sensitive learning: Penalizar más los falsos negativos (fraudes no detectados)
  • Threshold tuning: Ajustar umbral de decisión para balancear sensibilidad/especificidad
  • Cross-validation: Usar StratifiedKFold para mantener proporción de fraudes

🔬 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

  • V17 < -3.5 → Class = 1 (Fraude)
  • V14 < -6.0 → Class = 1 (Fraude)
  • V12 < -6.0 → Class = 1 (Fraude)
  • Amount < 2.0 → Class = 1 (Fraude)
  • Amount > 15000 → Class = 1 (Fraude)
  • Class == 0 → V17 > -2.5
  • Class == 0 → V14 > -5.0
  • Class == 0 → Amount < 10000

⚙️ 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 1196 0.000 1.000 1.000 5.656 0.453 0.000 0.671 0.657 52.351 0 1196 0.472
Smote 1 1196 0.000 1.000 1.000 5.723 0.454 0.000 0.671 0.726 55.666 0.010 1000 0.460
Borderline SMOTE 1 1196 0.000 1.000 1.000 5.723 0.454 0.000 0.671 0.726 53.747 0.010 1000 0.460
ADASYN 1.003 1194 0.000 1.000 1.000 5.639 0.454 0.000 0.669 0.693 56.137 0.013 926 0.460
SMOTE RSB* Adaptado 1 1196 0.000 1.000 1.000 5.523 0.463 0.007 0.671 0.811 55.099 0.051 600 0.466
SMOTE RSB* Adaptado + Reglas 1 1196 0.000 1.000 1.000 5.997 0.463 0.013 0.671 0.810 54.232 0.051 600 0.467 🏆
OOF PSO para Balanceo 1 1196 0.000 1.000 1.000 4.634 0.458 0.000 0.671 0.411 63.654 0.169 600 0.477
OOF PSO para Balanceo + Reglas 1.476 1196 0.000 0.904 0.825 0.531 0.458 0.000 0.883 0.362 63.326 0.219 485 0.597
Mejor seleccionado: SMOTE RSB* Adaptado + Reglas del Dominio (TabDSFidelity: 5.997, AUC: 0.000, F1: 1.000, MIA: 0.467). 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.006 7257 0.000 1.000 1.000 6.728 0.811 0.010 0.668 0.812 107.195 0.097 0 0.460 🏆
SMOTE RSB* + Ruido Gaussiano + Reglas 1.256 7257 0.000 0.898 0.815 4.260 0.811 0.010 0.790 0.815 305.723 0.097 0 0.442
CTGAN 1.010 10000 0.000 0.997 0.995 4.963 0.831 0.000 0.666 0.878 680.192 0.129 0 0.394
CTGAN + Reglas del Dominio 1.650 10000 0.000 0.889 0.800 2.350 0.831 0.000 0.951 0.882 955.312 0.133 0 0.380
TVAE 1.219 10000 0.000 1.000 1.000 4.714 0.831 0.000 0.577 0.802 409.453 0.084 0 0.475
TVAE + Reglas del Dominio 1.332 10000 0.000 0.898 0.815 2.258 0.831 0.000 0.823 0.808 678.689 0.087 0 0.603
OOF PSO para Aumento 1 10000 0.000 1.000 1.000 4.247 0.827 0.000 0.671 0.627 164.674 0.337 0 0.407
OOF PSO para Aumento + Reglas 21.371 10000 0.000 0.830 0.710 0.298 0.827 0.000 3.075 0.640 418.973 0.352 0 0.583
SMOTE RSB* Refinado 1 7000 0.000 1.000 1.000 5.401 0.832 0.008 0.671 0.785 91.948 0.064 0 0.500
SMOTE RSB* Refinado + Reglas 1.222 7000 0.000 0.901 0.820 3.004 0.832 0.008 0.775 0.788 268.321 0.066 0 0.620
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano (TabDSFidelity: 6.728, AUC: 0.000, F1: 1.000, MIA: 0.460). 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.005 8453 0.000 1.000 1.000 6.725 0.736 0.012 0.668 0.812 215.436 0.095 0 0.479 🏆
SMOTE RSB* + Ruido Gaussiano + Reglas 1.216 8453 0.000 0.942 0.890 2.734 0.736 0.012 0.773 0.814 412.248 0.095 0 0.425
CTGAN 1.009 11196 0.000 1.000 1.000 4.989 0.765 0.001 0.666 0.876 827.316 0.118 121 0.462
CTGAN + Reglas del Dominio 1.561 11196 0.000 0.997 0.995 4.825 0.765 0.001 0.917 0.879 1101.690 0.122 121 0.441
TVAE 1.193 11196 0.000 1.000 1.000 4.688 0.765 0.000 0.587 0.803 551.768 0.079 121 0.523
TVAE + Reglas del Dominio 1.291 11196 0.000 0.966 0.935 2.374 0.765 0.000 0.806 0.809 824.046 0.082 121 0.432
OOF PSO para Aumento 1 11196 0.000 1.000 1.000 4.166 0.760 0.000 0.671 0.637 300.780 0.306 121 0.428
OOF PSO para Aumento + Reglas 9.714 11196 0.000 1.000 1.000 4.213 0.760 0.000 2.342 0.648 553.445 0.319 121 0.414
SMOTE RSB* Refinado 1 8196 0.000 1.000 1.000 6.070 0.747 0.009 0.671 0.789 186.062 0.063 163 0.478
SMOTE RSB* Refinado + Reglas 1.187 8196 0.000 0.953 0.910 2.824 0.747 0.009 0.760 0.792 365.449 0.064 163 0.454
Mejor seleccionado: SMOTE RSB* + Ruido Gaussiano (TabDSFidelity: 6.725, AUC: 0.000, F1: 1.000, MIA: 0.479). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

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

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

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

🎯 Métricas de Rendimiento Predictivo

AUC-ROC (0.5 - 1.0)

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

Interpretación:

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

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

F1-Score (0 - 1.0)

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

Interpretación:

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

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

Accuracy (0 - 1.0)

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

Interpretación:

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

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

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

🔬 Índice de Fidelidad del Conjunto

TabDSFidelity (0 - 10+)

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

Interpretación:

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

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

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

📊 Métricas de Similitud de Distribuciones

Jensen-Shannon (Promedio) (0 - 1.0)

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

Interpretación:

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

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

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

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

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

Interpretación:

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

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

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

Kullback-Leibler (Promedio) (0 - ∞)

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

Interpretación:

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

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

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

📊 Métricas de Estructura

Similitud de Correlación (0 - 1.0)

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

Interpretación:

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

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

⏱️ Métricas de Rendimiento Temporal

Tiempo Total (s) (segundos)

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

Interpretación:

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

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

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

🔒 Métricas de Privacidad

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

Distancia al Registro Más Cercano (≥ 0)

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

Interpretación:

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

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

🔬

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

💡

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

Copias Exactas (≥ 0)

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

Interpretación:

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

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

⚠️

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

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

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

Interpretación:

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

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

🎯

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

📝 Resumen Rápido para Selección

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

📥 Descargar conjuntos y código Python

Formatos incluidos: CSV.

📚 Cómo citar este conjunto

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