Sembra che per K-medie e altri algoritmi correlati, il clustering si basa sul calcolo della distanza tra i punti. Ce n'è uno che funziona senza di essa?
Sembra che per K-medie e altri algoritmi correlati, il clustering si basa sul calcolo della distanza tra i punti. Ce n'è uno che funziona senza di essa?
Risposte:
Un esempio di tale metodo sono i modelli di miscele finite (ad esempio qui o qui ) utilizzati per il clustering. In FMM si considera la distribuzione ( ) della variabile X come una miscela di K distribuzioni ( F 1 , . . . , F k ):
dove è un vettore di parametri θ = ( π ' , θ ' 1 , . . . , θ ' k ) ' e π k è una proporzione di k 'th distribuzione nella miscela e θ k è un parametro (o parametri) di distribuzione f k .
Un caso specifico per i dati discreti è l'analisi della classe latente (ad esempio qui ) definita come:
dove è la probabilità di osservare la classe latente k (cioè π k ), P ( x ) è la probabilità di osservare un valore x e P ( x | k ) è la probabilità che x sia nella classe k .
Solitamente sia per l' algoritmo FMM che per l' algoritmo EM LCA viene utilizzato per la stima, ma è anche possibile l'approccio bayesiano, ma un po 'più impegnativo a causa di problemi come l'identificazione del modello e il cambio di etichetta (ad esempio il blog di Xi'an ).
Quindi non esiste una misura della distanza ma piuttosto un modello statistico che definisce la struttura (distribuzione) dei dati. A causa dell'altro nome di questo metodo è "clustering basato sul modello".
Controlla i due libri su FMM:
Uno dei maggior parte dei pacchetti di clustering popolari che utilizza FMM è mclust
(controllare qui o qui ) che viene implementato in R . Tuttavia, sono anche possibili FMM più complicati, controlla ad esempio il flexmix
pacchetto e la relativa documentazione . Per LCA esiste un pacchetto R poLCA .
K-significa non è "realmente" basato sulla distanza. Riduce al minimo la varianza . (Ma varianzadistanze euclidee quadrate; così ogni punto è assegnato anche al centroide più vicino dalla distanza euclidea).
Esistono molti approcci di clustering basati su griglia . Non calcolano le distanze perché ciò produrrebbe spesso runtime quadratico. Invece, partizionano i dati e li aggregano in celle della griglia. Ma l'intuizione alla base di tali approcci è solitamente strettamente correlata alle distanze.
Esistono numerosi algoritmi di clustering per dati categorici come COOLCAT e STUCCO. Le distanze non sono facili da usare con tali dati (la codifica one-hot è un hack e non produce distanze particolarmente significative). Ma non ho sentito nessuno usare questi algoritmi ...
Esistono approcci di clustering per i grafici. O si riducono ai classici problemi grafici come la cricca o la ricerca di quasi-cricca e la colorazione dei grafici, oppure sono strettamente collegati al clustering basato sulla distanza (se si dispone di un grafico ponderato).
Il clustering basato sulla densità come DBSCAN ha un nome diverso e non si concentra sulla riduzione delle distanze; ma la "densità" è di solito specificata rispetto a una distanza, quindi tecnicamente questi algoritmi sono basati sulla distanza o sulla griglia.
La parte essenziale della tua domanda che hai lasciato fuori è quali sono i tuoi dati ?
Oltre alle belle risposte precedenti, suggerirei di prendere in considerazione i modelli di miscele di Dirichlet e i modelli di processo gerarchici di Dirichlet con base bayesiana . Per una panoramica piuttosto completa e generale di approcci e metodi per determinare un numero ottimale di cluster , vedere questa eccellente risposta su StackOverflow : /programming//a/15376462/2872891 .
Un approccio puramente discriminatorio è la "massimizzazione delle informazioni regolarizzata" di Gomes et al . Non vi è alcuna nozione di somiglianza / distanza coinvolta in esso.
L'idea è quella di avere una regressione logistica come il modello che mette i punti nei cassonetti. Ma invece di addestrarlo per massimizzare una qualche forma di probabilità logaritmica delle etichette di classe, la funzione obiettivo è quella che mette i punti in diversi cluster.
Per controllare la quantità di cluster utilizzati dal modello, un termine di regolarizzazione aggiuntivo ponderato dal parametro iper viene usato. Si riduce a una varianza inversa di un priore gaussiano sui pesi.
L'estensione ai metodi del kernel o alle reti neurali per il clustering non lineare è semplice.