Visualisierungssoftware für Clustering


14

Ich möchte ~ 22000 Punkte gruppieren. Viele Clustering-Algorithmen funktionieren besser mit besseren Anfangsschätzungen. Welche Tools können mir einen guten Eindruck von der rauen Form der Daten vermitteln?

Ich möchte in der Lage sein, meine eigene Entfernungsmetrik zu wählen, also wäre ein Programm, zu dem ich eine Liste paarweiser Entfernungen hinzufügen kann, in Ordnung. Ich möchte in der Lage sein, eine Region oder einen Cluster auf dem Display hervorzuheben und eine Liste der Datenpunkte in diesem Bereich zu erhalten.

Freie Software bevorzugt, aber ich habe bereits SAS und MATLAB.

Antworten:


11

GGobi (http://www.ggobi.org/) ist zusammen mit dem R-Paket rggobi perfekt für diese Aufgabe geeignet.

Beispiele finden Sie in der zugehörigen Präsentation: http://www.ggobi.org/book/2007-infovis/05-clustering.pdf


Danke für den Vorschlag, @Shane. ggobi sieht vielversprechend aus, ich installiere es gerade und werde es versuchen :)

1
Funktioniert gut auf anderen Plattformen, aber gtk spielt nicht gut mit OSX.

3
Gtk ist in Ordnung für OSX.
Hadley

5

Die Untersuchung von Clustering-Ergebnissen in großen Dimensionen kann in R mit den Paketen clusterfly und gcExplorer durchgeführt werden . Suchen Sie mehr hier .


Danke, aber gibt es einen Vorteil, wenn Sie clusterfly verwenden, anstatt ggobi direkt anzurufen? Die Website erwähnt nur Clustering-Methoden, die interessant sind, aber noch nicht mein primäres Ziel sind. gcexplorer verfügt über eine weniger informative Website, dient jedoch anscheinend zur Visualisierung von Daten, nachdem diese bereits in Cluster aufgeteilt wurden. Ich werde es versuchen, sobald ich an diesem Punkt angelangt bin, aber nicht das, was ich gerade brauche.

4

(Monate später) Ein guter Weg, um sich k-Cluster vorzustellen und den Effekt verschiedener k zu sehen, besteht darin, einen Minimum-Spanning-Tree zu erstellen und die längsten Kanten zu betrachten. Beispielsweise,

Alt-Text

Hier gibt es 10 Cluster mit 9 längsten Kanten 855 899 942 954 1003 1005 1069 1134 1267.
Für 9 Cluster reduzieren Sie die Cyan 855-Kante. für 8 die lila 899; und so weiter.

Der Single-Link-K-Clustering-Algorithmus ... ist genau der Kruskal-Algorithmus ..., der dem Auffinden eines MST und dem Löschen der k-1 teuersten Kanten entspricht.

- Wayne, Gierige Algorithmen .

22000 Punkte, 242 Millionen paarweise Abstände, ~ 1 Gigabyte (float32): könnte passen.

Informationen zum Anzeigen eines hochdimensionalen Baums oder Diagramms in 2d finden Sie unter Multidimensionales Skalieren (ebenfalls aus Kruskal) und in der umfangreichen Literatur zur Dimensionsreduktion. In Dimensionen> 20 liegen die meisten Abstände jedoch in der Nähe des Medians, sodass die Dimensionsreduktion dort meiner Meinung nach nicht funktionieren kann.


2

Ich habe bei einem meiner Projekte gute Erfahrungen mit KNIME gemacht. Es ist eine ausgezeichnete Lösung für das schnelle Erkunden und Zeichnen von Daten. Darüber hinaus bietet es die nahtlose Integration von R- und Weka-Modulen.


Sieht nach einem nützlichen Programm aus, aber ihre Webseite kann mich nicht überzeugen, dass sie genau dieses Problem lösen wird. Es sieht so aus, als wäre es zu umfangreich, zu viele Funktionen interessieren mich nicht und machen es schwierig, die einfachen Dinge zu tun. Ich werde es mir noch einmal ansehen, wenn die anderen Optionen nicht funktionieren.


1

Schauen Sie sich Cluster 3.0 an . Ich bin mir nicht sicher, ob es alles tun wird, was Sie wollen, aber es ist ziemlich gut dokumentiert und lässt Sie aus ein paar Entfernungsmetriken auswählen. Die Visualisierung erfolgt über ein separates Programm namens Java TreeView ( Screenshot ).


Vielen Dank für den Vorschlag, aber die Möglichkeit, mein Entfernungsmaß selbst zu bestimmen, ist von entscheidender Bedeutung, daher funktioniert dies für mich nicht. Jemand anderes mag es jedoch nützlich finden.

1

GGobi sieht dafür interessant aus. Ein anderer Ansatz könnte darin bestehen, Ihre Ähnlichkeits- / inversen Distanzmatrizen als Netzwerk-Adjazenzmatrizen zu behandeln und diese in eine Netzwerk-Analyseroutine einzuspeisen (z. B. entweder igraph in R oder vielleicht Pajek). Mit diesem Ansatz würde ich experimentieren, indem ich die Knotenabstände an verschiedenen Schnittpunkten in eine binäre Bindung schneide.


Ich habe darüber nachgedacht, aber es scheint keinen vernünftigen Schnittpunkt zu geben, und Domain-Experten können auch keinen rechtfertigen.

Ich würde denken, dass dies für Ihren angegebenen Zweck ziemlich willkürlich sein könnte - ehrlich gesagt, müssen Sie möglicherweise nicht einmal in Binärdateien schneiden, sondern nur ein Verbindungswertetikett auf einer Skala von 1 bis zu einer überschaubaren Zahl neu codieren und die Verbindungen dann nach und nach unter ausblenden / anzeigen verschiedene Ebenen (optional auch das Verstecken / Beseitigen von Anhängern & Waisen auf dem Weg). Reagieren Sie nicht direkt auf Ihre Anfrage wie geschrieben, sondern verwenden Sie eine hybride Clustermethode, bei der keine anfänglichen Zentroide zum Identifizieren vorläufiger Cluster verwendet werden, und speisen Sie dann die Zentroide aus diesem Ergebnis in Ihre neue Analyse ein.
Shelby

Ich vermute, Sie wollen versuchen, viele verschiedene Grenzwerte festzulegen, bis ich ein paar gute Ergebnisse erhalte. Ich möchte dies aus Standardgründen für Mehrfachvergleiche vermeiden. Betreff: Ihr zweiter Vorschlag Ich glaube, ich vertraue mir einfach besser als diese Algorithmen. Ich benutze den Computer, um große Datenmengen zu verarbeiten, die zu mühsam sind, um sie von Hand zu bearbeiten, und nicht, um mein Denken zu ersetzen.

1
Sie verwenden die Sprache zum Testen von Hypothesen, sprechen jedoch gleichzeitig über einen sehr explorativen Ansatz, bei dem Sie wissen, wann Sie ihn sehen. Es ist also nicht klar, was Ihr Ziel für diesen Teil Ihrer Analyse wirklich ist. Wenn Sie Hypothesen haben, die Sie später testen (z. B. die Vorhersage der Cluster-Mitgliedschaft oder die Verwendung der Cluster-Mitgliedschaft als Prädiktor), können Sie festlegen, dass Sie keine Maßnahmen ergreifen, die zu Verzerrungen führen. Aber "Multiple Compare" -Probleme sind nicht wirklich das explorative Problem, das Sie beschreiben. Die Absperrungen dienen nur dazu, Ihnen zu zeigen, was sich dort befindet - aber Ihr Vertrauen kann immer noch fehl am Platz sein.
Shelby

1

Weka ist ein Open-Source-Programm für Data Mining (in Java verfügbar und erweiterbar), Orange ist ein Open-Source-Programm und eine Bibliothek für Data Mining und maschinelles Lernen (in Python geschrieben). Beide ermöglichen eine bequeme und effiziente visuelle Erkundung mehrdimensionaler Daten


Auf der Seite mit den Features von Orange steht "In Bearbeitung" und es werden keine Screenshots aufgeführt, die meiner Arbeit entsprechen. weka hat überhaupt keine Featureliste. Sie können vielleicht tun, was ich will, aber wenn sie die Funktion nicht bewerben, wie kann ich das beurteilen? Ich bin mehr von den anderen Möglichkeiten überzeugt.

0

Die kostenlose numerische Software DataMelt enthält eine Java-Bibliothek namens JMinHep. Bitte beachten Sie das Handbuch im Abschnitt "Datenclustering". Es bietet eine grafische Benutzeroberfläche zur Visualisierung mehrdimensionaler Datenpunkte in XY und zur Ausführung einer Reihe von Datencluster-Algorithmen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.