Kmeans (Initialise centroids)

I have a dataset (X) where i use k means and save the centroids in matrix ( C), then I want to use the same centroids to cluster a different dataset. Can you please tell me the syntax? I know that I have to use 'start' but I am not doing it in a correct way.

回答 (1 件)

Akira Agata
Akira Agata 2019 年 9 月 20 日

0 投票

Like this?
% Apply k-means clustering to data set X (e.g num of classes = 2), and obtain centroids C
numClass = 2;
[cluster,C] = kmeans(X,numClass);
% Calculate distance from each row of new data set X2 and C
d = pdist2(X2,C);
% Cluster the data set X2 based on the distance from the centroids C
[~,cluster2] = min(d,[],2);

2 件のコメント

Ioanna Thoma
Ioanna Thoma 2019 年 9 月 23 日
I mean, by using idx=kmeans(X,k,Name,Value)
After appling k-means to the dataset I have:
[idx,centroids]=kmeans(X,5) %I need 5 clusters
so then what do I have to do?
idxnew=kmeans(X,5,'Start',centroids) is not working:/
Akira Agata
Akira Agata 2019 年 10 月 6 日
I think the same strategy should work. Here is an 5-cluster example :
% Sample data
X = rand(100,2); % dataset1
X2 = rand(100,2); % dataset2
% Apply k-means clustering to dataset1 (e.g num of classes = 5), and obtain centroids C
numClass = 5;
[cluster,C] = kmeans(X,numClass);
% Calculate distance from each row of new dataset (dataset2) against the centroids C
d = pdist2(X2,C);
% Clustering the dataset2 based on the centroids C
[~,cluster2] = min(d,[],2);
% Visualize the result
figure
gscatter(X2(:,1),X2(:,2),cluster2)

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

カテゴリ

ヘルプ センター および File ExchangeStatistics and Machine Learning Toolbox についてさらに検索

質問済み:

2019 年 9 月 19 日

コメント済み:

2019 年 10 月 6 日

Community Treasure Hunt

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

Start Hunting!

Translated by