Ecco un riepilogo di diversi algoritmi di clustering che possono aiutare a rispondere alla domanda
"quale tecnica di clustering dovrei usare?"
Non esiste un algoritmo di clustering oggettivamente "corretto" Rif
Gli algoritmi di clustering possono essere classificati in base al loro "modello di cluster". Un algoritmo progettato per un particolare tipo di modello generalmente fallisce su un diverso tipo di modello. Ad esempio, k-points non riesce a trovare cluster non convessi, può trovare solo cluster di forma circolare.
Pertanto, comprendere questi "modelli di cluster" diventa la chiave per comprendere come scegliere tra i vari algoritmi / metodi di clustering. I modelli di cluster tipici includono:
[1] Modelli di connettività: crea modelli basati sulla connettività a distanza. Ad esempio clustering gerarchico. Utilizzato quando abbiamo bisogno di partizioni diverse in base all'altezza del taglio dell'albero. Funzione R: hclust nel pacchetto stats.
[2] Modelli centroidi: crea modelli rappresentando ciascun cluster con un singolo vettore medio. Utilizzato quando è necessario il partizionamento nitido (al contrario del cluster fuzzy descritto più avanti). Funzione R: kmeans nel pacchetto stats.
[3] Modelli di distribuzione: crea modelli basati su distribuzioni statistiche come le distribuzioni normali multivariate utilizzate dall'algoritmo di massimizzazione delle aspettative. Utilizzato quando le forme dei cluster possono essere arbitrarie a differenza dei k-medie che presuppongono cluster circolari. Funzione R: emcluster nel pacchetto emcluster.
[4] Modelli di densità: crea modelli basati su cluster come aree dense connesse nello spazio dati. Ad esempio DBSCAN e OTTICA. Utilizzato quando le forme dei cluster possono essere arbitrarie a differenza dei k-medie che assumono cluster circolari. Funzione R dbscan nel pacchetto dbscan.
[5] Modelli di spazio secondario: crea modelli basati sia sui membri del cluster che sugli attributi pertinenti. Ad esempio il ciclismo (noto anche come co-clustering o clustering a due modalità). Utilizzato quando è necessario il clustering simultaneo di righe e colonne. Funzione R biclust nel pacchetto biclust.
[6] Modelli di gruppo: crea modelli basati sulle informazioni di raggruppamento. Ad esempio filtro collaborativo (algoritmo di raccomandazione). Funzione R Raccomandatore nel pacchetto recommenderlab.
[7] Modelli basati su grafici: costruisce modelli basati sulla cricca. Gli algoritmi di rilevamento della struttura della comunità cercano di trovare sottografi densi nei grafici diretti o non indirizzati. Ad esempio, la funzione R cluster_walktrap nel pacchetto igraph.
[8] Kohonen Mappa delle funzioni autoorganizzanti: costruisce modelli basati su reti neurali. Funzione R nel pacchetto kohonen.
[9] Clustering spettrale: crea modelli basati su una struttura a grappolo non convessa o quando una misura del centro non è una descrizione adatta dell'intero cluster. Funzione specc R nel pacchetto kernlab.
[10] clustering sottospaziale: per dati ad alta dimensione, le funzioni di distanza potrebbero essere problematiche. i modelli di cluster includono gli attributi rilevanti per il cluster. Ad esempio, la funzione hddc nel pacchetto R HDclassif.
[11] Clustering di sequenze: sequenze di gruppi correlate. pacchetto rBlast.
[12] Propagazione dell'affinità: crea modelli basati sul passaggio di messaggi tra punti dati. Non richiede il numero di cluster da determinare prima di eseguire l'algoritmo. È meglio per determinate attività di visione artificiale e biologia computazionale, ad esempio raggruppamento di immagini di volti umani e identificazione di trascrizioni regolamentate, rispetto a k- mean , Ref Rpackage APCluster.
[13] Streaming di cluster: costruisce modelli basati su dati che arrivano continuamente come registrazioni telefoniche, transazioni finanziarie ecc. Ad esempio pacchetto R BIRCH [ https://cran.r-project.org/src/contrib/Archive/birch/]
[14] Cluster di documenti (o cluster di testo): crea modelli basati su SVD. È stato utilizzato nell'estrazione di argomenti. Ad esempio Carrot [ http://search.carrot2.org] è un motore di clustering di risultati di ricerca open source che può raggruppare i documenti in categorie tematiche.
[15] Modello di classe latente: mette in relazione un insieme di variabili multivariate osservate con un insieme di variabili latenti. LCA può essere utilizzato nel filtro collaborativo. Funzione R Il raccomandatore nel pacchetto recommenderlab ha funzionalità di filtro collaborativo.
[16] Biclustering: utilizzato per raggruppare contemporaneamente righe e colonne di dati a due modalità. Ad esempio, funzione R ciclismo nella confezione ciclismo.
[17] Soft clustering (fuzzy clustering): ogni oggetto appartiene a ciascun cluster in una certa misura. Ad es. R Funzione Fclust nel pacchetto fclust.