Intelligenza Artificiale
Clustering
Francesco Uliana
14 gennaio 2011
Definizione
• Il Clustering o analisi dei cluster (dal termine
inglese cluster analysis) è un insieme di
tecniche di analisi multivariata dei dati volte
alla selezione e raggruppamento di elementi
omogenei in un insieme di dati.
• Tutte le tecniche di clustering si basano sul
concetto di distanza tra due elementi
Esempio: http://vivisimo.com/
L’idea
• Gli algoritmi di clustering raggruppano gli
elementi sulla base della loro distanza
reciproca, e quindi l'appartenenza o meno ad
un insieme dipende da quanto l'elemento
preso in esame è distante dall'insieme stesso.
Due filosofie
• Dal basso verso l'alto (Bottom-Up):
– inizialmente tutti gli elementi siano considerati
cluster a sé (singleton), e poi l'algoritmo provvede
ad unire i cluster più vicini.
– L'algoritmo continua ad unire elementi al cluster
fino ad ottenere un numero prefissato di cluster,
oppure fino a che la distanza minima tra i cluster
non supera un certo valore.
Due filosofie
• Dall'alto verso il basso (Top-Down):
– All'inizio tutti gli elementi sono un unico cluster, e
poi l'algoritmo inizia a dividere il cluster in tanti
cluster di dimensioni inferiori.
– Il criterio che guida la divisione è sempre quello di
cercare di ottenere elementi omogenei.
– L'algoritmo procede fino a che non ha raggiunto
un numero prefissato (come?) di cluster.
Uno o più cluster per elemento?
• Clustering esclusivo: ogni elemento può essere
assegnato ad uno ed ad un solo gruppo. I
clusters risultanti, quindi, non possono avere
elementi in comune.
• Clustering non-esclusivo, in cui un elemento
può appartenere a più cluster con gradi di
appartenenza diversi.
algoritmo per dividere lo spazio
• Clustering Partitivo (detto anche k-clustering), in cui
per definire l'appartenenza ad un gruppo viene
utilizzata una distanza da un punto rappresentativo del
cluster (centroide, medioide ecc...), avendo prefissato il
numero di gruppi della partizione risultato.
• Clustering Gerarchico, in cui viene costruita una
gerarchia di partizioni caratterizzate da un numero
(de)crescente di gruppi, visualizzabile mediante una
rappresentazione ad albero (dendrogramma), in cui
sono rappresentati i passi di accorpamento/divisione
dei gruppi.
Clustering gerarchico
•
Le tecniche di clustering gerarchico non producono un partizionamento
flat dei punti, ma una rappresentazione gerarchica ad albero.
•
Es. 0306-lecture.pdf slide 15
Clustering Agglomerativo
• Questi algoritmi assumono che inizialmente ogni
cluster (foglia) contenga un singolo punto; ad ogni
passo, poi, vengono fusi i cluster più "vicini" fino ad
ottenere un singolo grande cluster. Questi algoritmi
necessitano di misure per valutare la similarità tra
clusters, per scegliere la coppia di cluster da fondere ad
ogni passo.
• Ogni livello dell’albero è una partizione dei dati
• Monotonicità: la similarità tra cluster accoppiati
diminuisce progressivamente
• La struttura ottenuta prende il nome di dendogramma
Dendogramma
• fornisce una rappresentazione grafica del
processo di raggruppamento delle istanze (o
unità statistiche, o records, o elementi
dell'insieme), che esprime:
– nell'asse delle ascisse, la distanza logica dei clusters
secondo la metrica definita
– nell'asse delle ordinate, il livello gerarchico di
aggregazione (valori interi positivi)
• La scelta del livello gerarchico (del valore dell'asse
Y) definisce la partizione rappresentativa del
processo di aggregazione.
Esempio di dendogramma
Misure utilizzate nel clustering gerarchico
• Single-link proximity: distanza tra due cluster è la distanza
minima tra elementi appartenenti a cluster diversi
• Average-link proximity: distanza tra due cluster è la
media delle distanze tra i singoli elementi:
• Complete-link proximity: distanza tra due cluster è la
distanza massima tra elementi appartenenti ai due
clusters:
Clustering partitivo
• Gli algoritmi di clustering di questa famiglia creano una
partizione delle osservazioni minimizzando una certa
funzione di costo:
dove k è il numero dei clusters, Cj è il j − esimo cluster e
è la funzione di costo associata al singolo cluster.
• L'algoritmo più famoso appartenente a questa famiglia
è il k-means, proposto da MacQueen nel 1967.
K-means
K-means
Complessità computazionale K-means
• il problema di clustering k-means è NP-hard in
uno spazio d-dimensionale anche con soli 2
clusters
• Se k e d sono fissati, il problema può essere
risolto esattamente in tempo O(ndk+1 log n),
dove n è il numero di entità da clusterizzare
• Per questa ragione sono stati proposti diversi
algoritmi euristici.
Determinare il miglior valore per k
• Utilizzare la cross validation per vari valori di k
• Come misurare la qualità del clustering?
– distanza media dei punti dai centri dei relativi
cluster (da minimizzare)
Attenzione!
• Le misure migliorano al crescere di k
(overfitting).
• Bisogna individuare quando l’incremento di k
determina un incremento limitato (es. elbow
method)
Confronto Requisiti
• K-means
– scelta di k
– Funzione per calcolare la distanza tra punti
– assegnazione iniziale
• Clustering gerarchico
– Funzione di similarità tra clusters
k-nearest neighbors (k-NN)
• riconoscimento di pattern per la
classificazione di oggetti basandosi sulle
caratteristiche degli oggetti vicini a quello
considerato
• È l'algoritmo più semplice fra quelli utilizzati
nell'apprendimento automatico (machine
learning).
Il parametro k (k-nn)
• Un oggetto è classificato in base alla
maggioranza dei voti dei suoi k vicini. k è un
intero positivo tipicamente non molto grande.
– Se k=1 allora l'oggetto viene assegnato alla classe
del suo vicino.
– In un contesto binario in cui sono presenti
esclusivamente due classi è opportuno scegliere k
dispari per evitare di ritrovarsi in situazioni di
parità.
Il parametro k (k-nn)
• Considerando solo i voti dei k oggetti vicini c'è
l'inconveniente dovuto alla predominanza delle
classi con più oggetti.
– Si possono pesare i contributi dei vicini in modo da
dare, nel calcolo della media, maggior importanza in
base alla distanza dall'oggetto considerato.
• La scelta di k dipende dalle caratteristiche dei
dati. Generalmente all'aumentare di k si riduce il
rumore che compromette la classificazione, ma il
criterio di scelta per la classe diventa più labile.
L'algoritmo k-nn: fase di training
• Lo spazio viene partizionato in regioni in base
alle posizioni e alle caratteristiche degli oggetti
di training. Questo può essere considerato
come il training-set per l'algoritmo
L'algoritmo k-nn: Calcolo della distanza
• Ai fini del calcolo della distanza gli oggetti
sono rappresentati attraverso vettori di
posizione in uno spazio multidimensionale. Di
solito viene usata la distanza euclidea, ma
anche altri tipi di distanza sono ugualmente
utilizzabili, ad esempio la distanza Manhattan.
Distanza Euclidea
• Pari alla distanza fra due punti, ossia la misura
del segmento avente per estremi i due punti.
– In generale, per due punti in uno spazio ndimensionale, P = (p1,p2,...,pn) e Q = (q1,q2,...,qn), la
distanza è calcolata come:
Distanza di Manhattan
• la distanza tra due punti è la somma delle
differenze (in valore assoluto) delle loro
coordinate.
– nel piano, la distanza L1 tra due punti P1 di
coordinate (x1,y1) e il punto P2 di coordinate (x2,y2)
è L1(P1,P2) = | x1 − x2 | + | y1 − y2 | .
L'algoritmo k-nn: Fase di classificazione
• Un punto (che rappresenta un oggetto) è
assegnato alla classe C se questa è la più
frequente fra i k esempi più vicini all'oggetto
sotto esame, la vicinanza si misura in base alla
distanza fra punti.
• I vicini sono presi da un insieme di oggetti per
cui è nota la classificazione corretta.
Esempio k-nn
• Il punto sotto osservazione è il pallino verde. Le
classi sono due: triangolini rossi e quadratini blu.
– Se k = 3, allora il pallino verde viene inserito nella
stessa classe dei triangolini rossi perché sono presenti
2 triangolini e 1 quadratino.
– Se k = 5 allora viene inserito nella stessa classe dei
quadratini blu perché sono presenti 3 quadratini e 2
triangolini.