clustring with the same number of point inside each cluster

16 ビュー (過去 30 日間)
Mehdi Foumani
Mehdi Foumani 2020 年 1 月 2 日
コメント済み: David Morales 2022 年 10 月 3 日
I have x and y coordinate of a set of points resulting in matrix X. As I know, idx = kmeans(X,k) is designed in a way that I can fix the number of clusters to k. However, I want to fix an additional parameter too. I want to fix the number of points inside each cluster too.
Let me give a simple example. Assume we have 99 points (and thier x and y coordinate in matrix X). Also, we know that there should be 11 clusters (that is k) and each one of clusters should contains 9 points inside. Do you have any ideas how I can force MATLAB to put exactly 9 points inside each cluster? It would be nice if it can be also shown as plot or gscatter. Thanks
  2 件のコメント
KSSV
KSSV 2020 年 1 月 2 日
Share the data....can give a try.
Mehdi Foumani
Mehdi Foumani 2020 年 1 月 2 日
For example, assume the following code. Is it possible to have 11 clusters there (each with exactly 9 points inside)?
n=99;
x = randi([0 1000],n,1);
y = randi([0 1000],n,1);
all_xy=[x,y];
[idx,C] = kmeans(all_xy,11);
[~,idx] = pdist2(C,all_xy,'euclidean','Smallest',1);
gscatter(all_xy(:,1),all_xy(:,2),idx)
for i=1:n
text(all_xy(i,1),all_xy(i,2),num2str(idx(i)));hold on;
end

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

回答 (1 件)

Abhishek Kumar
Abhishek Kumar 2020 年 9 月 1 日
編集済み: Abhishek Kumar 2020 年 9 月 18 日
Dear User,
As per my understanding you are able to use the k-means function in MATLAB, but you seek a functionality to fix number of points in each cluster as well. I would like to inform that such a functionality is not available right now with k-means functions. We, have recorded your issue and such a functionality might be available in upcoming releases.
  1 件のコメント
David Morales
David Morales 2022 年 10 月 3 日
I hope it gets implemented soon :D

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

Community Treasure Hunt

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

Start Hunting!

Translated by