Wie kann ich K-Means-Clustering von Zeitreihendaten durchführen? Ich verstehe, wie dies funktioniert, wenn die Eingabedaten eine Reihe von Punkten sind, aber ich weiß nicht, wie eine Zeitreihe mit 1XM zu clustern ist, wobei M die Datenlänge ist. Insbesondere bin ich nicht sicher, wie man den Mittelwert des Clusters für Zeitreihendaten aktualisiert.Wie kann ich K-Means-Clustering für Zeitreihendaten durchführen?
Ich habe eine Reihe von beschrifteten Zeitreihen, und ich möchte den K-Means-Algorithmus verwenden, um zu überprüfen, ob ich eine ähnliche Bezeichnung zurückbekomme oder nicht. Meine X-Matrix wird N X M sein, wobei N die Anzahl der Zeitreihen ist und M die Datenlänge wie oben erwähnt ist.
Weiß jemand, wie man das macht? Zum Beispiel, wie könnte ich this k-means MATLAB code ändern, so dass es für Zeitreihendaten funktionieren würde? Außerdem möchte ich in der Lage sein, neben der euklidischen Distanz auch andere Distanzmetriken zu verwenden.
besser Um meine Zweifel zu zeigen, hier ist der Code, den ich für Zeitreihendaten geändert:
% Check if second input is centroids
if ~isscalar(k)
c=k;
k=size(c,1);
else
c=X(ceil(rand(k,1)*n),:); % assign centroid randomly at start
end
% allocating variables
g0=ones(n,1);
gIdx=zeros(n,1);
D=zeros(n,k);
% Main loop converge if previous partition is the same as current
while any(g0~=gIdx)
% disp(sum(g0~=gIdx))
g0=gIdx;
% Loop for each centroid
for t=1:k
% d=zeros(n,1);
% Loop for each dimension
for s=1:n
D(s,t) = sqrt(sum((X(s,:)-c(t,:)).^2));
end
end
% Partition data to closest centroids
[z,gIdx]=min(D,[],2);
% Update centroids using means of partitions
for t=1:k
% Is this how we calculate new mean of the time series?
c(t,:)=mean(X(gIdx==t,:));
end
end
könnten Sie bitte einige der robusten Clustering-Algorithmen vorschlagen. und was ist DTW? Vielen Dank. – samkhan13
Schnappen Sie sich ein Buch über Zeitreihen, und es wird Ihnen DTW lehren. Oder googeln Sie nach "Zeitreihe DTW". Es ist Stand der Technik. Suchen Sie für DBSCAN und OPTICS auf Wikipedia nach Clustering. Sie können mit DTW verwendet werden, k-bedeutet nicht. –
danke das hilft :) – samkhan13