Ich versuche, hierarchische Clustering auf meine Datenmenge anwenden, die aus 14039 Vektoren von Benutzern besteht. Jeder Vektor hat 10 Merkmale, wobei jedes Merkmal im Wesentlichen die Häufigkeit der von diesem Benutzer getaggten Tags ist. Ich benutze Scipy API für Clustering. Jetzt muss ich paarweise Abstände zwischen diesen 14039 Benutzern berechnen und diese Abstandsmatrix an die Verknüpfungsfunktion übergeben.Memory Fehler beim Berechnen paarweise Entfernungen in scipy
import scipy.cluster.hierarchy as sch
Y = sch.distance.pdist(allUserVector,'cosine')
set_printoptions(threshold='nan')
print Y
Aber mein Programm gibt mir Memory, während die Matrix selbst Abstandsberechnungs
File "/usr/lib/pymodules/python2.7/numpy/core/numeric.py", line 1424, in array_str
return array2string(a, max_line_width, precision, suppress_small, ' ', "", str)
File "/usr/lib/pymodules/python2.7/numpy/core/arrayprint.py", line 306, in array2string
separator, prefix)
File "/usr/lib/pymodules/python2.7/numpy/core/arrayprint.py", line 210, in _array2string
format_function = FloatFormat(data, precision, suppress_small)
File "/usr/lib/pymodules/python2.7/numpy/core/arrayprint.py", line 392, in __init__
self.fillFormat(data)
File "/usr/lib/pymodules/python2.7/numpy/core/arrayprint.py", line 399, in fillFormat
non_zero = absolute(data.compress(not_equal(data, 0) & ~special))
MemoryError
Jede Idee, wie dieses Problem beheben? Ist mein Datensatz zu groß? Aber ich denke, Clustering 14k Benutzer sollte nicht zu viel, dass es Speicherfehler verursachen sollte. Ich betreibe es auf i3 und 4 Gb Ram. Ich muss auch DBScan-Clustering anwenden, aber auch das benötigt eine Abstandsmatrix als Eingabe.
Alle Vorschläge geschätzt.
Edit: Ich bekomme den Fehler nur, wenn ich Y. Irgendwelche Ideen warum?
Ich denke, Sie haben seine Bearbeitung verpasst. Er erhält den Fehler nur, wenn er versucht, die gesamte Abstandsmatrix zu drucken. Es baut die riesige Saite, die sein Gedächtnis erschöpft. – agf
Das habe ich getan. Antwort wurde aktualisiert, um die Änderung zu reflektieren. Vielen Dank! –
Die vorbereitete Antwort war sehr hilfreich für ein verwandtes Problem. Bitte behalte diese Antwort, damit ich andere Fragen dazu verlinken kann. – ximiki