Clustering von 4 Variablen, 139 Millionen Datenzeilen, 30 GBHallo allerseits,
Etwas schwierige Anfrage. Ein Interessent hat große Datenmengen und möchte diese alle analysieren.
Natürlich haben wir ihnen gesagt, dass eine Probenahme viel sinnvoller wäre. Aber sie wollen trotzdem alles analysieren.
Wir haben ihnen auch gesagt, dass sie viel RAM benötigen, was eine Serverinstallation bedeutet. Dennoch wollen sie wissen, ob es möglich sein wird, alle ihre Daten zu analysieren.
Welche Vorschläge haben Sie, wie wir darauf reagieren und ihnen die Gewissheit geben können, dass JMP für sie funktioniert? Oder, wenn Clustering auf dieser Datenmenge ein Nichtstarter wäre, wäre das auch gut zu wissen.
Die Details zu ihren Daten, die sie bereitgestellt haben, sind unten aufgeführt. Ich wollte zu diesem Zeitpunkt nicht nach weiteren Einzelheiten fragen, ohne mich für den besten Ansatz zur Beantwortung ihrer Anfrage zu entscheiden.
Wir möchten den Cluster für Daten im Wert von 10 Monaten für das folgende Gesamtvolumen ausführen:
Anzahl der Zeilen: 138734720 (138,7 Millionen Zeilen)
Anzahl der Spalten: 4
Datenvolumen: 30 GB
(Kopieren @MarcoSalfi da ich ab heute nicht mehr im Büro bin.)
Vielen Dank!
Phil
Betreff: Clustering von 4 Variablen, 139 Millionen Datenzeilen, 30 GBAlso - TL;DR - versuchen Sie, die Frage bis JMP 17 zu verschieben. Das klingt sehr nach etwas, an dem sie gearbeitet haben, um die Anforderungen von Genomikdaten zu erfüllen.
Bei etwas so Großem in JMP 16 müssen Sie es auf einem großen Crunch machen. Und es wird eine Weile dauern, Clustering durchzuführen, wenn es überhaupt funktioniert.Es sieht so aus, als wären weder K Means noch Hierarchical Multithreaded ( https://www.jmp.com/support/notes/49/280.html ), sodass sie keinen Nutzen aus einer hohen CPU-Anzahl ziehen.
Einige Dinge, die sie ausprobieren könnten, könnten sein:
- Stellen Sie sicher, dass alle Daten numerisch und komprimiert sind (dh führen Sie Cols > Utilities > Compress Selected Columns für alles aus).
- Kategoriale Daten sollten mit Labels to Code kodiert werden
- Versuchen Sie, die Daten umzuwandeln. Wenn es eine Zeitdomäne (oder etwas Zeitähnliches) gibt, können Sie sie auf logische Weise aufteilen, sodass FDE verwendet werden kann, um den Datensatz einfach zu erstellen und dann auf den FPCs zu gruppieren? Dies wäre nützlich für Sensorspuren usw.
Am besten,
M
Betreff: Clustering von 4 Variablen, 139 Millionen Datenzeilen, 30 GBWas versuchen sie auf einer praktischeren Ebene mit dem Clustering von 100 Millionen Zeilen mit nur 4 Variablen (oder sind es 3 und die 4-Spalte ist eine Beispiel-ID-Spalte). Suchen sie nach Mustern in den Reihen, um sie zu gruppieren? Möglicherweise sind in den Zeilen, die in Spalten aufgeteilt werden sollen, weitere Variablen versteckt (wie Uhrzeit/Datum). Das Clustern so vieler Zeilen scheint keinen Wert oder aussagekräftige Informationen zu erzeugen (geschweige denn, wie man sie visualisiert). Wenn sie nach Mustern suchen, müssen sie wahrscheinlich die Zeilen in zusätzliche Spalten (Faktoren) reduzieren, die die bekannten Gruppierungen darstellen.
Als @MikeD_Anderson angedeutet, wenn dies eine zeitbasierte Analyse ist, wäre es besser, FDE im Laufe der Zeit nach Mustern zu suchen, anstatt zu gruppieren. Zeit-/Datumsvariable(n) müssten herausgekitzelt werden.
Betreff: Clustering von 4 Variablen, 139 Millionen Datenzeilen, 30 GBIch wollte erwähnen, dass Daten dieser Größe in der Genomik ziemlich üblich sind, und ich halte die Kundenanfrage nicht für so extrem, noch denke ich, dass ein Server erforderlich ist.Für die neue Aufführungsarbeit in 17 zielen wir hauptsächlich auf breite Tische ab (Transponierung dessen, was Sie beschreiben), aber bestimmte Aufgaben wie Clustering können in hoher Form immer noch wünschenswert sein.
Ich habe gerade versucht, eine 138734720 x 4-Tabelle mit zufälligen normalen Daten auf einem Windows-PC mit 128 GB RAM zu erstellen und den neuesten Build von 17 auszuführen:
- K-Means: K=100, 30 Iterationen dauern 20 Minuten und verwenden 44 GB RAM
- Hierarchisch: Hybrid Ward, CPUs meistens auf 100% stecken, 16 Zyklen dauern 3,5 Stunden, 80 GB RAM
- PCA: 15 Minuten
Ein Trick bei der Verwendung von K-Means besteht darin, Repräsentanten für jeden Cluster zu speichern und dann hierarchisch mit ihnen zu arbeiten.