5^ - Lezione Cluster analysis non gerarchica [modalità compatibilità]
by user
Comments
Transcript
5^ - Lezione Cluster analysis non gerarchica [modalità compatibilità]
www2.unica.it/isola/univercity/ Cluster analysis non gerarchica Corso di Analisi di Mercato - Anno 2011 2 Se •Dataframe di grandi dimensioni •Conosciamo a priori il numero di gruppi che vogliamo ottenere Possiamo optare per i metodi statistici non gerarchici. In particolare: •Il metodo delle “k-medie” o “k-means”. •Il metodo delle “nubi dinamiche” Consentono di ottenere una soluzione che non rappresenta quella ottimale, ma una delle tante possibili determinando a priori quel numero di classi e avendo scelto le unità da cui iniziare il raggruppamento. Corso di Analisi di Mercato - Anno 2011 3 Algoritmo nubi dinamiche Corso di Analisi di Mercato - Anno 2011 4 Dimostrazione kmeans Installare e caricare il pacchetto animator es<-read.csv(”es.csv") kmeans.ani(es,4) Corso di Analisi di Mercato - Anno 2011 5 km5<-kmeans(dataframequnatitativo, 5,100) km5 #Vengono mostrati gli oggetti Il comando kmeans consente di utilizzare le tecniche delle “k-medie” e delle “nubi dinamiche”. Nell’esempio indicato: •crea una partizione a 5 cluster con il metodo delle k-medie; •i primi 5 elementi iniziali sono selezionati casualmente; •il numero di iterazioni è pari a 100; problema il comando kmeans() può essere utilizzato solo con un dataframe di variabili quantitative. Nella pratica quindi è poco utilizzato Nella Guida è descritto l’utilizzo del comando kmeans Corso di Analisi di Mercato - Anno 2011 6 Con dati misti (variabili qualitative e quantitative nello stesso dataframe) occorre utilizzare una tecnica analoga, che usa una diversa misura di dissimilarità: la “K-medoid” che si può ottenere attraverso i commandi clara() o pam() contenuti all’interno del pacchetto “cluster”. dati<-read.csv2("centrocomm.csv") km3<-clara(dati,3) Km3<-pam(dati,3) Alcuni degli oggetti di output che si ottengono: •…$medoids: centroide o elemento rappresentativo di ogni cluster km3$medoids •…$clustering: indica il cluster di appartenenza di ogni individuo km3$clustering Corso di Analisi di Mercato - Anno 2011 7 pam() • Compared to kmeans, the function pam: (a) it also accepts a dissimilarity matrix; (b) it is more robust because it minimizes a sum of dissimilarities instead of a sum of squared euclidean distances. • The pam-algorithm is based on the search for k representative objects or medoids…after finding a set of k medoids, k clusters are constructed by assigning each observation to the nearest medoid. The goal is to find k representative objects which minimize the sum of the dissimilarities of the observations to their closest representative object. By default, when medoids are not specified, the algorithm first looks for a good initial set of medoids (this is called the build phase). • For large datasets clara() is preferable. 8 Analisi dell’output Per verificare la numerosità dei gruppi table(km3$clustering) Per creare i singoli dataframe di ogni gruppo si procede come segue: g1<-dati[km3$clustering==1,] g2<-dati[km3$clustering==2,] g3<-dati[km3$clustering==3,] Corso di Analisi di Mercato - Anno 2011 9 Metodi Comando Gerarchico agglomerativi daisy() Pacchetto “cluster” k-means() Nessun aggiuntivo pacchetto Non utilizzabile Utilizzabile con con Tutte le variabili (metodo misto) Grossi dataframe Variabili quantitative Variabili qualitative Tutte le variabili - Non gerarchici clara() e pam() Pacchetto “cluster” Corso di Analisi di Mercato - Anno 2011 10 www2.unica.it/isola/univercity/