library(Matrix)
a<-data.frame(1:1000)
object.size(a)
4672 bytes
b<-as.matrix(a)
object.size(b)
4464 bytes
d<-as(b,'dgCMatrix')
object.size(d)
13520 bytes
e<-Matrix(b, sparse = TRUE)
object.size(e)
13520 bytes
Kann mir jemand sagen, warum die Größe meines Datenrahmens zunimmt, wenn ich es in eine spärliche Matrix umwandelte?Konvertieren von Datenrahmen in Sparse-Matrix dreifache Größe
Wird die Sparse-Matrix-Konvertierung nutzlos, wenn es in unserem Datenrahmen keine oder weniger Nullen gibt? Ich möchte, dass eine Matrix in xgboost eingeht.
Können Sie mir andere Speicherspartricks sagen, da die Sparse-Matrix-Konvertierung in diesem Fall fehlgeschlagen ist? bitte Anleitung
Soweit ich weiß, speichert 'Sparse Matrix' Speicher nur, wenn es spärlich ist? Deine Matrix ist offensichtlich eine dichte Matrix, wie würdest du erwarten, dass sie dir Speicher spart? – Psidom
@Psidom ist absolut richtig; und wenn Sie nach Möglichkeiten suchen, eine dichte Matrix zu komprimieren: Solche Methoden existieren für viele Fälle, aber dies ist ein komplexes Thema. Ihre Anwendbarkeit hängt vom Kontext ab, d. H. Von der Verwendung der Daten in der Matrix. Ein beliebtes Beispiel ist die Komprimierung von Bilddateien. – RHertel