ADR-0007 — Predicción de valores futuros: baseline → XGBoost → LSTM¶
Contexto¶
El segundo componente de ML es la predicción de valores futuros por sensor: anticipar el valor en las próximas horas con métricas de error evaluables y comparables entre modelos. Sirve para anticipar situaciones anómalas antes de que ocurran, para detectar desviaciones al comparar predicción y realidad, para visualizar en los dashboards y para ofrecer un endpoint de predicción con una latencia acotada.
Las restricciones clave: salida a varios pasos hacia adelante (no solo el siguiente); entrenamiento por tipo de sensor; validación con ventana expansiva (la validación cruzada aleatoria no vale en series temporales, porque filtra información del futuro y arruina la evaluación); y, como requisito explícito, una comparativa rigurosa que demuestre cuánto mejora un modelo avanzado sobre una línea base.
Decisión¶
Se adopta una progresión deliberada de tres modelos, todos registrados y comparados sobre el mismo conjunto de prueba con validación de ventana expansiva:
- Regresión lineal regularizada como línea base obligatoria: fija el listón mínimo exigido.
- XGBoost (gradient boosting sobre árboles) como modelo fuerte y esperado principal en producción.
- Red LSTM (aprendizaje profundo) para capturar patrones temporales que el gradient boosting solo ve mediante características explícitas.
El modelo que pasa a producción para cada tipo de sensor es el que minimiza el error dentro del presupuesto de latencia; en caso de empate, gana el más simple. La ingeniería de características se comparte entre entrenamiento y servicio para evitar desajustes entre ambos.
No se usa Prophet como modelo principal, ni modelos tipo transformer (sobredimensionados por ahora), ni herramientas de AutoML (ocultarían el aprendizaje que es objetivo del proyecto).
Consecuencias¶
Positivas:
- Comparativa rigurosa cumplida: tres niveles de capacidad (lineal, boosting, profundo) evaluados de forma reproducible.
- Latencia compatible con el objetivo de respuesta del endpoint.
- Selección granular por tipo de sensor: no se obliga a que un único modelo gane en todos.
- El camino hacia modelos más avanzados queda documentado sin comprometerse antes de tiempo.
Negativas o costes aceptados:
- Tres modelos suponen triple tiempo de entrenamiento y almacenamiento frente a un enfoque de modelo único; se acepta por el valor de la comparativa continua.
- La LSTM se beneficia de GPU para entrenar, lo que encarece la infraestructura de desarrollo.
- Sus hiperparámetros requieren ajuste.
- La validación de ventana expansiva es delicada: un error de implementación filtra información del futuro, por lo que exige pruebas estrictas.
Alternativas descartadas¶
- Prophet: excelente experiencia de desarrollo e interpretabilidad, pero pensado para series con estacionalidad clara, exige un modelo por serie (inviable a escala de miles de sensores) y su inferencia es demasiado lenta para el objetivo de latencia.
- Transformers de series temporales: estado del arte en muchos benchmarks, pero la mejora sobre la LSTM en este dominio es marginal frente a un coste de entrenamiento y ajuste mucho mayor. Se reservan como evolución futura.
- Bibliotecas de forecasting de alto nivel: muy rápidas para multiseries, pero ocultan la mecánica de construir cada modelo desde su marco nativo, que es precisamente el objetivo didáctico. Se reservan como posible mejora futura.
- AutoML: comodidad a cambio de esconder el aprendizaje; descartado por la misma razón.