Cluster analysis: esercizi svolti

Indice dei contenuti

    La cluster analysis raggruppa osservazioni simili senza etichette predefinite (apprendimento non supervisionato). Misura la somiglianza con una distanza e forma gruppi (cluster) compatti e separati. Questa scheda allena le distanze, l’algoritmo k-means e il clustering gerarchico.

    1. Distanza euclidea

    Esercizio. Calcolare la distanza euclidea tra i punti A=(1,2) e B=(4,6).

    d_E(A,B)=\sqrt{(x_B-x_A)^2+(y_B-y_A)^2}=\sqrt{(4-1)^2+(6-2)^2}=\sqrt{9+16}=\sqrt{25}=5.

    La distanza euclidea è la lunghezza del segmento “in linea d’aria”: la misura di dissimilarità più usata nel clustering.

    2. Distanza di Manhattan

    Esercizio. Calcolare la distanza di Manhattan tra gli stessi punti A=(1,2) e B=(4,6).

    La distanza di Manhattan somma le differenze assolute delle coordinate:

    d_M(A,B)=|x_B-x_A|+|y_B-y_A|=|4-1|+|6-2|=3+4=7.

    È il percorso “a isolati” (solo movimenti ortogonali). Diversa dall’euclidea (5): la scelta della distanza cambia i cluster ottenuti.

    3. Assegnazione ai centroidi (k-means)

    Esercizio. Con centroidi C_1=(1,1) e C_2=(5,5), assegnare il punto P=(2,3) al cluster più vicino (distanza euclidea).

    d(P,C_1)=\sqrt{(2-1)^2+(3-1)^2}=\sqrt{1+4}=\sqrt5=2{,}24, d(P,C_2)=\sqrt{(2-5)^2+(3-5)^2}=\sqrt{9+4}=\sqrt{13}=3{,}61.

    P è più vicino a C_1 → assegnato al cluster 1. Nel k-means ogni punto va al centroide più vicino: è il passo di assegnazione.

    4. Aggiornamento del centroide

    Esercizio. Un cluster contiene i punti (2,3), (4,5), (3,4). Calcolare il nuovo centroide.

    Il centroide è la media delle coordinate dei punti del cluster:

    C=\left(\dfrac{2+4+3}{3},\ \dfrac{3+5+4}{3}\right)=\left(\dfrac{9}{3},\ \dfrac{12}{3}\right)=(3,\ 4).

    Nel k-means, dopo l’assegnazione si ricalcolano i centroidi come media dei punti. Assegnazione e aggiornamento si alternano fino a convergenza.

    5. Convergenza del k-means

    Esercizio. Descrivere il ciclo del k-means e quando si ferma.

    Il k-means itera due passi:

    1. assegnazione: ogni punto al centroide più vicino;
    2. aggiornamento: ogni centroide = media dei suoi punti.

    Si ripete finché le assegnazioni non cambiano più (centroidi stabili). Il k-means converge sempre, ma a un minimo locale: l’esito dipende dai centroidi iniziali, perciò si ripete con inizializzazioni diverse e si tiene la migliore.

    6. Scelta del numero di cluster

    Esercizio. Come si sceglie k nel k-means con il metodo del gomito?

    Si calcola la dispersione interna (somma dei quadrati intra-cluster, WCSS) per vari k:

    \text{WCSS}(k)=\sum_{\text{cluster}}\sum_{\text{punti}}d^2(\text{punto},\text{centroide}).

    La WCSS cala sempre all’aumentare di k, ma con rendimenti decrescenti. Il “gomito” della curva — dove la diminuzione rallenta bruscamente — indica il k ottimale: oltre, aggiungere cluster non migliora molto. È un criterio euristico ma molto usato.

    7. Una iterazione completa di k-means

    Esercizio. Dati i punti:

    A=(1,1),\quad B=(2,1),\quad C=(8,8),\quad D=(9,8),

    e i centroidi iniziali:

    M_1=(1,1), \qquad M_2=(8,8),

    eseguire un passo di assegnazione e aggiornamento.

    Calcoliamo le distanze euclidee.

    Per A:

    d(A,M_1)=0, \qquad d(A,M_2)=\sqrt{7^2+7^2}=\sqrt{98}.

    Quindi A va nel cluster 1.

    Per B:

    d(B,M_1)=1, \qquad d(B,M_2)=\sqrt{6^2+7^2}=\sqrt{85}.

    Quindi B va nel cluster 1.

    Per C:

    d(C,M_1)=\sqrt{98}, \qquad d(C,M_2)=0.

    Quindi C va nel cluster 2.

    Per D:

    d(D,M_1)=\sqrt{8^2+7^2}=\sqrt{113}, \qquad d(D,M_2)=1.

    Quindi D va nel cluster 2.

    Aggiorniamo i centroidi:

    M_1^{\text{new}}=\left(\dfrac{1+2}{2},\dfrac{1+1}{2}\right)=(1{,}5,1),
    M_2^{\text{new}}=\left(\dfrac{8+9}{2},\dfrac{8+8}{2}\right)=(8{,}5,8).

    Risultato:

    \boxed{C_1=\{A,B\},\quad M_1=(1{,}5,1)}
    \boxed{C_2=\{C,D\},\quad M_2=(8{,}5,8)}.

    Questo esempio mostra l’alternanza essenziale del k-means: prima si assegnano i punti, poi si ricalcolano i centroidi. Fermarsi dopo l’assegnazione non conclude l’iterazione.

    8. Silhouette di un punto

    Esercizio. Per un punto P, la distanza media dai punti del proprio cluster è a(P)=2 e la distanza media dal cluster più vicino è b(P)=5. Calcolare il coefficiente di silhouette.

    La silhouette è:

    s(P)=\dfrac{b(P)-a(P)}{\max\{a(P),b(P)\}}.

    Sostituendo:

    s(P)=\dfrac{5-2}{5}=\dfrac{3}{5}=0{,}6.

    Risultato:

    \boxed{s(P)=0{,}6}.

    Il valore è positivo e abbastanza alto: il punto è più vicino al proprio cluster che agli altri. In generale:

    • s\approx 1 indica assegnazione molto coerente;
    • s\approx 0 indica punto di confine;
    • s<0 suggerisce possibile assegnazione errata.

    La silhouette è utile perché valuta compattezza e separazione nello stesso indice.

    9. Linkage gerarchico

    Esercizio. Tre cluster hanno punti:

    A=\{0,2\}, \qquad B=\{5,6\}, \qquad C=\{10\}

    sulla retta reale. Calcolare la distanza tra A e B con single, complete e average linkage.

    Le distanze punto-punto tra A e B sono:

    |0-5|=5,\quad |0-6|=6,\quad |2-5|=3,\quad |2-6|=4.

    Single linkage: distanza minima:

    d_{\text{single}}(A,B)=3.

    Complete linkage: distanza massima:

    d_{\text{complete}}(A,B)=6.

    Average linkage: media delle distanze:

    d_{\text{average}}(A,B)=\dfrac{5+6+3+4}{4}=\dfrac{18}{4}=4{,}5.

    Risultato:

    \boxed{3,\quad 6,\quad 4{,}5}.

    La scelta del linkage cambia la forma dei cluster: single tende a catene sottili, complete preferisce cluster compatti, average è un compromesso.

    10. Standardizzazione prima delle distanze

    Esercizio. Due osservazioni sono:

    P=(1000,\ 2), \qquad Q=(1100,\ 5).

    Perché la distanza euclidea grezza può essere fuorviante?

    La distanza non standardizzata è:

    d(P,Q)=\sqrt{(1100-1000)^2+(5-2)^2} = \sqrt{10000+9} \approx 100{,}04.

    La prima variabile domina quasi completamente la distanza. Se la prima variabile è misurata in euro e la seconda è un punteggio da 1 a 5, la scala numerica determina il cluster più del contenuto informativo.

    Dopo standardizzazione:

    z=\dfrac{x-\mu}{\sigma},

    ogni variabile contribuisce in unità di deviazione standard. La distanza diventa una misura di differenza relativa, non una conseguenza delle unità di misura.

    Regola pratica: k-means, clustering gerarchico e metodi basati su distanza richiedono quasi sempre standardizzazione quando le variabili hanno scale diverse.

    11. Outlier e k-means

    Esercizio. Perché un outlier può spostare molto il centroide di un cluster?

    Il centroide è una media. Se un cluster contiene:

    1,\quad 2,\quad 3,

    il centroide è:

    \bar{x}=\dfrac{1+2+3}{3}=2.

    Se si aggiunge un outlier 100:

    \bar{x}=\dfrac{1+2+3+100}{4}=26{,}5.

    Il centroide si sposta lontano dalla zona densa dei dati. Per questo k-means è sensibile agli outlier: minimizza distanze quadratiche e usa medie. In presenza di outlier conviene valutare preprocessing robusto, k-medoids o metodi density-based.

    Errori comuni

    • Non standardizzare le variabili. Come in PCA, scale diverse distorcono le distanze: una variabile con range ampio domina il clustering.
    • Confondere euclidea e Manhattan. Danno valori e cluster diversi; la scelta della metrica è parte del modello.
    • Fidarsi di una sola inizializzazione del k-means. Converge a minimi locali: vanno provate più inizializzazioni.
    • Scegliere k massimizzando la compattezza. Aumentare k riduce sempre la WCSS; serve il gomito o altri criteri, non il minimo assoluto.
    • Ignorare outlier e linkage. Medie, distanze e regole di fusione possono cambiare molto il risultato anche a parità di dati.

    Ultimo aggiornamento: