Aggiunto template presentazione
[SusiTM.git] / clustering.tex
blob40c8e0d935850caf534fb2b347194459a50111b8
1 \chapter{Clustering}
3 \section{Introduzione}
4 Il \emph{clustering} consiste nella suddivisione di oggetti in gruppi, detti \emph{cluster}, tali da minimizzare la variabilità interna (\emph{intra-cluster}) e massimizzare invece la variabilità rispetto agli altri gruppi (\emph{inter-cluster}). Diventa quindi ragionevole aspettarsi che i documenti assegnati allo stesso \emph{cluster} siano simili secondo determinati criteri.
5 Questa tecnica consente di rendere l'insieme di documenti a disposizione più comprensibile, offrendo all'utente una interfaccia più intuitiva. Inoltre il \emph{clustering} se adottato in applicazioni di ricerca comporta un miglioramento della \emph{recall}; infatti se un determinato documento \texttt{d} risponde ad una particolare \emph{query} è possibile ritornare anche tutti i documenti presenti nel \emph{cluster} che contiene \texttt{d} arricchendo così il risultato della ricerca.
8 \section{Tecniche disponibili}
9 Esistono due approcci principali per il \emph{clustering}: analisi gerarchica e analisi non gerarchica. Le due tecniche si distinguono fondamentalmente per le relazioni che si vanno a creare tra i \emph{clusters} individuati.
11 \subsection{Analisi gerarchica}
12 Questo approccio consente di individuare una gerarchia tra i \emph{clusters} presenti, e quindi ogni classe fa parte di una classe più ampia, fino alla classe che contiene l'intero insieme di entità analizzate. Si distinguono due algoritmi principali:
13 \begin{itemize}
14 \item agglomerativo: inizialmente ogni elemento (documento) costituisce un \emph{cluster} a sè stante, e man mano si procede fondendo gli elementi più vicini, fino ad arrivare ad un unico \emph{cluster} che li contenga tutti. Per applicare questo algoritmo è necessario fissare a priori la misura di similarità tra i documenti da utilizzare per la fusione.
15 \item divisivo: rappresenta la situazione opposta rispetto alla precedente. Infatti in questo caso, inizialmente tutti gli elementi fanno parte di un unico grande \emph{cluster}, che viene suddiviso ad ogni iterazione in due, sulla base di un misura, fino a raggiungere un numero minimo di elementi sotto il quale il \emph{cluster} non viene ulteriormente suddiviso. Per applicare questo algoritmo è indispensabile definire una funzione per stabilire il \emph{cluster} da sudduvidere ad ogni passo.
16 \end{itemize}
17 Gli algoritmi gerarchici non richiedono di stabilire a priori il numero di gruppi da individuare; dal punto di vista computazionale però sono piuttosto onerosi e quindi poco efficienti. Altro elemento a sfavore è il fatto che queste tecniche sono particolarmente influenzate da eventuali valori anomali (\emph{outliers}). Nelle figure successive vengono messi in evidenza i due differenti approcci, l'algoritmo gerarchico agglomerativo e l'algoritmo gerarchico scissorio.
19 \begin{figure}[h]
20 \begin{center}
21 \includegraphics[width=120mm]{Aggr.png}
22 \caption{Algoritmo agglomerativo}
23 \label{agg}
24 \end{center}
25 \end{figure}
27 \begin{figure}[h]
28 \begin{center}
29 \includegraphics[width=120mm]{Sciss.png}
30 \caption{Algoritmo scissorio}
31 \label{sciss}
32 \end{center}
33 \end{figure}
35 Nella figura \ref{dend} è messo in evidenza un dendogramma. Esso viene utilizzato per fornire una rappresentazione grafica del processo di raggruppamento delle istanze nella procedura gerarchica.
38 \begin{figure}[h]
39 \begin{center}
40 \includegraphics[width=120mm]{Cluster1.jpg}
41 \caption{Esempio di dendogramma}
42 \label{dend}
43 \end{center}
44 \end{figure}
45 \pagebreak
46 \subsection{Algoritmo di clustering gerarchico agglomerativo}
47 L'algoritmo inizia assegnando ogni oggetto ad un \emph{cluster} distinto e procedendo in modo iterativo unendo ogni volta le coppie di \emph{clusters} più simili secondo determinati criteri. La procedura termina quando tutti gli oggetti sono stati uniti in un unico \emph{cluster}.\\ \\
48 \textbf{\emph{Initialization}}\\ \\
49 Ogni oggetto viene assegnato ad un \emph{cluster} distinto.\\ \\
50 \textbf{\emph{Iteration}} \\ \\
51 Si individua la coppia di \emph{clusters} più simili e li si unisce in uno unico.\\ \\
52 \textbf{\emph{Stopping condition}}\\ \\
53 Quando ogni oggetto viene unito in un unico \emph{cluster}.
55 \subsection{Analisi non gerarchica}
56 Gli algoritmi non gerarchici si distinguono per la tipologia di classi che vengono individuate. Il numero di \emph{clusters} generati deve essere noto a priori, o altrimenti è necessario impostare l'analisi in modo da ottenere soluzioni che prevedano un numero variabile di \emph{clusters}. A seconda che un elemento possa appartenere o meno a più classi simultaneamente si distinguono due tecniche:
57 \begin{itemize}
58 \item partizioni: le classi sono mutuamente esclusive, e quindi è possibile classificare un'entità in una sola classe;
59 \item classi sovrapposte: un elemento può appartenere a più di una classe.
60 \end{itemize}
61 Questi algoritmi si rivelano più efficienti computazionalmente, ed inoltre non sono influenzati in modo sostanziale dagli \emph{outliers}. Ad ogni iterazione di fondono i \emph{clusters} più ''vicini'' e si spacca il \emph{cluster} più disomogeneo.
64 \subsection{K-means}
65 L'algoritmo K-Means partiziona una collezione di vettori ${\{x_{1},x_{2}\ldots x_{n}\}}$ in un insime di \emph{clusters} ${\{C_{1},C_{2}\ldots C_{k}\}}$. L'algoritmo necessita di K semi per iniziare. Questi possono essere forniti dall'esterno o scelti a caso tra i vettori a disposizione. \\
66 La procedura è la seguente:\\ \\
67 \textbf{\emph{Initialization}}\\ \\
68 I K semi, forniti o selezionati a caso, costituiscono il cuore dei \emph{clusters}. Ogni vettore viene assegnato al \emph{cluster} più vicino.\\ \\
69 \textbf{\emph{Iteration}} \\ \\
70 I centroidi ${M_{i}}$ dei \emph{clusters} correnti sono calcolati:
72 M_{i} = |C_{i}^{-1}| \sum_{x \in C_{i}} x
74 Ogni vettore è riasseganto al cluster con il centroide più vicino.\\ \\
75 \textbf{\emph{Stopping condition}}
76 \begin{itemize}
77 \item Basate su una \emph{loss function}.
78 \item Si raggiunge il numero fissato di iterazioni.
79 \item Le partizioni dei vettori sono rimaste invariate.
80 \item Le posizioni dei centroidi sono immutate.
81 \end{itemize}
82 L'algoritmo K-means mira a massimizzare la funzione di qualità del clustering Q definita come:
85 Q(C_{1}, C_{2}, \ldots C_{k}) = \sum_{i=1}^k\sum_{x \in C_{i}} Sim(x-M_{i})
88 \begin{figure}[h]
89 \begin{center}
90 \includegraphics[width=120mm]{kmeans.png}
91 \caption{Esempio K-means con k=2}
92 \label{kmeans}
93 \end{center}
94 \end{figure}
95 \pagebreak
96 K-means è un noto algoritmo data la sua semplicità ed efficienza. La complessità di ogni iterazione è di \emph{O}(\emph{kn}) confronti di similarità, e il numero di iterazioni necessarie è di solito piuttosto ridotto.\\
97 Uno dei maggiori problemi dell'algoritmo è la sua sensibilità alla scelta iniziale dei semi. Se infatti viene fatta una cattiva scelta dei semi, i \emph{clusters} generati sono molto spesso sub-ottimi. Per ovviare al problema possono essere adottate varie strategie, e una di queste potrebbe essere eseguire la procedura con diversi insiemi di semi scelti in modo casuale. Un'alternativa potrebbe essere inoltre quella di scegliere i semi iniziali utilizzando delle informazioni dipendenti dal dominio esterno. Il miglior numero di \emph{cluster}, nel caso in cui non sia noto, può essere calcoltato facendo eseguire l'algoritmo con differenti valori di $k$ e scegliendo poi il migliore in base al valore della funzione di qualità $Q$.
100 \section{Misure di similarità}
101 Si distinguono due diverse tipologie di misure, all'interno di un \emph{cluster} e fra \emph{clusters} distinti.
102 \subsection{Distanze \emph{intra-cluster}}
103 Esistono tre principali tipologie di distanza tra elementi all'interno di un \emph{cluster}, che sono:
104 \begin{itemize}
105 \item Distanza euclidea tra due punti $p$ e $q$ in $n$ dimensioni.
107 D_{Euclidea}(p,q) = \sum_{k=1}^{n} (p_{k}-q_{k})^{2}
109 \item Distanza di Manhattan tra due punti $p$ e $q$ in $n$ dimensioni.
111 D_{Manhattan}(p,q) = \sum_{k=1}^{n} |p_{k}-q_{k}|
113 \item Distanza di Lagrange-Chebishev tra due punti $p$ $q$ in $n$ dimensioni.
115 D_{LC}(p,q) = \max_{k} \{|p_{k}-q_{k}| \} \] con k ${\in \{1, 2, \ldots n\}}$.
116 \end{itemize}
117 \subsection{Distanze \emph{inter-cluster}}
118 Per quanto riguarda la misura della distanza tra i \emph{clusters} a disposizione, è possibile ricorrere ad uno dei metodi proposti di seguito. Dati due \emph{clusters} A e B, la loro distanza può essere definita con:
119 \begin{itemize}
120 \item Metodo del legame singolo
122 D(A,B) = min \{ d(a,b): a \in{A}, b \in{B}\}
124 \begin{figure}[h]
125 \begin{center}
126 \includegraphics[width=120mm]{Single.png}
127 \caption{Rappresentazione distanza basata sul legame singolo}
128 \label{single}
129 \end{center}
130 \end{figure}
133 \item Metodo del legame completo:
135 D(A,B) = max \{ d(a,b): a \in{A}, b \in{B}\}
138 \begin{figure}[h]
139 \begin{center}
140 \includegraphics[width=120mm]{Complete.png}
141 \caption{Rappresentazione distanza basata sul legame completo}
142 \label{complete}
143 \end{center}
144 \end{figure}
146 \item Metodo della media di gruppo:
148 D(A,B) = \frac{1}{|A||B|} \sum_{a \in{A}} \sum_{b \in{B}} d(a,b)
151 \begin{figure}[h]
152 \begin{center}
153 \includegraphics[width=120mm]{Average.png}
154 \caption{Rappresentazione distanza basata sulla media di gruppo}
155 \label{average}
156 \end{center}
157 \end{figure}
159 \item Metodo del centroide:
161 D(A,B) = d(c_{A}, c_{B}) \] in cui $c_{i}$ sta ad indicare il centroide del \emph{cluster} $i$-esimo
163 \begin{figure}[h]
164 \begin{center}
165 \includegraphics[width=120mm]{Centroid.png}
166 \caption{Rappresentazione distanza basata sui centroidi}
167 \label{centroid}
168 \end{center}
169 \end{figure}
171 \end{itemize}