2013-07-21 10 views
5

Ho due domande per essere precisi. In primo luogo, vorrei sapere se esiste un modo semplice per adattare l'algoritmo di cluster di Markov in modo che possa specificare in anticipo quanti cluster vorrei avere alla fine. In caso contrario, quale algoritmo simile raccomanderesti?Markov Clustering

In secondo luogo, come devono essere gestiti i cluster sovrapposti nel mondo Markov?

risposta

13

1). Non c'è un modo semplice per adattare l'algoritmo MCL (nota: il suo nome è 'algoritmo cluster Markov' senza 'ing'.) Molte persone lo verbalizzano come in 'fare Markov clustering', che va bene) per produrre un numero specifico di cluster . Questo è, a mio avviso, per il 99,99% delle volte una caratteristica altamente desiderabile. Se dovessi fare ciò che vuoi, creerei 4 o 5 clustering a diversi livelli di granularità (ad esempio impostando il parametro di inflazione MCL su 1.4, 2.0, 3.0, 4.0 e 6.0, ma potrebbe valerne la pena fare qualche altro e selezionare in base alla distribuzione delle dimensioni dei cluster), quindi unirli in un clustering gerarchico (il programma 'clm close' può farlo). Dopo quello si potrebbe attraversare l'albero e cercare di trovare un cluster ottimale della dimensione desiderata. Questo ovviamente richiede uno sforzo significativo. Ho fatto qualcosa di simile ma non esattamente uguale in passato.

2). I raggruppamenti sovrapposti prodotti da MCL sono estremamente rari e sono sempre il risultato della simmetria nel grafico di input. L'implementazione MCL standard utilizzata dalla maggior parte delle persone (da http://micans.org/mcl/) rimuoverà la sovrapposizione. Questo a mio parere non è una preoccupazione. Disclaimer: ho creato MCL.

+0

beh questa è davvero una buona idea. l'uso di diversi valori di inflazione è una sorta di tentativo ed errore ma fattibile. Grazie. – user2560216

+0

Lo sviluppo corrente mcl ha una nuova opzione in cui è specificato un cluster di input: costruirà un sottografo su quel clustering (rimuovendo i bordi tra i cluster) e procederà con il clustering. Questo potrebbe essere probabilmente utile. Un altro punto: hai provato metodi che consentono di specificare il numero di cluster, ad es. partizionamento grafico con metodi spettrali (credo che hmetis sia un tale metodo) o clustering spettrale? (e ci devono essere molti altri metodi simili). – micans

+0

@micans, sono nuovo di MCL e ho appena visionato queste diapositive: http://www.cs.ucsb.edu/~xyan/classes/CS595D-2009winter/MCL_Presentation2.pdf, dove si parla del 'parametro di potenza e' che controlla l'operazione di espansione. Non vedo questo parametro nel manuale MCL ufficiale: http://micans.org/mcl/man/mcl.html#options. È implicitamente impostato da qualche parte, se no, esiste una linea guida per la scelta di un valore per esso? – MLister