CD_44 Original + Derivados

CD_44: IBM HR Employee Attrition

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.

📈 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.

🏆 MEJOR RENDIMIENTO

📊 Conjunto Original

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
AUC-ROC: 0.76
F1-Score (weighted): 0.83
Accuracy: 0.85
⬇️ Degradación
⬇ -0.03 AUC ⬇ -0.03 F1 ⬇ -0.06 Acc

🔮 Conjunto Sintético

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
AUC-ROC: 0.73 ⬇ -0.03
F1-Score (weighted): 0.80 ⬇ -0.03
Accuracy: 0.79 ⬇ -0.06

📊 Resumen de Cambios en Clase Minoritaria (Clase 1)

🎯
Precisión
Original: 0.54
Sintético: 0.38
⬇ -0.16
📈
Recall
Original: 0.32
Sintético: 0.47
⬆ +0.15
⚖️
F1-Score
Original: 0.40
Sintético: 0.42
⬆ +0.02

📚 Fuente Original del Conjunto

Employee Attrition Dataset (HR Analytics)

v1.0
IBM Watson Analytics / Datos de Recursos Humanos
Disponible en repositorios públicos

📄 Resumen (Abstract)

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.

🏢 Contexto del Dominio

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:

  • Identificar factores predictivos de la rotación de empleados
  • Comprender cómo variables como satisfacción, involucramiento y equilibrio afectan la retención
  • Tomar decisiones basadas en datos para mejorar la retención
  • Prevenir la pérdida de empleados valiosos y reducir costos de contratación

📊 Descripción de Datos

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.

📋 Variables del Dataset
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
📊 Escalas de Satisfacción y Desempeño
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).

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria (Attrition = Yes/No)
  • Dimensión: Multivariante
  • Tipo de características: Mixtas (Numéricas, Categóricas, Ordinales)
  • Valores faltantes: No reportados
  • Área de aplicación: Recursos Humanos, Gestión de Talento, Retención de Empleados
  • Contexto: IBM Watson Analytics Use Case

🙏 Agradecimientos

Este conjunto de datos se basa en el caso de uso de Watson Analytics para Recursos Humanos:

⚖️ Ética y Privacidad

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.

📋 Notas de Uso

Este conjunto de datos es ideal para análisis de retención de empleados y predicción de rotación. Se recomienda:

  • La variable objetivo Attrition está codificada como Yes (dejó la empresa) y No (permanece en la empresa)
  • Las variables de satisfacción (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)
  • Codificar variables categóricas:
    • Gender: Label Encoding (Male/Female → 1/0)
    • MaritalStatus: One-Hot Encoding
    • Department: One-Hot Encoding
    • JobRole: One-Hot Encoding
    • EducationField: One-Hot Encoding
    • OverTime: Label Encoding (Yes/No → 1/0)
  • Las variables ordinales pueden tratarse como numéricas continuas o como categóricas ordenadas según el enfoque
  • Estandarizar/normalizar variables numéricas (Age, MonthlyIncome, YearsAtCompany, etc.)
  • Las variables de satisfacción y equilibrio suelen ser predictores importantes de la rotación
  • OverTime (horas extras) es frecuentemente un factor clave en la decisión de dejar la empresa
  • Utilizar validación cruzada estratificada debido al posible desbalanceo entre clases (generalmente más empleados se quedan que se van)

💡 Importancia en Recursos Humanos

La 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:

  • El costo de reemplazar a un empleado puede ser de 50% a 200% de su salario anual
  • La pérdida de conocimiento y experiencia afecta la productividad y la innovación
  • La rotación frecuente impacta negativamente en la moral y cultura organizacional
  • La predicción temprana permite intervenciones para retener a empleados valiosos

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.

📖 Cómo citar la fuente original

IBM HR Analytics Employee Attrition Dataset. Kaggle / IBM Watson Analytics. https://www.kaggle.com/datasets/pavansubhasht/ibm-hr-analytics-attrition-dataset

📚 Referencias Adicionales

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (HR Employee Attrition - IBM)

  • Limpieza inicial y eliminación de variables:
    • Eliminación de columnas constantes (varianza 0): EmployeeCount, Over18, StandardHours — variables sin poder predictivo.
    • Eliminación de identificador: EmployeeNumber (identificador único de empleado) para evitar sobreajuste.
    • Reducción de la dimensionalidad del dataset para mejorar la eficiencia del modelo.
  • Codificación de la variable objetivo:
    • Transformación de Attrition de texto a binaria: 'No'0 (El empleado permanece), 'Yes'1 (El empleado abandonó la empresa).
    • Documentación del objetivo: predicción de deserción laboral.
  • Codificación de variable ordinal específica:
    • BusinessTravel: Mapeo preservando orden lógico de frecuencia de viajes: 'Non-Travel' → 0, 'Travel_Rarely' → 1, 'Travel_Frequently' → 2.
    • Documentación detallada del mapeo ordinal en la leyenda.
  • Codificación de variables categóricas restantes:
    • Transformación de 10 variables categóricas a valores numéricos mediante Label Encoding: Gender, OverTime, MaritalStatus, Department, EducationField, JobRole, entre otras.
    • 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.
  • Preservación y documentación de variables numéricas/ordinales:
    • Escalas 1-4 (Satisfacción/Rating): EnvironmentSatisfaction, JobInvolvement, JobSatisfaction, RelationshipSatisfaction, WorkLifeBalance (1=Low/Bad, 4=Very High/Best), PerformanceRating (3=Excellent, 4=Outstanding).
    • Escalas 1-5: Education (1=Below College... 5=Doctor), JobLevel.
    • Variables continuas: Age, DailyRate, DistanceFromHome, HourlyRate, MonthlyIncome, MonthlyRate, NumCompaniesWorked, PercentSalaryHike, TotalWorkingYears, YearsAtCompany, YearsInCurrentRole, YearsSinceLastPromotion, YearsWithCurrManager.
    • Documentación detallada de todas las variables con sus escalas y significados.
  • Generación de documentación completa:
    • Creación del archivo leyenda_hr_attrition.txt con semántica completa de la variable objetivo y todas las variables predictoras.
    • Documentación de la eliminación de columnas constantes para transparencia metodológica.
    • Mapeo completo de variables categóricas codificadas (10 variables) con sus valores originales.
    • Descripción detallada de variables numéricas/ordinales con sus escalas (1-4, 1-5, continuas).
    • Contextualización del dataset: predicción de deserción laboral en IBM.
    • Estadísticas finales: total de instancias y tasa de attrition.
  • Preservación de la estructura y calidad de datos:
    • Mantenimiento de las 1,470 instancias (empleados) originales sin eliminación de filas.
    • Dataset final con 30 variables predictoras (mixtas: ordinales, 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 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.

📋 Diccionario de Datos Detallado

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
31 Variables totales
13 Numéricas
15 Categóricas
3 Binarias
Objetivo: Deserción (Attrition)
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 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
0Non-Travel (No viaja)✓ Bajo
1Travel_Rarely (Viaja raramente)⚠ Moderado
2Travel_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
0Human Resources (Recursos Humanos)
1Research & Development (I+D)
2Sales (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
1Below College (Por debajo de universidad)
2College (Universidad)
3Bachelor (Licenciatura)
4Master (Maestría)
5Doctor (Doctorado)
🎓

Orden lógico: Mayor nivel educativo se asocia con mayor especialización.

EducationField Categórica (Nominal)
Código Significado
0Human Resources (Recursos Humanos)
1Life Sciences (Ciencias de la Vida)
2Marketing
3Medical (Medicina)
4Other (Otro)
5Technical Degree (Título Técnico)
Variables de Satisfacción Escala 1-4

Variables: EnvironmentSatisfaction, JobSatisfaction, RelationshipSatisfaction, JobInvolvement

Código Significado Riesgo Deserción
1Bajo (Low)✗ Alto
2Medio (Medium)⚠ Moderado
3Alto (High)✓ Bajo
4Muy 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
1Nivel 1 (Entrada/Junior)
2Nivel 2
3Nivel 3
4Nivel 4 (Senior)
5Nivel 5 (Directivo)
📈

Jerarquía: Niveles más altos suelen tener menor deserción, pero con mayor responsabilidad.

JobRole Categórica (Nominal)
Código Significado
0Healthcare Representative (Representante de Salud)
1Human Resources (Recursos Humanos)
2Laboratory Technician (Técnico de Laboratorio)
3Manager (Gerente)
4Manufacturing Director (Director de Manufactura)
5Research Director (Director de Investigación)
6Research Scientist (Científico de Investigación)
7Sales Executive (Ejecutivo de Ventas)
8Sales 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
0Divorced (Divorciado)
1Married (Casado)
2Single (Soltero)
💑

Observación: Empleados solteros suelen tener mayor movilidad laboral que los casados.

PerformanceRating Categórica (Ordinal)
Código Significado
3Excellent (Excelente)
4Outstanding (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
0Sin opciones sobre acciones
1Nivel 1
2Nivel 2
3Nivel 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
00 capacitaciones
11 capacitación
22 capacitaciones
33 capacitaciones
44 capacitaciones
55 capacitaciones
66 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
1Malo (Bad)✗ Alto
2Regular (Average)⚠ Moderado
3Bueno (Good)✓ Bajo
4Excelente (Excellent)✓ Muy bajo
⚖️

Factor clave: El equilibrio vida-trabajo es uno de los predictores más importantes de deserción.

Variables Binarias Binario

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í.

📊
Variables categóricas: 15
  • BusinessTravel (3 niveles - ordinal)
  • Department (3 departamentos)
  • Education (5 niveles - ordinal)
  • EducationField (6 campos)
  • EnvironmentSatisfaction (1-4 - ordinal)
  • JobInvolvement (1-4 - ordinal)
  • JobLevel (1-5 - ordinal)
  • JobRole (9 roles)
  • JobSatisfaction (1-4 - ordinal)
  • MaritalStatus (3 estados)
  • PerformanceRating (3-4 - ordinal)
  • RelationshipSatisfaction (1-4 - ordinal)
  • StockOptionLevel (0-3 - ordinal)
  • TrainingTimesLastYear (0-6 - ordinal)
  • WorkLifeBalance (1-4 - ordinal)
🎯
Variables binarias: 3
  • Gender (Género)
  • OverTime (Horas extras)
  • 🎯 Attrition (Objetivo - Deserción)
📈
Variables numéricas: 13
  • Age, DailyRate, DistanceFromHome, HourlyRate
  • MonthlyIncome, MonthlyRate, NumCompaniesWorked
  • PercentSalaryHike, TotalWorkingYears
  • YearsAtCompany, YearsInCurrentRole
  • YearsSinceLastPromotion, YearsWithCurrManager
⚠️
Recomendaciones de Retención:
  • Factor crítico: OverTime (horas extras) - empleados con horas extras tienen mayor riesgo
  • Viajes: BusinessTravel frecuente aumenta significativamente la deserción
  • Ingresos: MonthlyIncome bajo respecto al mercado es un predictor clave
  • Antigüedad: YearsAtCompany < 5 años es período de alto riesgo
  • Satisfacción: Baja satisfacción (1-2) en cualquier variable es señal de alerta
  • Desarrollo: TrainingTimesLastYear = 0 indica falta de inversión en desarrollo
  • Promociones: YearsSinceLastPromotion > 5 años puede indicar estancamiento

🔬 Metodología de Generación (Reproducibilidad Científica)

📐 Método Principal

SMOTE RSB* Refinado

Versión: 2.1.0

DOI: 10.xxxx/zenodo.xxxxxxx

Código fuente: https://github.com/tu-usuario/dataset-sintetico-uci

📏 Reglas de restricción

  • 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)

⚙️ 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 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
Mejor seleccionado: Random Oversampling (TabDSFidelity: 8.213, AUC: 0.779, F1: 0.833, MIA: 0.518). 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.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
Mejor seleccionado: TVAE + Reglas del Dominio (TabDSFidelity: 8.785, AUC: 0.836, F1: 0.866, MIA: 0.507). 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.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
Mejor seleccionado: TVAE + Reglas del Dominio (TabDSFidelity: 7.478, AUC: 0.799, F1: 0.854, MIA: 0.528). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_44
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
Random Oversampling
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
TVAE + Reglas del Dominio
⭐ Mejor Aumentado
TVAE + Reglas del Dominio
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 Employee Attrition Prediction (Version 1). figshare. https://doi.org/10.6084/m9.figshare.32946326.v1