Jede Zeile in Ihren Daten sollte diskrete Beobachtungen sein und Spalten sollten mit Merkmalen oder Dimensionen Ihrer Daten übereinstimmen. Für Ihren Fall: FID, Attribut 1, Attribut 2, x-Koord, y-Koord sollten auf Spalten stehen und jede Zeile sollte Beobachtungen zu verschiedenen Zeitschritten darstellen.
from scipy.cluster.vq import kmeans,vq
nbStates = 4
Centers, _ = kmeans(Data, nbStates)
Data_id, _ = vq(Data, Centers)
wo Daten sollten nx5 Matrix sein, wo 5 Spalten auf Ihre 5 Eigenschaften FID, Attribut 1, Attribut 2, X-Koord, Y-Koord und N Zeilen entsprechend N Beobachtungen entsprechen. Mit anderen Worten, formatieren Sie Ihr FID-Datenarray als Spaltenvektor und dasselbe für andere Features, und verketten Sie sie horizontal und fügen Sie sie als Argument für die kmeans-Funktion ein. nbStates gibt die Anzahl der Cluster an, die Sie erwarten, sollte vorher eingerichtet werden. Was Sie als Ergebnis erhalten werden, ist Centers, das eine NxM-Matrix ist, wobei N Clustern entspricht und M der Anzahl der Features in Ihren Daten entspricht. Data_id-Matrix ist ein Spaltenvektor, der die Beschriftungen Ihrer Datenpunkte entsprechend jedem Cluster darstellt. Es ist Nx1-Matrix, wobei N eine Anzahl von Datenpunkten ist.
sind die x- und y-Positionen relevant für die Cluster? I.e. ist die Position der Punkte, die Sie für das Clustering berücksichtigen möchten? Oder nur die Attributwerte? – hildensia
hauptsächlich die Attributwerte, da die Punktdaten bereits aggregiert sind und ich zu Stichprobenzwecken unabhängig von der Position clustern möchte. – Tins