2013-07-21 16 views
5

Ich habe zwei Fragen um genau zu sein. Erstens würde ich gerne wissen, ob es eine einfache Möglichkeit gibt, den Markov-Clustering-Algorithmus so anzupassen, dass ich im Voraus festlegen kann, wie viele Cluster ich am Ende haben möchte. Wenn nicht, welchen ähnlichen Algorithmus würden Sie empfehlen?Markov Clustering

Und zweitens, wie sollten überlappende Cluster in der Markov-Welt behandelt werden?

Antwort

13

1). Es gibt keine einfache Möglichkeit, den MCL-Algorithmus anzupassen (sein Name ist 'Markov-Cluster-Algorithmus' ohne 'ing'. Viele Leute verbalisieren ihn wie bei 'Markov-Clustering', was in Ordnung ist), um eine bestimmte Anzahl von Clustern auszugeben . Dies ist meiner Meinung nach für 99,99% der Zeit ein höchst wünschenswertes Merkmal. Wenn ich tun würde, was Sie wollen, würde ich 4 oder 5 Clusterings auf verschiedenen Ebenen der Granularität erzeugen (sagen wir den MCL Inflationsparameter auf 1,4, 2,0, 3,0, 4,0 und 6,0 ​​setzen, aber es könnte sich lohnen ein paar mehr zu tun und Wählen Sie basierend auf der Verteilung der Clustergrößen), und vereinheitlichen Sie sie dann in einem hierarchischen Clustering (das Programm 'clm close' kann das tun). Danach könnte man den Baum durchqueren und versuchen, eine optimale Gruppierung der gewünschten Größe zu finden. Dies erfordert offensichtlich einen erheblichen Aufwand. Ich habe etwas Ähnliches gemacht, aber in der Vergangenheit nicht ganz dasselbe.

2). Überlappende Clusterings, die von MCL erzeugt werden, sind äußerst selten und immer ein Ergebnis der Symmetrie im Eingabediagramm. Die Standard-MCL-Implementierung, die die meisten Benutzer verwenden (von http://micans.org/mcl/), wird Überlappungen entfernen. Dies ist meiner Meinung nach kein Problem. Disclaimer: Ich habe MCL verfasst.

+0

Nun, das ist eigentlich eine gute Idee. die Verwendung verschiedener Inflationswerte ist eine Art Versuch und Irrtum, aber machbar. Vielen Dank. – user2560216

+0

Die aktuelle Entwicklung mcl hat eine neue Option, bei der ein Input-Clustering angegeben wird: Es erstellt einen Subgraphen für dieses Clustering (indem die Inter-Cluster-Kanten entfernt werden) und fährt mit dem Clustering fort. Dies könnte möglicherweise nützlich sein. Ein weiterer Punkt: Haben Sie versucht, Methoden zu verwenden, mit denen die Anzahl der Cluster angegeben werden kann, z. Graph Partitionierung durch spektrale Methoden (ich glaube, hmetis ist eine solche Methode) oder spektrale Clustering? (Und es muss viele andere solche Methoden geben). – micans

+0

@micans, ich bin neu bei MCL und bin gerade durch diese Folien gegangen: http://www.cs.ucsb.edu/~xyan/classes/CS595D-2009winter/MCL_Presentation2.pdf, wo es über den 'Power-Parameter erwähnt wird e ', das den Expansionsvorgang steuert. Ich sehe diesen Parameter nicht im offiziellen MCL-Handbuch: http://micans.org/mcl/man/mcl.html#options. Ist es irgendwo implizit gesetzt, wenn nicht, gibt es eine Richtlinie, um einen Wert dafür zu wählen? – MLister