- 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 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Seemant Tiwari
el 4 de Feb. de 2022
Respondida: Paras Gupta
el 17 de Nov. de 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 comentarios
Respuesta aceptada
Paras Gupta
el 17 de Nov. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Data Clustering en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!