About coding for optimal no of cluster

2 vues (au cours des 30 derniers jours)
Seemant Tiwari
Seemant Tiwari le 4 Fév 2022
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

Réponse acceptée

Paras Gupta
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);
Optimal number of clusters = 2
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.

Plus de réponses (0)

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!

Translated by