2013-11-27 7 views
9

20 या उससे अधिक लेबल के साथ ~ 50,000 प्रविष्टियों के डेटा सेट पर आरएफ क्लासिफायर चलाने की कोशिश कर रहा है, जिसे मैंने ठीक किया जाना चाहिए, लेकिन मैं फिट होने की कोशिश करते समय निम्नलिखित में आ रहा हूं ...रैंडम वन क्लासिफायर सेगमेंटेशन फॉल्ट

Exception MemoryError: MemoryError() in 'sklearn.tree._tree.Tree._resize' ignored 
Segmentation fault (core dumped) 

डेटा सेट TfidfVectorizer के माध्यम से पारित किया गया है और फिर आयामी कमी के लिए एन = 100 के साथ truncatedSVD पारित किया गया है। RandomForestClassifier कम से कम बिंदु खोजने के प्रयास में n_jobs = 1 और n_estimators = 10 के साथ चल रहा है जिस पर यह काम करेगा। सिस्टम 4 जीबी रैम के साथ चल रहा है और आरएफ ने अतीत में इसी तरह के डेटा सेट पर काम किया है, जिसमें बहुत अधिक अनुमानक इत्यादि हैं। विज्ञान संस्करण सीखने के मौजूदा संस्करण 0.14.1 पर चल रहा है।

कोई सुझाव?

धन्यवाद

+2

इसे छोटी मात्रा में डेटा या निचले एन पर चलाने का प्रयास करें। देखें कि क्या एक ही त्रुटि आती है। मेरे पास 4 जीबी रैम भी है और मैंने कुछ सुंदर बड़े डेटासेट पर यादृच्छिक वनों का उपयोग किया है (यह बड़ा नहीं है) और कभी भी यह त्रुटि नहीं मिली है। कृपया मुझे बताएं कि क्या आपको इसे कम करते समय भी वही त्रुटि मिलती है। –

+5

आपको इसकी रिपोर्ट [सिकिकिट बग ट्रैकर] (https://github.com/scikit-learn/scikit-learn/issues) पर रिपोर्ट करनी चाहिए यदि यह पुन: उत्पन्न हो। –

+0

मैं @RyanSaxe द्वारा सुझाए गए डेटासेट के आकार को कम करने का प्रयास करूंगा। मैंने डेटासेट पर आरएफ को बहुत बड़ा चलाया है लेकिन रैम –

उत्तर

1

segfaults हमेशा कीड़े हैं। यदि mallocRandomForest के अंदर विफल रहता है तो इसे पकड़ा जाना चाहिए, और यह मेरा सबसे अच्छा अनुमान है कि यह आपके साथ हो रहा है। जैसा कि एक टिप्पणीकार ने पहले ही कहा है, आपको इसे RandomForest बग ट्रैकर को रिपोर्ट करनी चाहिए। लेकिन mallocशायद स्मृति स्थिति से बाहर होने की वजह से विफल रहा है, इसलिए अपनी आयामीता को कम करें, अपने प्रशिक्षण डेटा सेट आकार को कम करें, अधिक मेमोरी प्राप्त करें, या अधिक मेमोरी वाले सिस्टम पर चलाएं।

+0

http://stackoverflow.com/questions/4220965/segmentation-fault-due-to-lack-of-memory-in-c – denson

0

'psutil' लाइब्रेरी का उपयोग करने का प्रयास करें (लिंक: https://pypi.python.org/pypi/psutil/0.5.0)। इस पुस्तकालय के लिए धन्यवाद, आप निम्नलिखित समारोह के साथ अपने सिस्टम से उपलब्ध स्मृति की मात्रा monitorize कर सकते हैं: अगर आपके सिस्टम के लिए पर्याप्त स्मृति नहीं है पता लगाने के लिए

psutil.phymem_usage() 

यह आपकी मदद करेंगे या अगर यह की एक समस्या है आपके कोड।

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