calculate centroid after kmeans

1 Ansicht (letzte 30 Tage)
Hans van der Horn
Hans van der Horn am 1 Mär. 2020
Hi,
Is it possible to retrospecively compute the centroids from the membership indices and the data after running kmeans?
Thanks!
Hans

Antworten (1)

Image Analyst
Image Analyst am 1 Mär. 2020
Why not simply use the centroid locations that kmeans returns to you? Did you know that kmean() returns those if you ask for (accept) two return values
[indexes, centroids] = kmeans(data, k);
  2 Kommentare
Hans van der Horn
Hans van der Horn am 1 Mär. 2020
Thanks for your answer.
I'm aware of the answer, but was looking for a way to retrieve the centroid in case I didn't ask for that output.
Any ideas?
Hans van der Horn
Hans van der Horn am 2 Mär. 2020
I already figured it out. In kmeans code for correlation (distance method I use) it's the following code for each cluster:
X = bsxfun(@minus, X, mean(X,2));
Xnorm = sqrt(sum(X.^2, 2));
if any(min(Xnorm) <= eps(max(Xnorm)))
error(message('stats:kmeans:ConstantDataForCorr'));
end
X = bsxfun(@rdivide,X,Xnorm);

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by