Skip to content

Rappresentazioni, distanze e metodi di clustering

  • rappresentazione esterna: per ogni entità, l’informazione è data dalla relazione tra essa e un’altra.
  • rappresentazione interna: ogni entità è identificata da un vettore di numeri.

Raggruppare vettori simili conoscendo la rappresentazione interna è molto facile, basta calcolare la distanza euclidea. Fanno eccezione i casi in cui l’input non può essere normalizzato.

Alcuni esempi di distanza:

  • Distanza euclidea:

    𝛿𝐸(𝑥,𝑦)=‖𝑦−𝑥‖=∑𝑖=1𝑛(𝑥𝑖−𝑦𝑖)2
  • Norma di Manhattan: distanza misurata solo muovendosi in verticale o in orizzontale:

    𝑑𝑖,𝑗Manhattan=‖𝑥𝑖−𝑥𝑗‖1=∑𝑘=1𝑛|𝑥𝑖,𝑘−𝑥𝑗,𝑘|
  • Angolo del prodotto scalare:

    cos(𝜃)=𝑥⋅𝑦‖𝑥‖‖𝑦‖

Può essere utile normalizzare le componenti dei vettori quando si calcola la distanza euclidea, ad esempio dividendo ogni componente per il suo intervallo di variazione:

𝛿norm(𝒙,𝒚)=∑𝑖=1𝑛(𝑥𝑖−𝑦𝑖max𝑖−min𝑖)2

dove max𝑖 e min𝑖 sono i valori massimo e minimo della componente 𝑖-esima nell’insieme di dati.

Queste misure di distanza, essendo basate sulle relazioni tra coppie di entità, costituiscono invece una rappresentazione esterna.

  • Hard clustering: gli insiemi di partizione sono disgiunti, l’obiettivo è quello di minimizzare le dissimilarità tra elementi dello stesso sottoinsieme e di massimizzare la distanza tra elementi di insiemi diversi.
  • Soft clustering: l’appartenenza ad una certa classe è espressa da un numero, quindi i confini tra i sottoinsiemi si sovrappongono parzialmente.

L’algoritmo di k-means è un algoritmo partizionale: partiziona l’insieme di dati in 𝑘 sottoinsiemi disgiunti a partire da un insieme di prototipi iniziali.

Per ogni cluster, il prototipo (di solito la media delle componenti) viene calcolato minimizzando l’errore di quantizzazione.

𝐸=∑𝑑‖𝑥𝑑−𝑝𝑐(𝑑)‖2
  1. si sceglie il numero di cluster (𝑘);
  2. si generano in maniera casuale 𝑘 prototipi;
  3. si ripete finché non viene soddisfatto un criterio di arresto:

    • si assegna ogni punto al cluster il cui prototipo è più vicino;
    • si sposta il prototipo nella posizione data dalla media dei punti che gli appartengono;
Diagrammi di Voronoi per k-means

In alcuni casi, l’assegnamento di un’entità ad un cluster non è netto ma dipende da una probabilità:

Il valore di appartenenza ad un certo cluster può essere dato da:

membership(𝑥,𝑐)=𝑒−𝛿(𝑥,𝑝𝑐)∑𝑐𝑒−𝛿(𝑥,𝑝𝑐)

L’aggiornamento dei centroidi può essere eseguito in modo leggermente diverso. Il centroide viene ‘tirato’ da ogni entità di una distanza proporzionale al grado di membership e alla learning rate 𝑛. Il contributo di una singola entità è:

Δ𝑝𝑐=𝑛membership(𝑥,𝑐)(𝑥−𝑝𝑐)𝑝𝑐next=𝑝𝑐+Δ𝑝𝑐

Ci sono due versioni leggermente differenti:

  • online update: ogni volta che si osserva un’entità, si sposta immediatamente il centroide;
  • batch update: prima si trovano tutte le entità appartenenti al cluster, poi si sposta il centroide con la somma di tutti i contributi;