Clustering von Standorten, multivariabel?

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
nachteule
User
Beiträge: 1
Registriert: Sonntag 25. April 2021, 21:20

Hallo zusammen!

ich habe Energiedaten zu 15 Messstationen (je 3 Messwerte) über einen längeren Zeitraum.
Ich würde die Daten gern Clustern, aber nicht die Zeitreihen sondern die Messtationen. Bspw: Station 1,2,5 = Cluster 1, Station 3,4,9 = Cluster 2 etc. Ziel ist es, für andere Berechnungen die Komplexität zu reduzieren.

Date Loc1_D_L1 Loc1_D_L2 Loc1_D_L3 Loc2_D_L1
01.02.2021 00:00 10,387 12,953 9,563 11,938
01.02.2021 00:10 .... .... .... ....

Das ist das Format der Eingangstabelle.
Um eine Clusterung via K-Means umzusetzen, habe ich die Tabelle transponiert und folgenden Code genutzt:

Code: Alles auswählen

from sklearn.cluster import KMeans
from pandas import DataFrame

model = KMeans(n_clusters=5).fit(df)
pred = model.labels_
pred

Nc = range(1, 20)
kmeans = [KMeans(n_clusters=i) for i in Nc]
kmeans
score = [kmeans[i].fit(df).score(df) for i in range(len(kmeans))]
score
df['Cluster']=pred
Date 2021-02-01 00:00:00 2021-02-01 00:10:00 ... Cluster
Loc1_D_L1 10,387 12,953 ... 1
Loc1_D_L2 12,963 10,xzy ... 1
Loc1_D_L3 10,387 12,953 ... 2
Loc1_D_L1 12,963 10,xzy ... 1

Problem ist also offensichtlich:
Die Cluster werden für jede Variable an jedem Standort gebildet, ich möchte aber nur über die Standorte Clustern.
Gibt es die Möglichkeit "Level" einzubauen oder den Namen der Spalte zu referenzieren?
Andere Vorschläge für ein mögliches Vorgehen oder Ideen?

Danke u. Gruß
N.
Antworten