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
Может ли кто-нибудь сказать мне, почему размер моего кадра данных увеличивается, когда я преобразовал его в разреженную матрицу?Преобразование фрейма данных в разреженную матрицу в три раза больше его размера
Редкое преобразование матрицы становится бесполезным, если в нашем кадре данных нет или меньше нулей? Я хочу, чтобы матрица попала в xgboost.
Можете ли вы рассказать мне какие-либо другие трюки с сохранением памяти, поскольку в этом случае неудачное преобразование матрицы оказывается неудачным? пожалуйста, направляйте
Насколько я знаю, 'редкая матрица' сохраняет память только тогда, когда она разрежена? Матрица, очевидно, представляет собой плотную матрицу, как бы вы ожидали, что она сохранит память для вас? – Psidom
@Psidom абсолютно прав; и если вы ищете способы сжатия плотной матрицы: такие методы существуют во многих случаях, но это сложная тема. Их применимость зависит от контекста, т. Е. От использования данных в матрице. Популярным примером является сжатие файлов изображений. – RHertel