2011-08-30 18 views
6

R'deki arules paketi 'transaction' sınıfını kullanır. Yani apriori() işlevini kullanmak için mevcut verilerimi dönüştürmem gerekiyor. Ben 2 sütun ve kabaca 1.6 mm satır içeren bir Matrix var ve bu gibi verileri dönüştürmek için denedim:Büyük Veri arules paketindeki "transaction" işlemine dönüştü

transaction_data <- as(split(original_data[,"id"], original_data[,"type"]), "transactions") 

original_data benim veri matristir. Veri miktarı nedeniyle 64GB RAM ile en büyük AWS Amazon makinesini kullandım. Bir süre sonra elde

edilen vektör makinesinin bellek kullanımı% 60 'sadece' hala 'AnswerType'

vektör uzunluğu sınırı aşmaktadır. Bu R tabanlı bir sınırlama mı? Bu örneklemeyi örneklemeyi kullanmanın dışında bir yolu var mı? Verilerin sadece 1/4'ünü kullanırken, dönüşüm iyi çalıştı.

Düzenleme: Belirtildiği gibi, değişkenlerden biri karakter yerine bir faktördü. Değişimi değiştirdikten sonra hızlı ve doğru bir şekilde işlendi.

+0

Biraz daha fazla oynadım ve veri miktarını biraz azalttığımda, hata alıyorum 'error in unique.default (...) uzunluk 547601298 hashing için çok büyüktür Görünüşe göre bazı fonksiyonlar 'MKsetup()' sistem kodu içinde R, unique.c dosyasında vektörlerin belirli bir uzunluğu aşmasını engeller. – Marco

+0

'str (original_data)' sonuçlarını kaydedebilir misiniz? Verilerde ortaya çıkan bir sorun olup olmadığını bilmek iyi olur. – Iterator

+0

Sahte ama temsili bir örnek oluşturabilir misiniz? –

cevap

3

Sorunlarınızdan kaynaklandığından şüpheleniyorum, çünkü işlevlerden biri, indeks değerlerini tamsayılar (atlatmak yerine) kullanmaktadır. Her durumda, boyut çok büyük değil, bu yüzden bu şaşırtıcı. Belki de veriler, faktörler gibi karakterler gibi başka bir soruna sahip midir?

Genel olarak, yine de, veya mwhich aracılığıyla bölünebilen ve işleyebileceğiniz bigmemory aracılığıyla bellek eşlemeli dosyaları kullanmanızı öneririz. Verilerin boşaltılması sizin için çalışıyorsa, daha küçük bir örnek boyutu kullanabilir ve $$ tasarruf edebilirsiniz. :)

+0

Doğru yerde, değişkenlerden biri bir karakter yerine bir faktördü. 'Bigmemory' paketine bakacağım, tavsiye için teşekkürler – Marco

İlgili konular