Multivariates Zeitreihen-Clustering


8

Ich sammle eine Gruppe multivariater Zeitsequenzen. Zum Beispiel gibt es 2000 Zeitreihen. Jede Zeitreihe hat 12 Dimensionen.

Gibt es systematische Modelle / Algorithmen, die multivariate Zeitreihen gruppieren können? Zum Beispiel möchte ich einige Zeitreihen identifizieren, die sich stark von anderen unterscheiden.

Darüber hinaus kann ich für die Online-Überwachung diesen Algorithmus pünktlich ausführen. Zum Beispiel führe ich diese Art von Algorithmus alle 10 Minuten gegen die Zeitreihen aus, die 10 Minuten umfassen. Gibt es diesbezüglich effiziente Algorithmen?

Antworten:


5

Das R-Paket pdcbietet Clustering für multivariate Zeitreihen. Permutation Distribution Clustering ist ein komplexitätsbasiertes Unähnlichkeitsmaß für Zeitreihen. Wenn Sie davon ausgehen können, dass Unterschiede in Zeitreihen auf Unterschiede in der Komplexität und insbesondere nicht auf Unterschiede in Mittelwerten, Abweichungen oder den Momenten im Allgemeinen zurückzuführen sind, kann dies ein gültiger Ansatz sein. Die algorithmische Zeitkomplexität der Berechnung der pdc-Darstellung einer multivariaten Zeitreihe liegt in O (DTN), wobei D die Anzahl der Dimensionen ist, T die Länge der Zeitreihe und N die Anzahl der Zeitreihen. Dies ist wahrscheinlich so effizient wie es nur geht, da ein einziger Sweep über jede Dimension jeder Zeitreihe ausreicht, um die komprimierte Komplexitätsdarstellung zu erhalten.

Hier ist ein einfaches Beispiel mit einer hierarchischen Gruppierung multivariater Zeitreihen mit weißem Rauschen (das Diagramm zeigt nur die erste Dimension jeder Zeitreihe):

require("pdc")

num.ts <- 20 # number of time series
num.dim <- 12 # number of dimensions
len.ts <- 600*10 # number of time series

# generate Gaussian white noise
data <- array(dim = c(len.ts, num.ts, num.dim),data = rnorm(num.ts*num.dim*len.ts))

# obtain clustering with embedding dimension of 5
pdc <- pdclust(X = data, m=5,t=1)

# plot hierarchical clustering
plot(pdc)

Hierarchisches Clustering von multivariatem weißem Rauschen

Der Befehl pdcDist(data)generiert eine Unähnlichkeitsmatrix:

Da es sich bei den Daten ausschließlich um weißes Rauschen handelt, ist in der Unähnlichkeitsmatrix keine Struktur erkennbar.

         1        2        3        4        5        6        7
2 4.832894                                                      
3 4.810718 4.790286                                             
4 4.812738 4.796530 4.809482                                    
5 4.798458 4.772756 4.751079 4.786206                           
6 4.812076 4.793027 4.798996 4.758193 4.751691                  
7 4.786515 4.771505 4.754735 4.837236 4.775775 4.794706         
8 4.808709 4.832403 4.722993 4.781267 4.784397 4.776600 4.787757

Weitere Informationen finden Sie unter:

Brandmaier, AM (2015). pdc: Ein R-Paket für das komplexitätsbasierte Clustering von Zeitreihen. Journal of Statistical Software, 67. doi: 10.18637 / jss.v067.i05 (Volltext)


1
+1 @Brandmaier danke für die Antwort und für ein exzellentes Paket.
Prognostiker

3

Überprüfen Sie RTEFC ("Echtzeit-Exponentialfilter-Clustering") oder RTMAC ("Echtzeit-Moving-Average-Clustering"), effiziente, einfache Echtzeitvarianten von K-Mitteln, die für die Echtzeitverwendung geeignet sind, wenn Prototyp-Clustering geeignet ist. Sie gruppieren Sequenzen Siehe https://gregstanleyandassociates.com/whitepapers/BDAC/Clustering/clustering.htm und das zugehörige Material zur Darstellung multivariater Zeitreihen als ein größerer Vektor in jedem Zeitschritt (die Darstellung für "BDAC") mit einer Verschiebung Zeitfenster. Bildlich,

Diese wurden entwickelt, um gleichzeitig sowohl das Filtern von Rauschen als auch das Clustering in Echtzeit durchzuführen, um unterschiedliche Bedingungen zu erkennen und zu verfolgen. RTMAC begrenzt das Speicherwachstum, indem die neuesten Beobachtungen in der Nähe eines bestimmten Clusters beibehalten werden. RTEFC behält nur die Schwerpunkte von einem Zeitschritt zum nächsten bei, was für viele Anwendungen ausreicht. Im Bild sieht RTEFC folgendermaßen aus:

Dawg bat darum, dies mit HDBSCAN zu vergleichen, insbesondere mit der Funktion approximate_predict (). Der Hauptunterschied besteht darin, dass HDBSCAN immer noch davon ausgeht, dass gelegentlich von den ursprünglichen Datenpunkten umgeschult wird, was eine teure Operation ist. Die HDBSCAN-Funktion approximate_predict () wird verwendet, um eine schnelle Clusterzuweisung für neue Daten ohne Umschulung zu erhalten. Im RTEFC-Fall gibt es nie eine große Umschulungsberechnung, da die ursprünglichen Datenpunkte nicht gespeichert werden. Stattdessen werden nur die Cluster-Center gespeichert. Jeder neue Datenpunkt aktualisiert nur ein Clustercenter (entweder bei Bedarf ein neues erstellen und innerhalb der angegebenen Obergrenze für die Anzahl der Cluster oder ein vorheriges Center aktualisieren). Der Rechenaufwand bei jedem Schritt ist gering und vorhersehbar.

Die Bilder weisen einige Ähnlichkeiten auf, außer dass das HDBSCAN-Bild nicht den Stern markiert, der ein neu berechnetes Cluster-Center für einen neuen Datenpunkt in der Nähe eines vorhandenen Clusters anzeigt, und das HDBSCAN-Bild den neuen Cluster-Fall oder den Fall der erzwungenen Aktualisierung als Ausreißer ablehnt.

RTEFC wird optional auch geändert, wenn die Kausalität a priori bekannt ist (wenn Systeme Ein- und Ausgänge definiert haben). Dieselben Systemeingaben (und Anfangsbedingungen für dynamische Systeme) sollten dieselben Systemausgaben erzeugen. Sie sind nicht auf Lärm oder Systemänderungen zurückzuführen. In diesem Fall wird jede für das Clustering verwendete Abstandsmetrik so geändert, dass nur die Nähe der Systemeingaben und Anfangsbedingungen berücksichtigt wird. Aufgrund der linearen Kombination von wiederholten Fällen wird das Rauschen teilweise aufgehoben und es erfolgt eine langsame Anpassung an Systemänderungen. Die Schwerpunkte sind aufgrund der Rauschreduzierung tatsächlich bessere Darstellungen des typischen Systemverhaltens als ein bestimmter Datenpunkt.

Ein weiterer Unterschied besteht darin, dass für RTEFC nur der Kernalgorithmus entwickelt wurde. Es ist einfach genug, mit nur wenigen Codezeilen zu implementieren, das ist schnell und mit vorhersehbarer maximaler Rechenzeit bei jedem Schritt. Dies unterscheidet sich von einer gesamten Anlage mit vielen Optionen. Diese Art von Dingen sind vernünftige Erweiterungen. Die Ablehnung von Ausreißern kann beispielsweise einfach erfordern, dass nach einiger Zeit Punkte außerhalb des definierten Abstands zu einem vorhandenen Clusterzentrum ignoriert werden, anstatt zum Erstellen neuer Cluster oder zum Aktualisieren des nächsten Clusters verwendet zu werden.

Ziel von RTEFC ist es, eine Reihe repräsentativer Punkte zu erhalten, die das mögliche Verhalten eines beobachteten Systems definieren, sich an Systemänderungen im Laufe der Zeit anpassen und optional die Auswirkung von Rauschen in wiederholten Fällen mit bekannter Kausalität reduzieren. Es geht nicht darum, alle Originaldaten zu verwalten, von denen einige veraltet sein können, wenn sich das beobachtete System im Laufe der Zeit ändert. Dies minimiert den Speicherbedarf sowie die Rechenzeit. Dieser Satz von Merkmalen (Cluster-Zentren als repräsentative Punkte sind alles, was benötigt wird, Anpassung über die Zeit, vorhersehbare und geringe Rechenzeit) passt nicht für alle Anwendungen. Dies könnte angewendet werden, um Online-Trainingsdatensätze für chargenorientiertes Clustering, Näherungsmodelle für neuronale Netzfunktionen oder ein anderes Schema für die Analyse oder Modellbildung zu verwalten. Beispielanwendungen könnten Fehlererkennung / -diagnose umfassen; Prozesssteuerung; oder an anderen Stellen, an denen Modelle aus den repräsentativen Punkten oder dem Verhalten erstellt werden können, das gerade zwischen diesen Punkten interpoliert wurde. Die beobachteten Systeme wären solche, die hauptsächlich durch eine Reihe kontinuierlicher Variablen beschrieben werden, die andernfalls eine Modellierung mit algebraischen Gleichungen und / oder Zeitreihenmodellen (einschließlich Differenzgleichungen / Differentialgleichungen) sowie Ungleichheitsbeschränkungen erfordern könnten.


Die bildliche Darstellung erinnert mich ein wenig an die hierarchische DBSCAN-Variante: hdbscan.readthedocs.io/en/latest/prediction_tutorial.html# Können Sie die Unterschiede hervorheben?
Ledawg
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.