¿Cuáles son algunas buenas técnicas para la clasificación / segmentación de datos de series temporales?

Mi tesis doctoral (tesis doctoral de Waleed Kadous) tiene una encuesta bibliográfica (a partir de la página 33) que puede serle útil. Ahora está un poco anticuado (13 años), pero el único método que se ha agregado son las redes de creencias profundas.

Los enfoques clave son:

Modelos ocultos de Markov
Esta es la segmentación / clasificación más popular y poderosa para series de tiempo. Es la base de la mayoría de los sistemas de reconocimiento de voz. Hay bastantes variantes / expansiones (por ejemplo, modelos semi-Markov ocultos que modelan el tiempo de manera más efectiva, HMM factorizados, etc.). Los problemas clave son que necesita muchos datos y que es difícil ajustar los hiperparámetros de un HMM (por ejemplo, cuántos estados, cuáles son las transiciones correctas, etc.). Tiene una curva de aprendizaje empinada, pero es con lo que comenzaría. Muy fuerte base teórica también. Los juegos de herramientas disponibles incluyen HTK y scikit-learn.

Deformación dinámica del tiempo
Este es el enfoque más antiguo y simple. Básicamente es el vecino más cercano para series de tiempo, con un poco de programación dinámica para igualar el tiempo entre instancias. Se puede hacer para hacer segmentación, pero no es tan elegante como los HMM. Muy pocos parámetros para sintonizar, bastante simple y funciona. Si estuviera haciendo un sistema embebido, DTW es lo que usaría. Suficientemente simple para que pueda implementarlo usted mismo en un par de días.

Redes neuronales recurrentes
Están recuperando popularidad como parte del creciente interés en las redes de creencias profundas. La idea es que las series temporales se introducen repetidamente y que la activación puede acumularse con el tiempo.

Segmentación ingenua
¿Qué sucede si solo promedia series de tiempo en un conjunto fijo de cubos (digamos 10) y luego ejecuta un clasificador? Funciona sorprendentemente bien para la clasificación. Luego, simplemente puede abrir la serie temporal y hacer una clasificación. Muy simple de implementar.

Característica constructiva de inducción
Este es el enfoque que exploré en mi doctorado. No ha prendido fuego al mundo, pero tenía algunas características positivas: eficiencia de los datos (no necesita muchos datos de entrenamiento), reutilización de conocimientos previos y comprensión. La idea central es que construyas primitivas parametrizadas como picos, canales, mesetas, períodos de aumento, disminución, etc. Y tratas de reconstruir modelos como resultado de ellos. No maneja bien la segmentación en absoluto.
Código fuente, conjuntos de datos de muestra, etc. disponibles en: TClass – Waleed Kadous.

ACTUALIZACIONES : Me siento increíblemente honrado de haber tenido a mi supervisor de tesis, Claude Sammut, sugiriendo el siguiente contenido:

Cuantización avanzada + procesamiento simbólico de series de tiempo
Existen muchos algoritmos para procesar series temporales simbólicas discretas (es decir, secuencias de símbolos). El trabajo de Lin y Keogh sobre este problema (ver Bienvenido al SAX) es muy interesante.

Encontrar motivos recurrentes
Lin y Keogh también construyeron un sistema para encontrar motivos o patrones recurrentes en series de tiempo, vea PLin, Keogh Lonardi y Patel sobre cómo encontrar motivos en series de tiempo.