Kmeans (Initialise centroids)

5 次查看(过去 30 天)
Ioanna Thoma
Ioanna Thoma 2019-9-19
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
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)

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by