clearvars close all clc %% load creatinina %% % Numero di cluster desiderato meanSilhouette=zeros(30,1); conta=1; for k=3:30 % Applicazione dell'algoritmo k-means [idx, centroids] = kmeans(data, k, 'Replicates', 10, 'Distance', 'sqeuclidean'); % Visualizzazione dei risultati disp('Assegnazione dei punti ai cluster:'); disp(idx); disp('Centroidi dei cluster:'); disp(centroids); % Calcolo del silhouette score silhouetteValues = silhouette(data, idx, 'Euclidean'); % Visualizzazione del silhouette score figure; silhouette(data, idx, 'Euclidean'); title('Silhouette Score per ogni punto'); xlabel('Silhouette Value'); ylabel('Cluster'); % Media del silhouette score meanSilhouette(k) = mean(silhouetteValues); %valk(conta)=k; %conta=conta+1; disp('Silhouette medio:'); disp(meanSilhouette); end close all figure, stem(meanSilhouette) indice=find(meanSilhouette==max(meanSilhouette)) k=indice; %kmeans finale [idx_f, centroids_f] = kmeans(data, k, 'Replicates', 10, 'Distance', 'sqeuclidean'); figure; silhouette(data, idx_f, 'Euclidean'); title('Silhouette Score per ogni punto'); xlabel('Silhouette Value'); ylabel('Cluster');