Algoritmi di clustering

I set di dati di machine learning possono contenere milioni di esempi, ma non tutti gli algoritmi di clustering sono scalabili in modo efficiente. Molti algoritmi di clustering calcolano la somiglianza tra tutte le coppie di esempi, il che significa che il loro tempo di esecuzione aumenta in base al quadrato del numero di esempi \(n\), indicato come \(O(n^2)\) nella notazione della complessità.Gli algoritmi \(O(n^2)\) non sono pratici per i set di dati con milioni di esempi.

L'algoritmo k-means ha una complessità di \(O(n)\), il che significa che l'algoritmo si espande in modo lineare con \(n\). Questo algoritmo sarà l'argomento centrale di questo corso.

Tipi di clustering

Per un elenco esaustivo dei diversi approcci al clustering, consulta A Comprehensive Survey of Clustering Algorithms Xu, D. e Tian, Y. Ann. Data. Sci. (2015) 2: 165. Ogni approccio è più adatto a una determinata distribuzione dei dati. Questo corso illustra brevemente quattro approcci comuni.

Clustering basato su centroidi

Il centroide di un cluster è la media aritmetica di tutti i punti del cluster. Il clustering basato su centroidi organizza i dati in cluster non gerarchici. Gli algoritmi di clustering basati su centroidi sono efficienti, ma sensibili alle condizioni iniziali e agli outlier. Di questi, k-means è il più utilizzato. Richiede agli utenti di definire il numero di centroidi, k, e funziona bene con cluster di dimensioni approssimativamente uguali.

Esempi raggruppati in cluster utilizzando il clustering basato su centroidi.
           Le linee mostrano i confini tra i cluster.
Figura 1: esempio di raggruppamento basato su centroidi.

Clustering basato sulla densità

Il clustering basato sulla densità collega aree contigue con una densità elevata di esempi in cluster. Ciò consente di scoprire un numero qualsiasi di cluster di qualsiasi forma. Gli outlier non vengono assegnati ai cluster. Questi algoritmi hanno difficoltà con i cluster di densità diverse e con i dati con dimensioni elevate.

Esempi raggruppati in due cluster utilizzando il clustering basato sulla densità.
      I cluster non sono separabili in modo lineare.
Figura 2: esempio di clustering basato sulla densità.

Raggruppamento basato sulla distribuzione

Questo approccio di clustering presuppone che i dati siano costituiti da distribuzioni probabilistiche, come le distribuzioni Gaussiane. Nella Figura 3, l'algoritmo basato sulla distribuzione raggruppa i dati in tre distribuzioni gaussiane. All'aumentare della distanza dal centro della distribuzione, la probabilità che un punto appartenga alla distribuzione diminuisce. Le bande mostrano questa diminuzione di probabilità. Se non ti senti a tuo agio nell'assumere una determinata distribuzione di fondo dei dati, devi utilizzare un algoritmo diverso.

Esempi raggruppati utilizzando il clustering basato sulla distribuzione. L'ombreggiatura della densità degli esempi in ogni cluster mostra in che modo i cluster vengono mappati alle distribuzioni.
Figura 3: esempio di raggruppamento basato sulla distribuzione.

Clustering gerarchico

L'aggregazione gerarchica crea un albero di cluster. Non sorprende che il clustering gerarchico sia adatto ai dati gerarchici, come le tassonomie. Per un esempio, consulta Comparison of 61 Sequenced Escherichia coli Genomes di Oksana Lukjancenko, Trudy Wassenaar e Dave Ussery. È possibile scegliere un numero qualsiasi di cluster tagliando l'albero al livello giusto.

Animali raggruppati utilizzando un albero gerarchico.
Figura 4: esempio di albero gerarchico che raggruppa gli animali.