Hierarchisches Clustering von Zeitreihen in Python scipy / numpy / pandas?

8

Ich habe einen DataFrame mit einigen Zeitreihen. Ich habe eine Korrelationsmatrix aus diesen Zeitreihen erstellt und möchte ein hierarchisches Clustering auf dieser Korrelationsmatrix erstellen. Wie kann ich das machen?

%Vor%

Nun, wie kann das hierarchische Clustering auf dieser Matrix aufgebaut werden?

    
luca 22.01.2016, 07:00
quelle

1 Antwort

17

Hier ist eine Schritt-für-Schritt-Anleitung, wie man die erstellt Hierarchisches Clustering und Dendrogramm aus unseren Zeitreihen mit SciPy. Bitte beachten Sie, dass auch scikit-learn (eine leistungsfähige Datenanalyse-Bibliothek, die auf SciPY basiert) viele andere Cluster-Algorithmen implementiert.

Zunächst erstellen wir einige synthetische Zeitreihen, mit denen wir arbeiten können. Wir werden 6 Gruppen von korrelierten Zeitreihen erstellen und erwarten, dass das hierarchische Clustering diese sechs Gruppen erkennt.

%Vor%

Jetzt machen wir das Clustering und plotten es:

%Vor%

Wenn wir entscheiden wollen, welche Art von Korrelation anzuwenden ist oder um eine andere Distanzmetrik zu verwenden, können wir eine benutzerdefinierte Metrikfunktion bereitstellen:

%Vor%

Um die Cluster abzurufen, können wir die fcluster-Funktion verwenden. Es kann auf verschiedene Arten ausgeführt werden (sehen Sie in der Dokumentation nach), aber in diesem Beispiel geben wir als Ziel die Anzahl der gewünschten Cluster an:

%Vor%

Ausgabe:

%Vor%     
luca 24.05.2016, 09:24
quelle

Tags und Links