Kmeans (Initialise centroids)
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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.
0 commentaires
Réponses (1)
Akira Agata
le 20 Sep 2019
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 commentaires
Akira Agata
le 6 Oct 2019
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)
Voir également
Catégories
En savoir plus sur Statistics and Machine Learning Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!