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일

0 개 추천

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);

댓글을 달려면 로그인하십시오.

질문:

2020년 3월 1일

댓글:

2020년 3월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by