2011-08-30 9 views
6

आर में arules पैकेज वर्ग 'लेनदेन' का उपयोग करता है। तो फ़ंक्शन apriori() का उपयोग करने के लिए मुझे अपने मौजूदा डेटा को कन्वर्ट करने की आवश्यकता है। मैं 2 कॉलम और मोटे तौर पर 1.6 मिमी पंक्तियों के साथ एक मैट्रिक्स मिल गया है और इस तरह डेटा परिवर्तित करने की कोशिश की:बिग डेटा Arules पैकेज से "लेनदेन" में परिवर्तित

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

जहां original_data अपने डेटा मैट्रिक्स है। डेटा की मात्रा के कारण मैंने 64 जीबी रैम के साथ सबसे बड़ी एडब्ल्यूएस अमेज़ॅन मशीन का इस्तेमाल किया। थोड़ी देर के बाद मैं

जिसके परिणामस्वरूप वेक्टर 'AnswerType'

में वेक्टर लंबाई सीमा पार कर मशीन की मेमोरी उपयोग 60% पर 'केवल' अभी भी था। क्या यह आर-आधारित सीमा है? नमूनाकरण का उपयोग करने के अलावा इस के आसपास काम करने का कोई तरीका है? जब डेटा के 1/4 का उपयोग करते हुए परिवर्तन ठीक काम करता था।

संपादित करें: जैसा कि बताया गया है, चर के एक वर्ण चरित्र के बजाय एक कारक था। परिवर्तन बदलने के बाद जल्दी और सही संसाधित किया गया था।

+0

मैंने इसके साथ थोड़ा और खेला, और जब मैं थोड़ा सा डेटा कम करता हूं, तो मुझे त्रुटि मिलती है 'अद्वितीय.default (...) लंबाई में त्रुटि 547601298 हैशिंग के लिए बहुत बड़ी है ' स्पष्ट रूप से फ़ाइल के कोड कोड में कुछ फ़ंक्शन 'MKsetup() ', फ़ाइल में.c.c एक निश्चित लंबाई से अधिक होने से वैक्टर को रोकता है। – Marco

+0

क्या आप 'str (original_data) 'के परिणाम पोस्ट कर सकते हैं? यह जानना अच्छा होगा कि डेटा में कुछ समस्या उत्पन्न हो रही है या नहीं। – Iterator

+0

क्या आप नकली उत्पन्न कर सकते हैं लेकिन एक प्रतिनिधि उदाहरण? –

उत्तर

3

मुझे संदेह है कि आपकी समस्या उत्पन्न हो रही है क्योंकि फ़ंक्शंस में से एक इंडेक्स मानों के लिए पूर्णांक (बजाए, कहें, फ्लोट्स) का उपयोग करता है। किसी भी मामले में, आकार बहुत बड़ा नहीं है, इसलिए यह आश्चर्यजनक है। हो सकता है कि डेटा में कुछ अन्य समस्याएं हों, जैसे चरित्र कारक के रूप में?

सामान्य में, हालांकि, मैं वास्तव में, स्मृति मैप की गई फ़ाइलों का उपयोग कर bigmemory के माध्यम से है, जो आप भी bigsplit या mwhich के माध्यम से विभाजित है और प्रक्रिया कर सकते हैं सलाह देते हैं। यदि आपके लिए डेटा ऑफ़लोड करना आपके लिए काम करता है, तो आप एक बहुत छोटा उदाहरण आकार भी उपयोग कर सकते हैं और $$ बचा सकते हैं। :)

+0

आप कहां सही हैं, एक चर के बजाय चर का एक कारक था। मैं सलाह के लिए धन्यवाद, 'bigmemory' पैकेज में देखता हूँ – Marco

संबंधित मुद्दे