R: cluster analysis

Hierarchical Clustering

dist(tabella)   # calcola la matrice delle distanze. Di default usa la distanza euclidea
dist(tabella[,1:3])   # uso le prime 3 colonne
hc <- hclust(matrice_distanze)   # clustering gerarchico con distanza euclidea e average linkage
plot(as.dendrogram(hc))   # printo dendrogramma
library(ggdendro)
ggdendrogram(hc, theme_dendro = FALSE)   # funzione per dendrogramma con diverse opzioni grafiche
library(devtools)
myplclust(hc, lab.col = unclass(tabella$colonna))  # ancora dendrogramma. Con lab.col = ... abbiamo colorato le osservazioni di partenza in base al valore di "colonna" (per vedere se si raggruppano prima in base a quel valore)
abline(h=1.5,col="red")   # inserito il taglio del dendrogramma


# K-Means Clustering

kmeans(tabella,centers=2)   # cluster non gerarchico con metodo delle k-medie e due centroidi (quindi due gruppi). Altri possibili parametri:
# iter.max: numero massimo iterazioni prima di fermarsi.
# nstart: numero di diversi centroidi iniziali da cui partire: nstart= 100 fa 100 volte l'operazione ognuna con centroidi diversi e usa la migliore.
Clust <- kmeans(tabella[,-c(11:12)], centers=5)   # escludi colonne 11 e 12 dall'analisi
table(Clust$cluster, tabella$colonna)   # crea una tabella che ha per colonne ogni diverso valore di "colonna" della tabella originaria, e come righe i 5 diversi gruppi, per vedere come sono distribuiti i valori di "colonna" all'interno dei gruppi


No comments:

Post a Comment