- fcm - https://www.mathworks.com/help/fuzzy/fcm.html
- silhouette - https://www.mathworks.com/help/stats/silhouette.html
About coding for optimal no of cluster
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Seemant Tiwari
le 4 Fév 2022
Réponse apportée : Paras Gupta
le 17 Nov 2023
hi all
i create 5 cluster(By Fuzzy C Means)
now i am moving for next step, my next step is choosing optimal no. of cluster.
i am choosing silhouette method for optimal no. of cluster
i want help about coding for silhouette method, if anyone known please help me
Thank you
0 commentaires
Réponse acceptée
Paras Gupta
le 17 Nov 2023
Hi Seemant,
I understand that you want to find the optimal number of clusters using the Silhouette Method with Fuzzy c-means as the clustering function.
You can refer the code below to achieve the same in MATLAB.
% Generate dummy data
data = [randn(100,2)+2; randn(100,2)-2];
% Set the range of cluster numbers to evaluate
minClusters = 2;
maxClusters = 10;
% Initialize variables to store optimal number of clusters and maximum silhouette score
optimalNumClusters = 0;
maxSilhouetteScore = -Inf;
% Perform fuzzy c-means clustering for different numbers of clusters
for k = minClusters:maxClusters
options = fcmOptions(NumClusters=2,Verbose=false);
[centers, U] = fcm(data, options);
% Calculate the fuzzy membership values
[~, labels] = max(U);
% Calculate the silhouette values for each data point
silhouetteValues = silhouette(data, labels);
% Calculate the average silhouette score
avgSilhouetteScore = mean(silhouetteValues);
% Update the optimal number of clusters if a higher silhouette score is found
if avgSilhouetteScore > maxSilhouetteScore
maxSilhouetteScore = avgSilhouetteScore;
optimalNumClusters = k;
end
end
% Display the optimal number of clusters
disp("Optimal number of clusters = " + optimalNumClusters);
Please find below the documentation links of the functions used in the code:
You can also refer to the following documentation on "Silhouette criterion clustering evaluation object" to use the silhouette method with other clustering functions.
Hope this helps.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Data Clustering 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!