Agrupamiento dinámico de deformación de tiempo

40

¿Cuál sería el enfoque para usar Dynamic Time Warping (DTW) para realizar la agrupación de series de tiempo?

He leído sobre DTW como una forma de encontrar similitudes entre dos series de tiempo, mientras que podrían cambiarse en el tiempo. ¿Puedo usar este método como una medida de similitud para el algoritmo de agrupamiento como k-means?

Marko
fuente
2
sí, podría usar la medida de similitud como una entrada para k significa agrupamiento y luego determinar grupos en sus datos.
pronosticador
Gracias por su respuesta, señor. Supongo que para cada iteración necesitaría formar la matriz de distancia para cada par (centroide, punto de agrupación) y recalcular los centroides de manera estándar, como una media de todas las series que pertenecen al grupo.
Marko
1
Aleksandr Blekh en la respuesta a continuación tiene una publicación de blog que proporciona un ejemplo detallado sobre cómo hacer esto en R.
pronosticador
2
@forecaster no utiliza k-means con DTW. k-means minimiza la varianza, no las distancias. La varianza es al cuadrado euclidiana, pero eso no significa que k-means podría optimizar otras distancias. La media no lo hace, y en DTW debería ser bastante fácil construir contraejemplos, como un desplazamiento de onda sinusoidal por : ambos son muy similares por DTW, pero su media es constante cero, muy diferente a ambos. π
Anony-Mousse
1
K-means no es un algoritmo apropiado para la agrupación de series de tiempo. Los modelos ocultos de Markov para datos longitudinales discretos son apropiados. Ahora hay varios libros sobre este tema, así como contribuciones clave de Oded Netzer (Columbia) y Steve Scott (Google). Otro enfoque sería el método teórico de la información desarrollado por Andreas Brandmaier en Max Planck llamado agrupación de distribución de permutación. También ha escrito un módulo R. La comparación de soluciones de clúster es un problema diferente. El documento de Marina Meila, Comparing Clusterings, U of Washington Statistics Tech Report 418 es el mejor.
Mike Hunter

Respuestas:

33

No , no utilizar k-medias para la serie de tiempo.

DTW no se minimiza por la media; Es posible que k-means no converja e incluso si converge no producirá un resultado muy bueno. La media es un estimador de mínimos cuadrados en las coordenadas. Minimiza la varianza, no las distancias arbitrarias, y k-means está diseñado para minimizar la varianza, no las distancias arbitrarias .

Suponga que tiene dos series de tiempo. Dos ondas sinusoidales, de la misma frecuencia, y un período de muestreo bastante largo; pero están compensados ​​por . Dado que DTW realiza deformaciones de tiempo, puede alinearlas para que coincidan perfectamente, excepto para el principio y el final. DTW asignará una distancia bastante pequeña a estas dos series. Sin embargo, si calcula la media de las dos series, será un 0 plano: se cancelan. La media no hace una deformación dinámica del tiempo y pierde todo el valor que obtuvo DTW. En tales datos, k-means puede no converger , y los resultados no tendrán sentido. Las medias K solo deberían usarse con varianza (= Euclidiana al cuadrado), o algunos casos que son equivalentes (como el coseno, en datos normalizados L2, donde la similitud del coseno es2 -πlo mismo que distancia euclidiana al cuadrado)2

En su lugar, calcule una matriz de distancia usando DTW, luego ejecute la agrupación jerárquica como un enlace simple. A diferencia de k-means, la serie puede incluso tener una longitud diferente.

Anony-Mousse
fuente
44
Bueno, por supuesto, hay PAM (K-medoides) que funciona con distancias arbitrarias. Uno de los muchos algoritmos que admiten distancias arbitrarias, k-means no. Otras opciones son DBSCAN, OPTICS, CLARANS, HAC, ...
Anony-Mousse
1
Probablemente. Debido a que k-medoides usa DTW-medoide para encontrar el centro del grupo, no la media L2. No conozco ninguna agrupación exitosa del mundo real de series de tiempo. Creo que he visto documentos, pero ninguno que realmente utilizara el resultado. Solo prueba de conceptos.
Anony-Mousse
1
@ Aleksandr Blekh dio esto como uno de sus ejemplos nbviewer.ipython.org/github/alexminnaar/… ¿Cuál es su opinión al respecto?
Marko
1
Problemas de juguete. Inútil en el mundo real. Los datos reales tienen mucho ruido, lo que perjudicará mucho más que las curvas sinusoidales suaves y los patrones presentados en estos datos.
Anony-Mousse
1
Creo que la agrupación jerárquica es la mejor opción. No podrá procesar una gran cantidad de series de todos modos.
Anony-Mousse
49

Sí, puede usar el enfoque DTW para la clasificación y agrupamiento de series de tiempo . He compilado los siguientes recursos , que se centran en este mismo tema (recientemente he respondido una pregunta similar, pero no en este sitio, así que estoy copiando los contenidos aquí para conveniencia de todos):

Aleksandr Blekh
fuente
3
+1 excelente colección de artículos y blogs. Muy buenas referencias.
pronosticador
@forecaster: ¡Gracias por el voto positivo y las amables palabras! Me alegra que te guste la colección. Es muy triste que actualmente no tenga tiempo para aprender sobre pronósticos y muchas otras áreas de estadística y ciencia de datos más en serio, pero aprovecho cada oportunidad para aprender algo nuevo.
Aleksandr Blekh
1
@AleksandrBlekh Muchas gracias por su respuesta, he estado discutiendo con Anony-Mousse sobre este enfoque, ya que estoy particularmente interesado en DTW como una medida de similitud para K-means, por lo que podría obtener centroides como salida. ¿Cuál es tu opinión y experiencia con ella? Como puede ver, Anony-Mousse dio algunos argumentos de que los resultados pueden no ser tan buenos en este caso ... ¿Quizás alguna experiencia personal en un asunto práctico?
Marko
1
Ok, gracias de nuevo. Tienes +1 de mí y él acepta la respuesta, ya que mi pregunta está más orientada hacia k-means y DTW.
Marko
1
@pera: Un placer. Gracias por tu voto. Entiendo totalmente y estoy de acuerdo con la aceptación, no hay problema en absoluto.
Aleksandr Blekh
1

Petitjean et al. Han propuesto un método reciente de DTW Barycenter Averaging (DBA) . para promediar series de tiempo. En otro artículo demostraron empírica y teóricamente cómo puede usarse para agrupar series de tiempo con k-medias. Los autores proporcionan una implementación en GitHub ( enlace al código ).

1 F. Petitjean, G. Forestier, GI Webb, AE Nicholson, Y. Chen y E. Keogh, "El promedio dinámico de deformación del tiempo de series temporales permite una clasificación más rápida y precisa", 2014 Conferencia Internacional IEEE sobre Minería de Datos, Shenzhen, 2014 .

2 F. Petitjean, P. Gançarski, Resumiendo un conjunto de series de tiempo promediando: desde la secuencia de Steiner hasta la alineación múltiple compacta, Ciencias de la Computación Teórica, Volumen 414, Número 1, 2012

Hassan ISMAIL FAWAZ
fuente
2
proporcione referencias completas en lugar de enlaces. Los enlaces pueden morir
Antoine
1

Dynamic Time Warp compara los puntos de datos realizados, que pueden o no funcionar. Un enfoque más riguroso es comparar la distribución de las series de tiempo mediante una métrica llamada distancia telescópica .

Lo bueno de esta métrica es que el cálculo empírico se realiza ajustando una serie de clasificadores binarios como SVM.

Para una breve explicación, vea esto .

Para la agrupación de series de tiempo, se ha demostrado que supera a DTW; ver Tabla 1 en el documento original [1].

[1] Ryabko, D. y Mary, J. (2013). Una métrica basada en clasificación binaria entre distribuciones de series de tiempo y su uso en problemas estadísticos y de aprendizaje. The Journal of Machine Learning Research, 14 (1), 2837-2856.

horaceT
fuente
2
Un intento de notas del editor: "Jérémie María (coautor) tiene una página Web discutir el algoritmo con una implementación R.
Gung - Restablecer Mónica
@gung Wow, excelente! Tuve correspondencia con el primer autor y él no mencionó esto.
horaceT
De hecho, solo estoy copiando a alguien que intentó editar esto en tu respuesta, @horaceT. No sé mucho al respecto.
gung - Restablece a Monica
0

Sí. Un enfoque ingenuo y potencialmente lento podría ser,

  1. Crea todas tus combinaciones de clúster. k es para el recuento de clúster yn es para el número de series El número de artículos devueltos debe ser n! / k! / (n-k)!. Estos serían algo así como centros potenciales.
  2. Para cada serie, calcule distancias a través de DTW para cada centro en cada grupo de grupos y asígnelo al mínimo.
  3. Para cada grupo de grupos, calcule la distancia total dentro de grupos individuales.
  4. Elige el mínimo.

Usé esto para un pequeño proyecto. Aquí está mi repositorio sobre Time Series Clustering y mi otra respuesta sobre esto.

Dogan Askan
fuente