Dynamisches Time Warping Clustering

40

Was wäre der Ansatz, um mithilfe von Dynamic Time Warping (DTW) ein Clustering von Zeitreihen durchzuführen?

Ich habe über DTW gelesen, um Ähnlichkeiten zwischen zwei Zeitreihen zu finden, während sie zeitlich verschoben werden könnten. Kann ich diese Methode als Ähnlichkeitsmaß für Clustering-Algorithmen wie k-means verwenden?

Marko
quelle
2
Ja, Sie könnten das Ähnlichkeitsmaß als Eingabe für k means clustering verwenden und dann Gruppen in Ihren Daten bestimmen.
Prognose
Vielen Dank für Ihre Antwort, Sir. Ich vermute, dass ich für jede Iteration die Distanzmatrix für jedes (Schwerpunkt-, Clusterpunkt-) Paar bilden und die Zentroide auf Standardweise neu berechnen müsste, als Mittelwert aller Reihen, die zum Cluster gehören?
Marko
1
Aleksandr Blekh in der Antwort unten hat einen Blog-Beitrag, der ein detailliertes Beispiel dafür enthält, wie dies in R.
Prognostiker
2
@forecaster Sie nicht k-means mit DTW verwenden. k-means minimiert die Varianz, nicht die Abstände. Die Varianz ist euklidisch quadriert, aber das bedeutet nicht, dass k-means andere Abstände optimieren könnte. Der Mittelwert stimmt nicht, und in DTW sollte es ziemlich einfach sein, Gegenbeispiele wie eine um versetzte Sinuswelle zu konstruieren : Beide sind sich in DTW sehr ähnlich, aber ihr Mittelwert ist konstant Null - sehr unterschiedlich zu beiden. π
Anony-Mousse,
1
K-means ist kein geeigneter Algorithmus für das Clustering von Zeitreihen. Versteckte Markov-Modelle für diskrete Längsschnittdaten sind geeignet. Es gibt mehrere Bücher zu diesem Thema sowie wichtige Beiträge von Oded Netzer (Columbia) und Steve Scott (Google). Ein weiterer Ansatz wäre die von Andreas Brandmaier bei Max Planck entwickelte informationstheoretische Methode des Permutationsverteilungsclusters. Er hat auch ein R-Modul geschrieben. Der Vergleich von Clusterlösungen ist ein anderes Problem. Der Artikel von Marina Meila, Comparing Clusterings, U. of Washington Statistics Tech Report 418, ist der beste.
Mike Hunter

Antworten:

33

Sie nicht k-Mittel für Zeitreihen verwenden.

DTW wird nicht durch den Mittelwert minimiert; k-means konvergiert möglicherweise nicht, und selbst wenn es konvergiert, liefert es kein sehr gutes Ergebnis. Der Mittelwert ist ein Schätzer der kleinsten Quadrate für die Koordinaten. Es minimiert die Varianz, nicht die willkürlichen Abstände, und k-means ist zur Minimierung der Varianz, nicht der willkürlichen Abstände ausgelegt .

Angenommen, Sie haben zwei Zeitreihen. Zwei Sinuswellen mit der gleichen Frequenz und einer ziemlich langen Abtastperiode; aber sie sind um . Da die DTW die Zeitverzerrung ausführt, können sie bis auf Anfang und Ende so ausgerichtet werden, dass sie perfekt übereinstimmen. DTW wird diesen beiden Serien einen relativ kleinen Abstand zuweisen. Wenn Sie jedoch den Mittelwert der beiden Reihen berechnen , ist dies eine flache 0 - sie heben sich auf. Der Mittelwert führt keine dynamischen Zeitverzerrungen durch und verliert den gesamten Wert, den die DTW erhalten hat. Bei solchen Daten kann es sein, dass k-means nicht konvergiert und die Ergebnisse bedeutungslos sind. K-Mittel sollten wirklich nur mit der Varianz (= quadrierte euklidische) oder einigen Fällen verwendet werden , die (wie Cosinus äquivalent sind, auf L2 - Daten normalisiert, wobei Kosinusähnlichkeit istπdasselbe wie Quadrat (euklidischer Abstand)2-

Berechnen Sie stattdessen eine Distanzmatrix mit DTW und führen Sie dann hierarchische Clustering-Vorgänge wie Single-Link aus. Im Gegensatz zu k-means kann die Reihe auch unterschiedlich lang sein.

Anony-Mousse
quelle
4
Nun, es gibt natürlich PAM (K-Medoids), die mit beliebigen Entfernungen arbeiten. Einer der vielen Algorithmen, die beliebige Abstände unterstützen - k-means nicht. Andere Möglichkeiten sind DBSCAN, OPTICS, CLARANS, HAC, ...
Anony-Mousse
1
Wahrscheinlich. Weil k-medoids das DTW-Medoid verwendet, um das Clusterzentrum zu finden, nicht den L2-Mittelwert. Ich kenne keine erfolgreiche Clusterung von Zeitreihen in der realen Welt. Ich glaube, ich habe Papiere gesehen, aber keine, die das Ergebnis wirklich nutzten . Nur Proof-of-Concepts.
Anony-Mousse
1
@Aleksandr Blekh gab dies als eines seiner Beispiele an. Nbviewer.ipython.org/github/alexminnaar/… Wie ist Ihre Meinung dazu?
Marko
1
Spielzeugprobleme. In der realen Welt nutzlos. Bei realen Daten ist viel Rauschen zu beobachten, was weitaus mehr schadet als glatte Sinuskurven und die in diesen Daten dargestellten Muster.
Anony-Mousse
1
Ich denke, hierarchisches Clustering ist die bessere Wahl. Sie werden ohnehin nicht in der Lage sein, eine große Anzahl von Serien zu verarbeiten.
Anony-Mousse
49

Ja, Sie können den DTW- Ansatz zur Klassifizierung und Gruppierung von Zeitreihen verwenden . Ich habe die folgenden Ressourcen zusammengestellt , die sich genau auf dieses Thema konzentrieren (ich habe kürzlich eine ähnliche Frage beantwortet, aber nicht auf dieser Site, daher kopiere ich den Inhalt hier, damit es für jedermann bequem ist):

Aleksandr Blekh
quelle
2
+1 ausgezeichnete Sammlung von Artikeln und Blogs. Sehr gute Referenzen.
Prognostiker
@forecaster: Danke für die positive Bewertung und die freundlichen Worte! Schön, dass dir die Sammlung gefällt. Es ist zu traurig, dass ich derzeit keine Zeit habe, Prognosen und viele andere Bereiche der Statistik und Datenwissenschaft ernsthafter zu lernen, aber ich nutze jede Gelegenheit, um etwas Neues zu lernen.
Aleksandr Blekh
1
@AleksandrBlekh Vielen Dank für Ihre Antwort. Ich habe mit Anony-Mousse über diesen Ansatz gesprochen, da ich mich besonders für DTW als Ähnlichkeitsmaß für K-means interessiere, damit ich Zentroide als Ausgabe erhalten kann. Was ist Ihre Meinung und Erfahrung damit? Wie Sie sehen, gab Anony-Mousse einige Argumente an, dass die Ergebnisse in diesem Fall möglicherweise nicht so gut sind ... Vielleicht einige persönliche Erfahrungen in einer praktischen Angelegenheit?
Marko,
1
Ok, danke nochmal. Du hast +1 von mir und er bekommt eine Antwort, da meine Frage mehr auf k-means und DTW ausgerichtet ist.
Marko
1
@pera: Es ist mir ein Vergnügen. Danke fürs Upvoting. Verstehe und stimme voll und ganz der Akzeptanz zu, überhaupt kein Problem.
Aleksandr Blekh
1

Petitjean et al. Haben ein neues Verfahren zur DTW-Mittelwertbildung (DBA) vorgeschlagen . zu durchschnittlichen Zeitreihen. In einer anderen Arbeit haben sie empirisch und theoretisch bewiesen, wie man Zeitreihen mit k-Mitteln gruppieren kann. Eine Implementierung wird von den Autoren auf GitHub bereitgestellt ( Link zum Code ).

1 F. Petitjean, G. Forestier, G. I. Webb, AE Nicholson, Y. Chen und E. Keogh, "Dynamische Zeitverzerrungs-Mittelung von Zeitreihen ermöglicht eine schnellere und genauere Klassifizierung", 2014 IEEE International Conference on Data Mining, Shenzhen, 2014 .

2 F. Petitjean, P. Gançarski, Zusammenfassung einer Reihe von Zeitreihen durch Mittelwertbildung: Von der Steiner-Sequenz zur kompakten multiplen Ausrichtung, Theoretical Computer Science, Band 414, Ausgabe 1, 2012

Hassan ISMAIL FAWAZ
quelle
2
Bitte geben Sie vollständige Verweise anstelle von Links an. Links können sterben
Antoine
1

Dynamic Time Warp vergleicht die realisierten Datenpunkte, die möglicherweise funktionieren oder nicht. Ein genauerer Ansatz besteht darin, die Verteilung der Zeitreihen anhand einer Metrik zu vergleichen, die als Teleskopentfernung bezeichnet wird .

Das Coole an dieser Metrik ist, dass die empirische Berechnung durch Anpassen einer Reihe von Binärklassifikatoren wie SVM erfolgt.

Eine kurze Erklärung finden Sie hier .

Bei Clustering-Zeitreihen wurde gezeigt, dass sie die DTW übertreffen. siehe Tabelle 1 im Originalpapier [1].

[1] Ryabko, D. & Mary, J. (2013). Eine auf Binärklassifikationen basierende Metrik zwischen Zeitreihenverteilungen und deren Verwendung bei statistischen und Lernproblemen. The Journal of Machine Learning Research, 14 (1), 2837-2856.

HoraceT
quelle
2
Ein Redaktionsversuch stellt fest: "Jérémie Mary (Co-Autorin) hat eine Webseite , auf der der Algorithmus mit einer R-Implementierung diskutiert wird.
gung - Reinstate Monica
@gung Wow, ausgezeichnet! Ich hatte Korrespondenz mit dem Erstautor und er erwähnte dies nicht.
HoraceT
Ich kopiere gerade von jemandem, der versucht hat, dies in Ihre Antwort, @horaceT, zu ändern. Ich weiß nicht zu viel darüber.
gung - Wiedereinsetzung von Monica
0

Ja. Ein naiver und möglicherweise langsamer Ansatz könnte sein,

  1. Erstellen Sie alle Clusterkombinationen. k steht für die Anzahl der Cluster und n für die Anzahl der Serien. Die Anzahl der zurückgegebenen Artikel sollte betragen n! / k! / (n-k)!. Dies wären so etwas wie potenzielle Zentren.
  2. Berechnen Sie für jede Serie die Entfernungen über DTW für jedes Zentrum in jeder Clustergruppe und weisen Sie es dem Minimum zu.
  3. Berechnen Sie für jede Clustergruppe die Gesamtentfernung innerhalb der einzelnen Cluster.
  4. Wählen Sie das Minimum.

Ich habe das für ein kleines Projekt benutzt. Hier ist mein Repository über Zeitreihen-Clustering und meine andere Antwort dazu.

Dogan Askan
quelle