Saltar a contenido

ADR-0006 — Detección de anomalías: Isolation Forest

Contexto

El primer componente de Machine Learning de la plataforma es la detección de anomalías por sensor sobre el flujo de lecturas limpias: marcar en tiempo real las lecturas sospechosas (un sensor congelado, una deriva abrupta, un valor fuera del patrón histórico, una avería) para que queden registradas y disponibles.

Las restricciones que condicionan el modelo son fuertes:

  • Sin etiquetas. El sistema en producción no dispone de una verdad absoluta que diga qué lectura es anómala; el modelo debe ser no supervisado.
  • Por tipo de sensor. Un valor normal para un sensor de temperatura ambiente puede ser anómalo para uno de humedad de suelo; el modelo debe distinguir tipos.
  • Latencia mínima. La puntuación ocurre en línea dentro del procesamiento del flujo; un modelo lento estrangula todo el pipeline.
  • Reentrenamiento periódico en una ventana de tiempo razonable, sin necesidad obligatoria de GPU.
  • Interpretabilidad mínima, para poder investigar qué característica se salió de rango cuando salta una alerta.

Decisión

Se adopta Isolation Forest como modelo principal de detección de anomalías, con un modelo entrenado por tipo de sensor sobre características construidas a partir de las lecturas (estadísticos móviles, valores retardados, hora del día, correlaciones entre sensores cuando aplica).

Como variante experimental se entrena en paralelo un autoencoder (red neuronal), que no se promociona a producción por defecto pero permite comparar empíricamente el acierto sobre las averías conocidas antes de decidir si merece ascender.

Se conservan además métodos estadísticos simples (tipo puntuación Z) como línea base de referencia, para demostrar con evidencia que el modelo elegido aporta valor sobre la heurística trivial. No se entrena un modelo por sensor individual (serían miles): el tipo de sensor captura la mayor parte de la variabilidad. Tampoco se usan modelos secuenciales profundos, por exceder el presupuesto de latencia.

Cómo funciona Isolation Forest

Construye muchos árboles que dividen el espacio de datos con cortes aleatorios. Las anomalías quedan aisladas en pocos cortes (camino corto en el árbol); los valores normales requieren muchos más. Es rápido, no supervisado y funciona bien en alta dimensionalidad sin asumir una distribución concreta.

Consecuencias

Positivas:

  • Pila mínima y conocida, sin dependencias exóticas.
  • Latencia de inferencia insignificante: el rendimiento del pipeline no depende del modelo.
  • Entrenamiento reproducible y barato, sin GPU.
  • La variante autoencoder ya queda entrenada y registrada: si el modelo principal se degrada, la comparación A/B es inmediata.

Negativas o costes aceptados:

  • Trata cada lectura como un punto independiente e ignora el orden temporal puro; se mitiga en parte con las características retardadas. Los patrones secuenciales sutiles pueden escapársele.
  • El umbral que separa "anómalo" de "normal" requiere calibración manual por tipo de sensor tras cada reentrenamiento.
  • No detecta anomalías compuestas (una pareja de sensores con valores individualmente normales pero combinación rara), salvo que se capten explícitamente con características cruzadas.

Alternativas descartadas

  • Autoencoder como modelo principal: capta patrones no lineales más complejos, pero es más caro de entrenar y desplegar y con hiperparámetros más sensibles. Se conserva como variante comparada, no como principal.
  • One-Class SVM: base teórica sólida, pero con entrenamiento que crece de forma cuadrática con los datos y calidad equivalente a Isolation Forest con peor escalado.
  • Autoencoder secuencial (LSTM): capta anomalías secuenciales, pero su latencia de inferencia excede el presupuesto y complica el servicio con estado. Se reserva para cuando ese tipo de anomalía se demuestre un problema real.
  • Métodos estadísticos (puntuación Z, rango intercuartílico) como principal: asumen distribuciones casi gaussianas que los sensores reales no cumplen. Se conservan como línea base y como filtro previo en la limpieza.