Conjunto de datos de Recursos Humanos para la predicción del abandono laboral. Integra perfiles demográficos, métricas financieras y escalas ordinales de satisfacción.
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.88 | 0.95 | 0.91 | 247 |
| Clase 1 | 0.54 | 0.32 | 0.40 | 47 |
| Accuracy | 0.85 | |||
| Macro Avg | 0.71 | 0.63 | 0.66 | 294 |
| Weighted Avg | 0.82 | 0.85 | 0.83 | 294 |
| Clase | Precisión | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| Clase 0 | 0.89 | 0.85 | 0.87 | 247 |
| Clase 1 | 0.38 ⬇ -0.16 | 0.47 ⬆ +0.15 | 0.42 ⬆ +0.02 | 47 |
| Accuracy | 0.79 ⬇ -0.06 | |||
| Macro Avg | 0.64 ⬇ -0.07 | 0.66 ⬆ +0.03 | 0.65 ⬇ -0.01 | 294 |
| Weighted Avg | 0.81 ⬇ -0.01 | 0.79 ⬇ -0.06 | 0.80 ⬇ -0.03 | 294 |
El conjunto de datos de Rotación de Empleados (Employee Attrition) contiene información sobre empleados actuales y anteriores de una empresa. El objetivo es determinar qué factores mantienen a los empleados en la compañía y cuáles promueven la salida de otros. Como analista de Recursos Humanos (HR), se necesita identificar qué factores se pueden cambiar para prevenir la pérdida de talento valioso. Este dataset permite comprender cómo se relacionan los diferentes factores con la rotación de personal (attrition), permitiendo a la organización atraer y retener a los mejores talentos.
La rotación de empleados es uno de los desafíos más significativos para las organizaciones modernas. La clave del éxito en cualquier organización es atraer y retener talento de alto nivel. Este dataset, utilizado en un caso de uso de Watson Analytics, permite a los analistas de RRHH:
El dataset contiene información de empleados con variables que incluyen datos demográficos, nivel educativo, satisfacción laboral, involucramiento, evaluación de desempeño, satisfacción con relaciones y equilibrio vida-trabajo, entre otras. La variable objetivo es Attrition, que indica si el empleado sigue en la empresa o ha dejado la organización.
| Variable | Tipo | Descripción | Codificación / Escala |
|---|---|---|---|
| A. Datos Demográficos | |||
| Age | Numérica | Edad del empleado | años |
| Gender | Categórica | Género del empleado | Male / Female |
| MaritalStatus | Categórica | Estado civil | Single, Married, Divorced |
| Education | Ordinal | Nivel educativo | 1 = Below College 2 = College 3 = Bachelor 4 = Master 5 = Doctor |
| EducationField | Categórica | Campo de estudio | Life Sciences, Medical, Marketing, etc. |
| B. Datos Laborales | |||
| Department | Categórica | Departamento de trabajo | Sales, Research & Development, Human Resources |
| JobRole | Categórica | Rol del puesto | Manager, Executive, Sales Executive, etc. |
| JobLevel | Ordinal | Nivel del puesto | 1-5 |
| YearsAtCompany | Numérica | Años en la empresa | años |
| YearsInCurrentRole | Numérica | Años en el rol actual | años |
| YearsWithCurrManager | Numérica | Años con el gerente actual | años |
| C. Satisfacción y Compromiso | |||
| EnvironmentSatisfaction | Ordinal | Satisfacción con el ambiente laboral | 1 = Low 2 = Medium 3 = High 4 = Very High |
| JobInvolvement | Ordinal | Nivel de involucramiento en el trabajo | 1 = Low 2 = Medium 3 = High 4 = Very High |
| JobSatisfaction | Ordinal | Satisfacción con el trabajo | 1 = Low 2 = Medium 3 = High 4 = Very High |
| PerformanceRating | Ordinal | Evaluación de desempeño | 1 = Low 2 = Good 3 = Excellent 4 = Outstanding |
| RelationshipSatisfaction | Ordinal | Satisfacción con las relaciones laborales | 1 = Low 2 = Medium 3 = High 4 = Very High |
| WorkLifeBalance | Ordinal | Equilibrio entre vida personal y laboral | 1 = Bad 2 = Good 3 = Better 4 = Best |
| D. Otras Variables | |||
| MonthlyIncome | Numérica | Ingreso mensual | unidades monetarias |
| StockOptionLevel | Ordinal | Nivel de opciones de acciones | 0-3 |
| OverTime | Binaria | ¿Trabaja horas extras? | Yes / No |
| NumCompaniesWorked | Numérica | Número de empresas anteriores | - |
| E. Variable Objetivo | |||
| Attrition | Binaria (Target) | Indica si el empleado ha dejado la empresa | Yes = Dejó la empresa No = Permanece en la empresa |
| Variable | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| Education | Below College | College | Bachelor | Master |
| EnvironmentSatisfaction | Low | Medium | High | Very High |
| JobInvolvement | Low | Medium | High | Very High |
| JobSatisfaction | Low | Medium | High | Very High |
| PerformanceRating | Low | Good | Excellent | Outstanding |
| RelationshipSatisfaction | Low | Medium | High | Very High |
| WorkLifeBalance | Bad | Good | Better | Best |
Nota: Education tiene 5 niveles (incluye Doctor como 5).
Este conjunto de datos se basa en el caso de uso de Watson Analytics para Recursos Humanos:
El conjunto de datos contiene información demográfica y laboral que podría considerarse sensible. Los datos han sido anonimizados y no contienen información personal identificable como nombres, direcciones o números de identificació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, sin divulgación de información que permita la reidentificación de empleados.
Este conjunto de datos es ideal para análisis de retención de empleados y predicción de rotación. Se recomienda:
EnvironmentSatisfaction, JobSatisfaction, RelationshipSatisfaction) y WorkLifeBalance son ordinales (1-4)Education es ordinal con 5 niveles (1 = Below College a 5 = Doctor)PerformanceRating es ordinal con 4 niveles (1 = Low a 4 = Outstanding)Age, MonthlyIncome, YearsAtCompany, etc.)OverTime (horas extras) es frecuentemente un factor clave en la decisión de dejar la empresaLa predicción de rotación de empleados es una de las aplicaciones más valiosas del aprendizaje automático en el ámbito de Recursos Humanos. El costo de la rotación de empleados es significativo para las organizaciones:
Este dataset, basado en el caso de uso de Watson Analytics, ha sido fundamental para demostrar cómo el análisis predictivo puede ayudar a las organizaciones a identificar factores de retención y prevenir la pérdida de talento.
IBM HR Analytics Employee Attrition Dataset. Kaggle / IBM Watson Analytics. https://www.kaggle.com/datasets/pavansubhasht/ibm-hr-analytics-attrition-dataset
📊 Resultado: Dataset de 1,470 empleados de IBM con 30 variables predictoras (demográficas, laborales, de satisfacción y de compensación) y 1 variable objetivo binaria (Attrition). Desbalance moderado (~84% retención / ~16% deserción) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de gestión de talento y predicción de rotación laboral, donde factores como satisfacción, compensación, antigüedad y desarrollo profesional son determinantes.
🏢 Fuente: IBM HR Analytics Employee Attrition & Performance Dataset (IBM Watson Analytics).
📊 Variables de satisfacción (1-4): EnvironmentSatisfaction, JobInvolvement, JobSatisfaction, RelationshipSatisfaction, WorkLifeBalance — 1=Low/Bad, 4=Very High/Best.
💰 Variables de compensación: MonthlyIncome, DailyRate, HourlyRate, MonthlyRate, PercentSalaryHike.
⏱️ Variables de antigüedad: YearsAtCompany, TotalWorkingYears, NumCompaniesWorked, YearsInCurrentRole, YearsSinceLastPromotion, YearsWithCurrManager.
📁 Leyenda disponible: Archivo leyenda_hr_attrition.txt con mapeo completo de variables categóricas (10 variables), documentación de escalas ordinales y variables numéricas.
🎯 Variable objetivo: Attrition (1 = Empleado abandonó la empresa, 0 = Empleado permanece).
🧹 Limpieza aplicada: Eliminación de columnas constantes (EmployeeCount, Over18, StandardHours), eliminación de EmployeeNumber, codificación de target, codificación ordinal de BusinessTravel, Label Encoding de 10 variables categóricas.
| Variable | Descripción de RR.HH. | Tipo | Rango / Categorías | Unidad | ¿Objetivo? |
|---|---|---|---|---|---|
BusinessTravel |
Frecuencia de viajes de negocio | Categórico | 0: No viaja, 1: Raramente, 2: Frecuentemente | N/A | No |
Department |
Departamento de la empresa | Categórico | 0: HR, 1: R&D, 2: Sales | N/A | No |
Education |
Nivel educativo (ordinal) | Categórico | 1: Below College, 2: College, 3: Bachelor, 4: Master, 5: Doctor | N/A | No |
EducationField |
Campo de estudio del empleado | Categórico | 0: HR, 1: Life Sciences, 2: Marketing, 3: Medical, 4: Other, 5: Technical Degree | N/A | No |
EnvironmentSatisfaction |
Satisfacción con el entorno laboral | Categórico | 1: Bajo, 2: Medio, 3: Alto, 4: Muy Alto | N/A | No |
JobInvolvement |
Nivel de implicación en el trabajo | Categórico | 1: Bajo, 2: Medio, 3: Alto, 4: Muy Alto | N/A | No |
JobLevel |
Nivel del puesto (jerarquía) | Categórico | 1-5 (nivel jerárquico) | N/A | No |
JobRole |
Rol / Puesto específico | Categórico | 0-8 (ver leyenda) | N/A | No |
JobSatisfaction |
Satisfacción general con el trabajo | Categórico | 1: Bajo, 2: Medio, 3: Alto, 4: Muy Alto | N/A | No |
MaritalStatus |
Estado civil del empleado | Categórico | 0: Divorciado, 1: Casado, 2: Soltero | N/A | No |
PerformanceRating |
Calificación de desempeño | Categórico | 3: Excelente, 4: Sobresaliente | N/A | No |
RelationshipSatisfaction |
Satisfacción con relaciones laborales | Categórico | 1: Bajo, 2: Medio, 3: Alto, 4: Muy Alto | N/A | No |
StockOptionLevel |
Nivel de opciones sobre acciones | Categórico | 0: Sin opciones, 1: Nivel 1, 2: Nivel 2, 3: Nivel 3 | N/A | No |
TrainingTimesLastYear |
Capacitaciones recibidas en el último año | Categórico | 0-6 (número de capacitaciones) | N/A | No |
WorkLifeBalance |
Equilibrio entre vida y trabajo | Categórico | 1: Malo, 2: Regular, 3: Bueno, 4: Excelente | N/A | No |
Age |
Edad del empleado | Numérico | 18 - 60 | años | No |
DailyRate |
Tarifa diaria del empleado | Numérico | 103 - 1,495 | moneda | No |
DistanceFromHome |
Distancia desde el hogar al trabajo | Numérico | 1 - 29 | km | No |
HourlyRate |
Tarifa por hora del empleado | Numérico | 30 - 100 | moneda | No |
MonthlyIncome |
Ingreso mensual del empleado | Numérico | 1,009 - 19,973 | moneda | No |
MonthlyRate |
Tarifa mensual del empleado | Numérico | 2,094 - 26,999 | moneda | No |
NumCompaniesWorked |
Número de empresas donde trabajó | Numérico | 0 - 9 | empresas | No |
PercentSalaryHike |
Porcentaje de aumento salarial | Numérico | 11 - 25 | % | No |
TotalWorkingYears |
Años totales de experiencia laboral | Numérico | 0 - 40 | años | No |
YearsAtCompany |
Años en la empresa actual | Numérico | 0 - 36 | años | No |
YearsInCurrentRole |
Años en el puesto actual | Numérico | 0 - 17 | años | No |
YearsSinceLastPromotion |
Años desde la última promoción | Numérico | 0 - 15 | años | No |
YearsWithCurrManager |
Años con el jefe actual | Numérico | 0 - 17 | años | No |
Gender |
Género del empleado | Binario | 0: Femenino, 1: Masculino | N/A | No |
OverTime |
Realiza horas extras | Binario | 0: No, 1: Sí | N/A | No |
Attrition |
Deserción del empleado (objetivo) | Binario | 0: Permanece, 1: Abandona | 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 Deserción de Empleados de IBM HR. Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de retención de talento.
BusinessTravel
Categórica (Ordinal)
| Código | Significado | Riesgo Deserción |
|---|---|---|
| 0 | Non-Travel (No viaja) | ✓ Bajo |
| 1 | Travel_Rarely (Viaja raramente) | ⚠ Moderado |
| 2 | Travel_Frequently (Viaja frecuentemente) | ✗ Alto |
Factor de riesgo: Los empleados que viajan frecuentemente tienen mayor probabilidad de deserción.
Department
Categórica (Nominal)
| Código | Significado |
|---|---|
| 0 | Human Resources (Recursos Humanos) |
| 1 | Research & Development (I+D) |
| 2 | Sales (Ventas) |
Observación: Los departamentos de Ventas y RR.HH. suelen tener tasas de deserción más altas que I+D.
Education
Categórica (Ordinal)
| Código | Significado |
|---|---|
| 1 | Below College (Por debajo de universidad) |
| 2 | College (Universidad) |
| 3 | Bachelor (Licenciatura) |
| 4 | Master (Maestría) |
| 5 | Doctor (Doctorado) |
Orden lógico: Mayor nivel educativo se asocia con mayor especialización.
EducationField
Categórica (Nominal)
| Código | Significado |
|---|---|
| 0 | Human Resources (Recursos Humanos) |
| 1 | Life Sciences (Ciencias de la Vida) |
| 2 | Marketing |
| 3 | Medical (Medicina) |
| 4 | Other (Otro) |
| 5 | Technical Degree (Título Técnico) |
Variables: EnvironmentSatisfaction, JobSatisfaction, RelationshipSatisfaction, JobInvolvement
| Código | Significado | Riesgo Deserción |
|---|---|---|
| 1 | Bajo (Low) | ✗ Alto |
| 2 | Medio (Medium) | ⚠ Moderado |
| 3 | Alto (High) | ✓ Bajo |
| 4 | Muy Alto (Very High) | ✓ Muy bajo |
Factor protector: Mayor satisfacción se asocia con menor probabilidad de deserción.
JobLevel
Categórica (Ordinal)
| Código | Significado |
|---|---|
| 1 | Nivel 1 (Entrada/Junior) |
| 2 | Nivel 2 |
| 3 | Nivel 3 |
| 4 | Nivel 4 (Senior) |
| 5 | Nivel 5 (Directivo) |
Jerarquía: Niveles más altos suelen tener menor deserción, pero con mayor responsabilidad.
JobRole
Categórica (Nominal)
| Código | Significado |
|---|---|
| 0 | Healthcare Representative (Representante de Salud) |
| 1 | Human Resources (Recursos Humanos) |
| 2 | Laboratory Technician (Técnico de Laboratorio) |
| 3 | Manager (Gerente) |
| 4 | Manufacturing Director (Director de Manufactura) |
| 5 | Research Director (Director de Investigación) |
| 6 | Research Scientist (Científico de Investigación) |
| 7 | Sales Executive (Ejecutivo de Ventas) |
| 8 | Sales Representative (Representante de Ventas) |
Observación: Roles de ventas y técnicos suelen tener mayor rotación que roles de investigación y gerencia.
MaritalStatus
Categórica (Nominal)
| Código | Significado |
|---|---|
| 0 | Divorced (Divorciado) |
| 1 | Married (Casado) |
| 2 | Single (Soltero) |
Observación: Empleados solteros suelen tener mayor movilidad laboral que los casados.
PerformanceRating
Categórica (Ordinal)
| Código | Significado |
|---|---|
| 3 | Excellent (Excelente) |
| 4 | Outstanding (Sobresaliente) |
Nota: No hay valores 1 o 2 en este dataset (todos los empleados tienen buen desempeño).
StockOptionLevel
Categórica (Ordinal)
| Código | Significado |
|---|---|
| 0 | Sin opciones sobre acciones |
| 1 | Nivel 1 |
| 2 | Nivel 2 |
| 3 | Nivel 3 (Mayor compensación variable) |
Factor de retención: Mayor nivel de opciones sobre acciones se asocia con menor deserción.
TrainingTimesLastYear
Categórica (Ordinal)
| Código | Significado |
|---|---|
| 0 | 0 capacitaciones |
| 1 | 1 capacitación |
| 2 | 2 capacitaciones |
| 3 | 3 capacitaciones |
| 4 | 4 capacitaciones |
| 5 | 5 capacitaciones |
| 6 | 6 capacitaciones |
Factor de retención: Más capacitaciones se asocian con mayor desarrollo y retención.
WorkLifeBalance
Categórica (Ordinal)
| Código | Significado | Riesgo Deserción |
|---|---|---|
| 1 | Malo (Bad) | ✗ Alto |
| 2 | Regular (Average) | ⚠ Moderado |
| 3 | Bueno (Good) | ✓ Bajo |
| 4 | Excelente (Excellent) | ✓ Muy bajo |
Factor clave: El equilibrio vida-trabajo es uno de los predictores más importantes de deserción.
Formato común: 0 = No / Ausencia, 1 = Sí / Presencia
Gender
Género (0: Femenino, 1: Masculino)
OverTime
Horas extras (0: No, 1: Sí)
Attrition
🎯 Variable Objetivo: Deserción (0: Permanece, 1: Abandona)
Nota: Todas las variables binarias están codificadas como 0 = No y 1 = Sí.
OverTime (horas extras) - empleados con horas extras tienen mayor riesgoBusinessTravel frecuente aumenta significativamente la deserciónMonthlyIncome bajo respecto al mercado es un predictor claveYearsAtCompany < 5 años es período de alto riesgoTrainingTimesLastYear = 0 indica falta de inversión en desarrolloYearsSinceLastPromotion > 5 años puede indicar estancamientoVersión: 2.1.0
Código fuente: https://github.com/tu-usuario/dataset-sintetico-uci
TotalWorkingYears > 60 → TotalWorkingYears < 45 (Años trabajando realistas)YearsAtCompany > 40 → TotalWorkingYears ≥ 40 (Años en empresa ≤ años trabajando)YearsInCurrentRole > 40 → YearsAtCompany ≥ 40 (Años en rol ≤ años en empresa)YearsWithCurrManager > 0 → YearsAtCompany ≥ 1 (Tiene manager → al menos 1 año en empresa)YearsAtCompany == 0 → YearsSinceLastPromotion = 0 (Sin antigüedad → sin promoción)JobRole == 7 (Sales Executive) → Department = 2 (Sales)JobRole == 8 (Sales Representative) → Department = 2 (Sales)JobRole == 6 (Research Scientist) → Department = 1 (R&D)JobRole == 2 (Laboratory Technician) → Department = 1 (R&D)JobRole == 4 (Manufacturing Director) → Department = 1 (R&D)JobRole == 0 (Healthcare Representative) → Department = 1 (R&D)JobRole == 5 (Research Director) → Department = 1 (R&D)JobRole == 1 (Human Resources) → Department = 0 (HR)JobRole == 8 (Sales Representative) → JobLevel = 1 (Junior)JobRole == 5 (Research Director) → JobLevel ≥ 3 (Senior)JobRole == 3 (Manager) → JobLevel ≥ 3 (Senior)JobLevel == 1 → MonthlyIncome < 5000 (Nivel 1 → ingreso bajo)JobLevel == 5 → MonthlyIncome > 17000 (Nivel 5 → ingreso alto)PercentSalaryHike > 22 → PerformanceRating = 4 (Alto aumento → rating excelente)PerformanceRating == 3 → PercentSalaryHike ≤ 21 (Rating bueno → aumento moderado)| 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 | 1 | 1478 | 0.779 | 0.833 | 0.861 | 8.213 | 0.120 | 0.294 | 0.022 | 0.969 | 55.885 | 0 | 1478 | 0.518 | 🏆 |
| Smote | 1 | 1478 | 0.710 | 0.817 | 0.827 | 3.870 | 0.149 | 0.158 | 0.036 | 0.953 | 56.482 | 0.072 | 882 | 0.562 | |
| Borderline SMOTE | 1 | 1478 | 0.705 | 0.838 | 0.854 | 6.005 | 0.150 | 0.135 | 0.036 | 0.952 | 56.158 | 0.073 | 882 | 0.557 | |
| ADASYN | 1.032 | 1455 | 0.715 | 0.810 | 0.830 | 3.825 | 0.144 | 0.182 | 0.034 | 0.956 | 57.961 | 0.071 | 882 | 0.578 | |
| SMOTE RSB* Adaptado | 1.034 | 1454 | 0.746 | 0.818 | 0.823 | 4.898 | 0.140 | 0.228 | 0.022 | 0.972 | 60.913 | 0.077 | 882 | 0.545 | |
| SMOTE RSB* Adaptado + Reglas | 1.034 | 1454 | 0.757 | 0.835 | 0.833 | 6.486 | 0.144 | 0.217 | 0.021 | 0.973 | 62.830 | 0.077 | 882 | 0.586 | |
| OOF PSO para Balanceo | 1 | 1478 | 0.811 | 0.824 | 0.861 | 4.268 | 0.333 | 0.000 | 0.210 | 0.599 | 82.332 | 0.156 | 882 | 0.528 | |
| OOF PSO para Balanceo + Reglas | 1 | 1478 | 0.802 | 0.844 | 0.874 | 6.106 | 0.318 | 0.002 | 0.199 | 0.632 | 81.406 | 0.168 | 879 | 0.522 |
| 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.695 | 7981 | 0.758 | 0.839 | 0.864 | 8.617 | 0.170 | 0.326 | 0.040 | 0.969 | 96.103 | 0.124 | 2 | 0.551 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.695 | 7981 | 0.736 | 0.836 | 0.864 | 8.307 | 0.170 | 0.326 | 0.036 | 0.970 | 272.260 | 0.121 | 2 | 0.565 | |
| CTGAN | 1.019 | 10000 | 0.680 | 0.704 | 0.660 | 2.993 | 0.289 | 0.000 | 0.060 | 0.933 | 801.889 | 0.264 | 0 | 0.558 | |
| CTGAN + Reglas del Dominio | 1.019 | 10000 | 0.699 | 0.684 | 0.636 | 2.825 | 0.289 | 0.000 | 0.059 | 0.935 | 974.569 | 0.261 | 0 | 0.551 | |
| TVAE | 1.655 | 10000 | 0.819 | 0.846 | 0.850 | 8.179 | 0.253 | 0.005 | 0.019 | 0.964 | 344.674 | 0.193 | 0 | 0.505 | |
| TVAE + Reglas del Dominio | 1.655 | 10000 | 0.836 | 0.866 | 0.871 | 8.785 | 0.253 | 0.005 | 0.019 | 0.964 | 520.230 | 0.193 | 0 | 0.507 | 🏆 |
| OOF PSO para Aumento | 1 | 10000 | 0.783 | 0.811 | 0.799 | 4.115 | 0.601 | 0.000 | 1.063 | 0.624 | 124.617 | 0.382 | 0 | 0.581 | |
| OOF PSO para Aumento + Reglas | 1 | 10000 | 0.788 | 0.803 | 0.789 | 4.087 | 0.600 | 0.000 | 0.983 | 0.622 | 295.718 | 0.360 | 0 | 0.572 | |
| SMOTE RSB* Refinado | 1.496 | 8342 | 0.748 | 0.847 | 0.867 | 8.405 | 0.173 | 0.264 | 0.040 | 0.969 | 80.165 | 0.155 | 0 | 0.567 | |
| SMOTE RSB* Refinado + Reglas | 1.496 | 8342 | 0.747 | 0.846 | 0.864 | 8.367 | 0.173 | 0.264 | 0.037 | 0.970 | 230.132 | 0.152 | 0 | 0.559 |
| 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.556 | 9459 | 0.740 | 0.847 | 0.871 | 7.142 | 0.159 | 0.305 | 0.033 | 0.971 | 187.658 | 0.106 | 318 | 0.573 | |
| SMOTE RSB* + Ruido Gaussiano + Reglas | 1.556 | 9459 | 0.767 | 0.828 | 0.857 | 7.030 | 0.159 | 0.305 | 0.031 | 0.972 | 364.724 | 0.104 | 318 | 0.557 | |
| CTGAN | 1.017 | 11478 | 0.741 | 0.797 | 0.793 | 2.713 | 0.262 | 0.000 | 0.050 | 0.940 | 893.284 | 0.229 | 264 | 0.586 | |
| CTGAN + Reglas del Dominio | 1.017 | 11478 | 0.759 | 0.806 | 0.796 | 3.521 | 0.262 | 0.000 | 0.049 | 0.941 | 1063.770 | 0.225 | 264 | 0.579 | |
| TVAE | 1.548 | 11478 | 0.811 | 0.845 | 0.850 | 7.316 | 0.225 | 0.008 | 0.018 | 0.966 | 437.170 | 0.168 | 264 | 0.525 | |
| TVAE + Reglas del Dominio | 1.548 | 11478 | 0.799 | 0.854 | 0.861 | 7.478 | 0.225 | 0.007 | 0.018 | 0.966 | 613.876 | 0.168 | 264 | 0.528 | 🏆 |
| OOF PSO para Aumento | 1 | 11478 | 0.813 | 0.871 | 0.884 | 6.000 | 0.525 | 0.000 | 0.687 | 0.639 | 214.917 | 0.332 | 264 | 0.559 | |
| OOF PSO para Aumento + Reglas | 1 | 11478 | 0.799 | 0.839 | 0.861 | 4.351 | 0.524 | 0.000 | 0.634 | 0.641 | 385.297 | 0.313 | 264 | 0.545 | |
| SMOTE RSB* Refinado | 1.406 | 9820 | 0.736 | 0.852 | 0.871 | 6.996 | 0.162 | 0.259 | 0.034 | 0.970 | 159.774 | 0.130 | 317 | 0.570 | |
| SMOTE RSB* Refinado + Reglas | 1.406 | 9820 | 0.745 | 0.849 | 0.867 | 7.101 | 0.162 | 0.259 | 0.032 | 0.971 | 310.509 | 0.128 | 317 | 0.577 |
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 Employee Attrition Prediction (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32946326.v1