Clustering basato su punteggi di somiglianza


17

Supponiamo di avere un insieme di elementi E ed una somiglianza ( non la distanza ) funzione sim (ei, ej) tra due elementi ei, ej ∈ E .

Come potremmo (efficientemente) raggruppare gli elementi di E , usando sim ?

k -means, ad esempio, richiede un dato k , Canopy Clustering richiede due valori di soglia. E se non volessimo tali parametri predefiniti?

Nota che quella sim non è necessariamente una metrica (cioè la disuguaglianza del triangolo può o non può essere valida). Inoltre, non importa se i cluster sono disgiunti (partizioni di E ).


2
Mi chiedo perché hai sottolineato che non hai una distanza. Non sono un esperto qui, ma mi chiedo se non dovrebbe essere possibile convertire una simile somiglianza in una distanza, se necessario, fondamentalmente considerando il suo inverso. Indipendentemente da ciò, dubito che ci siano algoritmi di clustering che sono completamente privi di parametri, quindi molto probabilmente sarà necessaria una messa a punto in tutti i casi. Quando si considerano i k-medie, si può presumere di avere proprietà con valore reale (in particolare, che si può prendere la "media" di diversi elementi)?
Marco13,

4
Non è necessario conoscere k per eseguire k significa. È possibile eseguire il clustering con k variabile e verificare la varianza del cluster per trovare l'ottimale. In alternativa, potresti pensare di scegliere modelli di miscele gaussiane o altri processi di ristorazione come cose che ti aiutano a raggruppare.
cwharland,

2
Ho posto le domande per un motivo specifico: se potessi applicare k-Mezzi, ma l'unico problema era trovare la "k" iniziale, allora potresti considerare un'al.wikipedia.org/wiki/Self-organizing_map come alternativa. Ha alcune proprietà interessanti e sostanzialmente si comporta come "simile" a k-Mezzi, ma non richiede l'impostazione della "k" iniziale. Probabilmente non è una soluzione pronta all'uso, perché ha parametri di ottimizzazione aggiuntivi (e la formazione può essere computazionalmente costosa), ma vale comunque la pena dare un'occhiata.
Marco

2
La scelta iniziale di k influenza i risultati del clustering ma è possibile definire una funzione di perdita o più probabilmente una funzione di precisione che indica per ogni valore di k che si utilizza per il cluster, la relativa somiglianza di tutti i soggetti in quel cluster. Scegli la k che minimizza la varianza in quella somiglianza. GMM e altri processi dirichlet si occupano abbastanza bene del problema del non sapere-k. Una delle migliori risorse che io abbia mai visto su questo è il tutorial di Edwin Chen .
cwharland,

4
Solo un pensiero: se il tuo punteggio di somiglianza è normalizzato a 1 , allora 1-sim(ei, ej) = Distance. Con la metrica della distanza è possibile applicare ad esempio il clustering gerarchico. Scendendo dalla radice vedrai a quale livello di cluster di granularità avrebbe senso il tuo problema particolare.
Olexandr Isayev,

Risposte:


8
  1. Penso che un certo numero di algoritmi di clustering che normalmente usano una metrica, in realtà non si basano sulle proprietà della metrica (oltre alla commutatività, ma penso che avresti quella qui). Ad esempio, DBSCAN utilizza i quartieri epsilon attorno a un punto; non c'è nulla che dica specificamente che la disuguaglianza del triangolo conta. Quindi probabilmente puoi usare DBSCAN, anche se potresti dover fare un qualche tipo di indice spaziale non standard per fare ricerche efficienti nel tuo caso. La tua versione di epsilon-neighbourhood sarà probabilmente sim> 1 / epsilon piuttosto che il contrario. Stessa storia con k-medie e algoritmi correlati.

  2. Puoi costruire una metrica dalla tua somiglianza? Una possibilità: dist (ei, ej) = min (sim (ei, ek) + sim (ek, ej)) per tutti k ... In alternativa, puoi fornire un limite superiore tale che sim (ei, ej) <sim (ei, ek) + sim (ek, ej) + d, per tutti k e qualche costante positiva d? Intuitivamente, i valori di sim di grandi dimensioni significano più vicini: è 1 / sim metric-like? Che dire di 1 / (sim + costante)? Che dire di min (1 / sim (ei, ek) + 1 / sim (ek, ej)) per tutti i k? (l'ultimo è garantito per essere una metrica, tra l'altro)

  3. Una costruzione alternativa di una metrica consiste nell'incorporare. Come primo passo, puoi provare a mappare i tuoi punti ei -> xi, in modo tale che xi minimizzi la somma (abs (sim (ei, ej) - f (dist (xi, xj))), per alcune funzioni adatte f e metrica dist. La funzione f converte la distanza nell'incorporamento in un valore simile alla somiglianza; dovresti sperimentare un po ', ma 1 / dist o exp ^ -dist sono buoni punti di partenza. Dovresti anche sperimentare il migliore dimensione per xi. Da lì, puoi usare il clustering convenzionale su xi. L'idea qui è che puoi quasi (nel migliore dei casi) convertire le tue distanze nell'incorporamento in valori di somiglianza, quindi si raggrupperebbero correttamente.

  4. Sull'uso di parametri predefiniti, tutti gli algoritmi hanno alcune ottimizzazioni. DBSCAN può trovare il numero di cluster, ma è comunque necessario fornire alcuni parametri. In generale, l'ottimizzazione richiede più esecuzioni dell'algoritmo con valori diversi per i parametri sintonizzabili, insieme ad alcune funzioni che valutano la bontà del clustering (o calcolate separatamente, fornite dall'algoritmo di clustering stesso, o semplicemente osservate :) Se il carattere di i tuoi dati non cambiano, puoi sintonizzarti una volta e poi usare quei parametri fissi; se cambia, allora devi sintonizzarti per ogni corsa. Puoi scoprirlo sintonizzando per ogni corsa e quindi confrontando il modo in cui i parametri di una corsa funzionano su un'altra, rispetto ai parametri appositamente sintonizzati per quello.


7

Alex ha fatto diversi punti positivi, anche se potrei dover respingere un po 'le sue implicazioni sul fatto che DBSCAN è il miglior algoritmo di clustering da utilizzare qui. A seconda dell'implementazione e del fatto che si stiano utilizzando o meno indici accelerati (molte implementazioni no), la complessità del tempo e dello spazio sarà entrambi O(n2), tutt'altro che ideale.

Personalmente, i miei algoritmi di clustering go-to sono OpenOrd per il clustering vincitore prende tutto e FLAME per il cluster fuzzy. Entrambi i metodi sono indifferenti al fatto che le metriche utilizzate siano somiglianza o distanza (in particolare FLAME è quasi identico in entrambe le costruzioni). L'implementazione di OpenOrd in Gephi è O(nlogn)ed è nota per essere più scalabile rispetto a qualsiasi altro algoritmo di clustering presente nel pacchetto Gephi.

D'altra parte, FLAME è fantastico se stai cercando un metodo di clustering fuzzy. Sebbene la complessità di FLAME sia un po 'più difficile da determinare poiché si tratta di un processo iterativo, è stato dimostrato che è sub-quadratico e simile nella velocità di esecuzione a knn.



4

DBSCAN (vedi anche: DBSCAN generalizzato) non richiede una distanza. Tutto ciò che serve è una decisione binaria . Comunemente, si userebbe "distance <epsilon" ma nulla dice che non si possa usare "similarity> epsilon" invece. Disuguaglianza del triangolo ecc. Non è richiesta.

La propagazione dell'affinità, come dice il nome, usa somiglianze.

Il clustering gerarchico, tranne forse il collegamento di Ward, non fa alcuna ipotesi. In molte implementazioni puoi usare solo distanze negative quando hai somiglianze e funzionerà perfettamente. Perché tutto ciò che serve è min, max e <.

K-kernel significa che potrebbe funzionare SE la tua somiglianza è una buona funzione del kernel. Pensalo come un calcolo di k-significa in un diverso spazio vettoriale, dove la distanza euclidea corrisponde alla tua funzione di somiglianza. Ma allora devi conoscere k.

PAM (K-medoids) dovrebbe funzionare. Assegna ogni oggetto al medoide più simile, quindi scegli l'oggetto con la più alta somiglianza media come nuovo medoide ... nessuna disuguaglianza del triangolo necessaria.

... e probabilmente molti altri ancora. Esistono letteralmente centinaia di algoritmi di clustering. La maggior parte dovrebbe funzionare IMHO. Pochissimi sembrano effettivamente richiedere proprietà metriche. K-means ha probabilmente i requisiti più severi: minimizza la varianza (non la distanza o la somiglianza) e devi essere in grado di calcolare i mezzi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.