In R versuche ich mit einer großen Matrix zu arbeiten (39.146.166 Zeilen mal 127 Spalten) und ich habe Speicherprobleme mit einer Anzahl von Operationen darauf. Ich habe festgestellt, dass etwa 35% der Einträge in der Matrix nicht Null sind und der Rest nur Nullen sind. Ist das spärlich genug, dass ich etwas Speicher, der diese Matrix repräsentiert, mit einer der spärlichen Matrix-Klassen von R speichern würde? Was ist eine gute Faustregel, um zu bestimmen, wann eine Matrix sich nur spärlich darstellt?Wie spärlich muss eine Matrix sein, um sich als spärlich darzustellen?
Antwort
Ich glaube nicht, dass die spärliche Darstellung so viel kompakter sein wird. Sie benötigen drei Zahlen für jedes numerische Element außer einer impliziten Null. Selbst wenn zwei davon 4-Byte-Ganzzahlen sind, ist der Speicherplatz im Speicher immer noch größer als eine "serielle" Speicherstrategie.
Durch diese Argumentation wird alles über 50% mehr Speicherplatz benötigen, aber ich poste von einem iPhone unter SF Bay, so kann nicht mit "object.size" testen.
Es gibt eine Reihe von dünn besetzten Matrixformaten, und nicht alle davon erfordern 3 Zahlen pro Eintrag ungleich null. Zum Beispiel benötigt dieses Format ungefähr 2 für meinen Fall: http://netlib.org/linalg/html_templates/node92.html –
@RyanThompson: Dieses Format benötigt 3 Vektoren, nicht zwei –
Nur zwei dieser Vektoren haben jeweils einen Eintrag Datenpunkt. Der letzte Vektor hat nur ein Element für jede Spalte, was in meinem Fall vernachlässigbar ist. –
- 1. konvertieren Wörterbuch zu spärlich Matrix
- 2. Matrix Completion auf 98% spärlich Matrix
- 3. Fehler in scipy spärlich diags Matrix Bau
- 4. Filterwerte von einer scipy spärlich Matrix
- 5. CSV zu spärlich Matrix in Python
- 6. Eigen konvertieren dichte Matrix zu spärlich
- 7. Direkt spärlich Adjazenzmatrix erstellen -
- 8. Können ZIP-Dateien spärlich/nicht zusammenhängend sein?
- 9. python matplotlib plot spärlich Matrixmuster
- 10. spärlich Zuordnungsliste in Python
- 11. MATLAB Large spärlich inneres Produkt
- 12. spärlich Dateiverwendung in Python
- 13. Unboxing, (spärlich) Matrizen und Haskell-Vektorbibliothek
- 14. spärlich besetzte Nachschlagetabelle in SQL
- 15. Speichern von numpy spärlich Matrix in HDF5 (PyTables)
- 16. konvertieren einfache Triplet-Matrix (Slam) zu spärlich Matrix (Matrix) in R
- 17. Holen Sie sich top-n Elemente jeder Zeile in einer scipy spärlich Matrix
- 18. Pandas Dataframe in spärlich Wörterbuch von Wörterbüchern
- 19. transform scipy spärlich csr zu Pandas?
- 20. Warum array.indexOf (undefined) nicht funktioniert, wenn das Array spärlich ist
- 21. Graphviz: flache, aber spärlich verbundene Grafik in mehrere Zeilen aufteilen?
- 22. Benennen Sie diese Netztopologie? Mehrfachsternnetzwerke spärlich verbunden durch Blätter
- 23. Parsen alle Null spärlich Vektoren mit pyspark SparseVectors
- 24. (R) Fehler in solve() 'a' muss eine numerische Matrix sein
- 25. Batch CUDA Lösung von spärlich gebändert Ax = b für verschiedene b
- 26. Was ist der schnellste Weg, um spärliche boolesche Matrizen darzustellen und zu multiplizieren?
- 27. Matrix Inversion R mit Solve und andere (Fehler 'a' muss eine komplexe Matrix sein)
- 28. Wie konvertiert man eine spärliche Matrix in eine dichte Matrix in Eigen
- 29. Timer um AI Reaktionszeiten darzustellen
- 30. React: AppStore Listener muss eine Funktion sein
Sie können [diesen Artikel] (http://www.johnmyleswhite.com/notebook/2011/10/31/using-sparse-matrices-in-r/) hilfreich finden. – nrussell