He estado leyendo mucho sobre Dynamic Time Warping (DTW) últimamente. Estoy muy sorprendido de que no haya literatura en absoluto sobre la aplicación de DTW a series temporales irregulares, o al menos no pude encontrarla.
¿Alguien podría darme una referencia a algo relacionado con ese problema, o tal vez incluso una implementación del mismo?
Respuestas:
Según tengo entendido, por series de tiempo irregulares te refieres a series de tiempo desigualmente espaciadas , también conocidas como series de tiempo muestreadas irregularmente . Como tengo curiosidad sobre las series temporales en general, he realizado una breve investigación sobre el tema de su interés (y ahora el mío). Los resultados siguen.
A pesar de la gran popularidad del enfoque de deformación dinámica del tiempo (DTW) en el análisis, agrupamiento y clasificación de series temporales, las series temporales irregulares presentan algunos desafíos para la aplicación directa de DTW a ese tipo de datos (por ejemplo, vea este documento y este documento ). En base a mis esfuerzos de investigación relativamente breves, no me resulta totalmente claro si es imposible aplicar DTW directamente, ya que algunas investigaciones sugieren lo contrario (ver también este documento / capítulo ). Para una mayor exhaustividad, también me gustaría mencionar una OMI excelente y relevante para la disertación del tema sobre series temporales irregulares .
Sin embargo, parece que este tema está cubierto principalmente por las siguientes dos corrientes de investigación :
Finalmente, me gustaría referirme al tema del software de código abierto , disponible para investigación o implementación de sistemas , enfocado en DTW y compatible con algunos de los algoritmos mencionados anteriormente para series temporales irregulares. Dicho software incluye un proyecto de módulo cDTW basado en Python / NumPy , así como un proyecto CUDA-DTW basado en CUDA centrado en GPU . Para los entusiastas, también debe mencionarse un proyecto completo de Dynamic Time Warp ( paquete correspondiente
R
dtw
está disponible en CRAN). Aunque puede no ser compatible con muchos algoritmos DTW para series temporales irregulares en este momento (aunque creo que es compatible con cDTW), creo que es solo cuestión de tiempo hasta que este proyecto ofrezca un soporte más completo para los algoritmos DTW, centrados en ese tipo de datos. Espero que hayas disfrutado leyendo mi respuesta tanto como yo he disfrutado investigando el tema y escribiendo esta publicación.fuente
He implementado con éxito DTW en 'C' aplicado a la verificación dinámica de firmas. Utilicé una base de datos de prueba de firmas chinas y holandesas para verificar EER y obtuve resultados muy impresionantes. Actualmente se implementa como una demostración en un iPad. Mi algoritmo fue codificado a mano a partir de varias descripciones publicadas. Compartiré el código si hay una forma de enviárselo. Una cosa que también contribuyó al éxito fue 'normalizar' los datos de entrada. Esto facilitó mucho la comparación de datos dispares con diferentes frecuencias de muestreo.
fuente
Solo estoy entrando en DTW y no he usado personalmente los paquetes mencionados a continuación, pero espero que lo siguiente pueda ayudarlo.
El Proyecto Cran.R, en particular: • "ts" es la clase básica para series de tiempo regularmente espaciadas que usan marcas de tiempo numéricas. • El paquete "zoo" proporciona infraestructura para series temporales espaciadas regularmente e IRREGULARMENTE utilizando clases arbitrarias para las marcas de tiempo. Está diseñado para ser lo más consistente posible con "ts". • zoo: Infraestructura S3 para series temporales regulares e irregulares (observaciones ordenadas de Z)
Referencias: http://cran.r-project.org/web/views/TimeSeries.html y http://cran.r-project.org/web/packages/zoo/index.html
Los mejores deseos.
fuente
TSdist tiene una función que determina la distancia a través de dtw. Acepta series temporales irregulares del zoológico.
fuente