%% Preparazione input % Vettore che contiene gli elementi sopra la diagonale principale della % matrice delle distanze (v. slides) distanze=[13.123 2.506 17.060 15.628 4.391 19.542]; labels={'1:A', '2:B', '3:C', '4:D'}; %% Clustering con il metodo del legame singolo e dendrogramma out=linkage(distanze,'single'); % dendrogram(out); % dendrogram(out,'labels',labels); title('Dendrogramma basato sul metodo del legame singolo') ylabel('Livelli di distanza con cui avviene l''aggregazione') %% Clustering con il metodo del legame completo e dendrogramma out=linkage(distanze,'complete'); dendrogram(out); % dendrogram(out,'labels',labels); title('Dendrogramma basato sul metodo del legame completo') ylabel('Livelli di distanza con cui avviene l''aggregazione') %% Clustering con il metodo del legame medio e dendrogramma out=linkage(distanze,'average'); dendrogram(out); title('Dendrogramma basato sul metodo del legame medio') ylabel('Livelli di distanza con cui avviene l''aggregazione') %% Esempio 5 modelli di auto % Vettore che contiene gli elementi sopra la diagonale principale della % matrice delle distanze (v. slides) distanze=[10.842 3.384 2.888 9.146 13.777 12.646 6.356 2.137 12.081 10.950]; labels={'1:PUNTO', '2:BRAVO', '3:FIESTA', '4:CORSA', '5:GOLF'}; %% Clustering con il metodo del legame singolo e dendrogramma out=linkage(distanze,'single'); dendrogram(out,'labels',labels); title('Dendrogramma basato sul metodo del legame singolo') %% Clustering con il metodo del legame completo e dendrogramma out=linkage(distanze,'complete'); dendrogram(out,'labels',labels); title('Dendrogramma basato sul metodo del legame completo') % taglio del dendrogramma cutoff=8; % per costruire un dendrogramma personalizzati con colori diversi a seconda % della soglia dendrogram(out,'ColorThreshold',cutoff); ylabel('Taglio del dendrogramma alla soglia di distanza 8') % taglio del dendrogramma idx=cluster(out,'cutoff',cutoff,'Criterion','distance'); disp(idx) % Commento le unità 1 3 e 4 (Punto, Fiesta e Corsa) formano un gruppo. Le % altre due unità 2 e 5 (Bravo e Golf) formano un altro gruppo. % Visualizzazione labels e gruppo di appartenenza disp(strcat(num2str(idx),'--',labels')) % %% Esempio clustering con i dati della qualità della vita % % Xtable=readtable('benessere.xlsx','Sheet','X (database originale)','Range','A3:H106','ReadRowNames',true); % % X = matrice di double senza nomi delle righe e nomi delle colonne % X=table2array(Xtable); % % % varalbs = cell che contiene i nomi delle variabili % varlabs=Xtable.Properties.VariableNames; % obslabs=Xtable.Properties.RowNames; % Z=zscore(X); % % % Osservazione: questa volta l'input di linkage è la matrice dei dati % % (standardizzata) % out=linkage(Z,'average'); % dendrogram(out,'labels',obslabs); % % vengono mostrate per default solo le ultime 30 aggregazioni % % % Per mostrare tutte le aggregazioni % dendrogram(out,0,'labels',obslabs); % % % Per mostrare solo le ultime 70 aggregazioni % dendrogram(out,70,'labels',obslabs,'Orientation','left') % % cutoff=3.5; % idx=cluster(out,'cutoff',cutoff,'Criterion','distance'); % eti=strcat(num2str(idx),'--',obslabs); % % % Interpretazione dei gruppi che sono stati trovati % i=1; % j=2; % figure % gscatter(X(:,i),X(:,j),idx) % text(X(:,i),X(:,j),eti) % xlabel(varlabs(i)) % ylabel(varlabs(j)) % % figure % i=3; % j=4; % gscatter(X(:,i),X(:,j),idx) % text(X(:,i),X(:,j),eti) % xlabel(varlabs(i)) % ylabel(varlabs(j)) % % figure % i=5; % j=6; % gscatter(X(:,i),X(:,j),idx) % text(X(:,i),X(:,j),eti) % xlabel(varlabs(i)) % ylabel(varlabs(j)) %