calculate centroid after kmeans

1 回表示 (過去 30 日間)
Hans van der Horn
Hans van der Horn 2020 年 3 月 1 日
コメント済み: Hans van der Horn 2020 年 3 月 2 日
Hi,
Is it possible to retrospecively compute the centroids from the membership indices and the data after running kmeans?
Thanks!
Hans

回答 (1 件)

Image Analyst
Image Analyst 2020 年 3 月 1 日
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 件のコメント
Hans van der Horn
Hans van der Horn 2020 年 3 月 1 日
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 2020 年 3 月 2 日
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);

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by