Enfoque de machine learning para clasificar marcajes como ENTRADA / SALIDA / ERROR y soportar inferencia de turnos en esquemas rotativos complejos. La versión pública utiliza datos sintéticos para preservar la confidencialidad.
En entornos con turnos rotativos, los registros de marcaje suelen ser ruidosos: duplicados, datos faltantes, eventos fuera de orden y patrones dependientes del rol. Una mala clasificación genera fricción en nómina y obliga a auditorías manuales.
Dada una secuencia de eventos de marcaje por empleado, clasificar cada evento como: ENTRADA (inicio de jornada), SALIDA (fin de jornada) o ERROR.
Objetivo secundario: a partir de secuencias limpias, derivar indicadores interpretables sobre tipo de turno (diurno/nocturno/rotativo) y detección de anomalías.
El dataset sintético replica patrones reales:
Variables a nivel de evento con contexto secuencial:
hour_of_day, day_of_week, is_weekenddelta_prev_minutes, delta_next_minutespunch_index_in_day, punch_count_daySe utiliza Random Forest por su capacidad de capturar relaciones no lineales y ofrecer interpretabilidad mediante importancia de variables.
Se emplea GroupKFold por empleado para asegurar que entrenamiento y prueba no compartan individuos.