R'de bir faktör matrisine sahibim ve bunu her bir faktörün olası tüm seviyeleri için 0-1-1 kukla değişkenler matrisine dönüştürmek istiyorum. Bununla birlikte, bu "kukla" matris çok büyüktür (91690x16593) ve çok seyrektir. Onu seyrek bir matriste saklamam gerekiyor, yoksa 12GB'lık ramıma uymuyor.R: seyrek matris dönüşümü
Şu anda, aşağıdaki kodu kullanıyorum ve çok iyi çalışıyor ve saniye sürer: Ancak, ben R e1071 paketini kullanmak ve sonunda write.matrix.csr()
ile formatını LIBSVM için bu matrisi kaydetmek istediğiniz
library(Matrix)
X_factors <- data.frame(lapply(my_matrix, as.factor))
#encode factor data in a sparse matrix
X <- sparse.model.matrix(~.-1, data = X_factors)
, bu yüzden önce benim seyrek matrisi SparseM formatına dönüştürmem gerekiyor.
yapmaya çalıştığım:library(SparseM)
X2 <- as.matrix.csr(X)
ama çok çabuk benim RAM doldurur ve sonunda çöküyor R. Dahili olarak, as.matrix.csr
ilk önce, seyrek matrisi bilgisayarımın belleğine sığmayan yoğun bir matrise dönüştürüyor.
Diğer seçeneğim seyrek olarak matrisimi doğrudan SparseM formatında oluşturmak olacaktır.
as.matrix.csr(X_factors)
'u denedim, ancak bir veri çerçevesi karesini kabul etmiyor.
SparseM paketinde sparse.model.matrix(~.-1, data = X_factors)
eşdeğeri var mı? Dokümanlarda aradım ama bulamadım.
Mükemmel bir şekilde çalıştı. Hizli yanit icin tesekkurler. –