2012-04-05 16 views
5

मेरे पास आर (1 एम + पंक्तियों द्वारा 1 एम + पंक्तियों) में एक बड़ा डेटासेट है जिसे मैं एक यादृच्छिक वन (randomForest पैकेज का उपयोग करके) को रिग्रेशन उद्देश्यों के लिए प्रशिक्षित करने के लिए उपयोग करना चाहता हूं। दुर्भाग्यवश, मुझे एक बार में पूरी चीज करने की कोशिश करते समय Error in matrix(0, n, n) : too many elements specified त्रुटि मिलती है और डेटा के सबसेट पर चलने पर पर्याप्त मेमोरी त्रुटियों को आवंटित नहीं कर सकता - 10,000 या उससे अधिक अवलोकनों तक।एक बड़े डेटासेट पर यादृच्छिक वन

यह देखकर कि कोई मौका नहीं है कि मैं अपनी मशीन पर और अधिक रैम जोड़ सकता हूं और यादृच्छिक जंगल मॉडल की कोशिश करने की कोशिश कर रहे प्रक्रिया के प्रकार के लिए बहुत उपयुक्त हैं, मैं वास्तव में यह काम करना चाहता हूं।

कोई सुझाव या कामकाज विचारों की बहुत सराहना की जाती है। 1 लाख एक्स 1 लाख:

+0

'निकटता = FALSE' के साथ [joran] के रूप में चलाएं (http://stackoverflow.com/users/324364/joran) ने सुझाव दिया और यह बताएं कि यह काम करता है या नहीं। – smci

+0

आपकी समस्या के आस-पास एक अपेक्षाकृत सरल तरीका आपके इनपुट मैट्रिक्स को सब्सक्राइब करना होगा। वह आंकड़ा शायद आपको आकार 10K x 10K के उप-समूह के साथ एक बेहतर मॉडल नहीं देगा। –

+1

क्या आपने लाइब्रेरी (एच 2o) पर एक नज़र डाली है? यह बहुत बड़ी समस्याओं के लिए ठीक है, देखें http://www.r-bloggers.com/benchmarking-random-forest-implementations/ –

उत्तर

11

आप संभावना randomForest पूछ रहे हैं डेटा, अगर आप इसके बारे में सोचते हैं जिसके लिए निकटता मैट्रिक्स बनाने के लिए, पागलपन की हद तक बड़ा हो जाएगा। इस आकार की एक मैट्रिक्स की आवश्यकता होगी चाहे आप sampsize को कितना छोटा सेट करें। दरअसल, त्रुटि संदेश को गुगल करना इस बात की पुष्टि करता है, पैकेज लेखक states के रूप में पूरे स्रोत कोड में एकमात्र जगह जहां n,n) पाया जाता है निकटता मैट्रिक्स की गणना में है।

लेकिन अधिक सहायता करना मुश्किल है, बशर्ते आपने वास्तविक कोड के बारे में कोई विवरण नहीं दिया हो।

+0

मैं उसी निष्कर्ष पर पहुंचे लेकिन समझ में नहीं आता कि इसकी आवश्यकता क्यों है और यदि इसकी जरूरत के बिना आरएफ को प्रशिक्षण देने का कोई तरीका है। – ktdrv

+1

मुझे यकीन नहीं है कि आपका क्या मतलब है। निकटता निर्धारित करना = FALSE वह निकटता को गणना करने से रोक देगा। – joran

+0

मैंने अभी एक परीक्षण किया है और यह वास्तव में जंगल है जो बहुत बड़ा है। मेरे विशेष परीक्षण मामले में, 'keep.forest = F' के परिणामस्वरूप 14 एमबी परिणाम होते हैं, जबकि' निकटता = गलत 'में कोई फर्क नहीं पड़ता है: परिणाम 232 एमबी था। – Wayne

1

मैं आर में bigrfpackage की अनुशंसा करता हूं, क्योंकि यह आपके द्वारा सामना की जाने वाली समस्या के प्रकार के लिए डिज़ाइन किया गया है (यानी, पर्याप्त रैम की कमी)। दुर्भाग्यवश, इस समय, bigrf को सीआरएएन से हटा दिया गया है, लेकिन यह अभी भी अभिलेखागार में उपलब्ध है (उत्तर देखें: Can't install bigrf package)।

एक और दृष्टिकोण में विभिन्न प्रशिक्षण डेटा के आधार पर आरएफ को संयोजित करना शामिल हो सकता है, लेकिन परिणाम को गैरकानूनी माना जा सकता है (उत्तर: Combining random forests built with different training sets in R विवरण के लिए)। बाद के पोस्ट में उल्लिखित संशोधन ने मेरे लिए काम किया, लेकिन मैंने जो संयुक्त आरएफ चलाया वह कभी-कभी बेहतर होता था, और कभी-कभी केवल एक ही आरएफ (वाईएमएमवी) का उपयोग करने के सापेक्ष खराब होता था।

+0

मुझे गलतफहमी हो सकती है, लेकिन मेरा मानना ​​है कि 'bigrf'package को प्रतिगमन संभालना है। http://finzi.psych.upenn.edu/library/bigrf/html/bigrf-package।एचटीएमएल – neanderslob

+0

आप सही हैं: मैं उनके पैकेज सार को गलत तरीके से पढ़ता हूं। मेरे मूल जवाब को संपादित करना। धन्यवाद! – Prophet60091

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