K-means Clustering Result Always Changes
이전 댓글 표시
I'm working on k-means in MATLAB. Here are my codes:
load cobat.txt
k=input('Enter the number of cluster: ');
if k<8
[cidx ctrs]=kmeans(cobat, k, 'dist', 'sqEuclidean');
Z = [cobat cidx]
else
h=msgbox('Must be less than eight');
end
"cobat" is the file of mine and here it looks:
65 80 55
45 75 78
36 67 66
65 78 88
79 80 72
77 85 65
76 77 79
65 67 88
85 76 88
56 76 65
My problem is everytime I run the code, it always shows different result, different cluster. How can I keep the clustering result always the same?
채택된 답변
추가 답변 (2개)
the cyclist
2013년 5월 4일
K-means clustering uses randomness as part of the algorithm Try setting the seed of the random number generator before you start. If you have a relatively new version of MATLAB, you can do this with the rng() command. Put
rng(1)
at the beginning of your code.
댓글 수: 2
Alvi Syahrin
2013년 5월 4일
the cyclist
2013년 5월 4일
Type
>> doc randstream
to see how to do it in your version.
Pallavi Saha
2017년 9월 14일
0 개 추천
I am facing the same issue inconsistency in the output of fcm. Can anyone help me
댓글 수: 3
Walter Roberson
2017년 9월 14일
K-means select cluster positions randomly unless you pass it specific start positions.
To stop the output from being random, you can either pass specific start positions for the clusters, or you can use rng() to set the random seed to a constant so that the same sequence of random values will be created each time.
Mehmet Volkan Ozdogan
2019년 3월 28일
Hi,
I have a question about rng(). If we use rng() command, K-means algortihm stil repeats until the results are getting convergenced to the best. Is that right?
Thank you
Walter Roberson
2019년 3월 29일
Yes.
rng(SomeParticularNumericSeed)
just ensures that it will always use the same random number sequence provided that no other random numbers are asked for between the rng() call and the kmeans call.
카테고리
도움말 센터 및 File Exchange에서 k-Means and k-Medoids Clustering에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!