2012-02-20 13 views

उत्तर

25

गुम मूल्यों को बस विज्ञान-सीखने में समर्थित नहीं है। इससे पहले मेलिंग सूची पर चर्चा हुई है, लेकिन वास्तव में उन्हें संभालने के लिए कोड लिखने का कोई प्रयास नहीं है।

तुम जो भी करते हैं, नहीं उपयोग NaN मान अनुपलब्ध एन्कोड करने के लिए, के बाद से एल्गोरिदम के कई Nans युक्त नमूनों को संभालने के लिए मना कर दिया है।

उपर्युक्त उत्तर पुराना है; scikit-learn की नवीनतम रिलीज में कक्षा Imputer है जो सरल, प्रति-सुविधा अनुपलब्ध मान प्रतिपादन करता है। आप एनएएन युक्त एरे को खिला सकते हैं ताकि वे इसी सुविधा के माध्य, औसत या मोड से बदल सकें।

+0

मैं सिर्फ यह ध्यान रखना चाहता था कि यादृच्छिक नैन मूल्यों को अच्छी तरह से संभालता है –

+0

क्या यह अभी भी जीबीएम के साथ मामला है? क्या कोई कारण है कि विज्ञान सीखने वाला संस्करण आर में कोडिंग को दर्पण नहीं करता है जो गुम मूल्यों के साथ गर्व से व्यवहार करता है? यह उस एल्गोरिदम की आकर्षक विशेषताओं में से एक है और मेरी इच्छा है कि इसे साइकिटक में कोड किया गया हो। –

+0

@B_Miner: व्यावहारिक रूप से सभी विज्ञान-सीखने वाले अनुमानकों के लिए यह मामला है। लापता मूल्य हैंडलिंग सीखने से अलग से किया जाता है, लेकिन दोनों को 'पाइपलाइन' का उपयोग करके जोड़ा जा सकता है। –

11

मेरी इच्छा है कि मैं एक साधारण उदाहरण प्रदान कर सकूं, लेकिन मुझे पता चला है कि RandomForestRegressor नैन की कृपा से संभालता है। नैन के बढ़ते प्रतिशत के साथ सुविधाओं को जोड़ने पर प्रदर्शन लगातार खराब हो जाता है। नैन के बहुत उपयोगी जानकारी को इंगित करते समय भी "बहुत अधिक" नैन की विशेषताएं पूरी तरह अनदेखी की जाती हैं।

एएफएआईके एल्गोरिदम कभी भी "इस्नान" या "आइसमिंग" निर्णय पर विभाजित नहीं होगा। एल्गोरिदम पेड़ के एक विशेष स्तर पर सुविधा को अनदेखा कर देगा यदि सुविधा में केवल एक ज्ञात मान है और शेष सुविधा के मान नैन/अज्ञात हैं।

मैंने समस्या से निपटने के लिए विभिन्न प्रतिनियुक्ति तकनीकों का प्रयास किया है (माध्य/माध्य के साथ प्रतिस्थापित करें, एक अलग मॉडल का उपयोग कर गुम मूल्यों की भविष्यवाणी करें), लेकिन परिणाम मिश्रित किए गए थे।

इसके बजाए, यह मेरा समाधान है: नैन को एक एकल, स्पष्ट रूप से बाहर की दूरी (जैसे -1.0) के साथ बदलें। यह वृक्ष को "अज्ञात-मूल्य बनाम ज्ञात-मान" मानदंडों पर विभाजित करने में सक्षम बनाता है। हालांकि, यह ध्यान रखना महत्वपूर्ण है कि इस तरह के ऑफ-ऑफ-रेंज मानों का उपयोग करने के साथ प्रतिस्थापित करने में कोई समस्या है: ज्ञात मानों को बाहर के मूल्य के साथ एक साथ लाया जा सकता है जब एल्गोरिदम विभाजन के लिए एक अच्छी जगह खोजने की कोशिश करता है । उदाहरण के लिए, न्यूनतम ज्ञात मान आपके आउट-ऑफ-रेंज वैल्यू के साथ लम्बा हो सकता है (आपके ज्ञात 0 को -1 के साथ लम्बा हुआ है जिसे आपने अपने नैन मानों को प्रतिस्थापित करने के लिए उपयोग किया था)। तो आपका मॉडल बदल सकता है कि आपका आउट ऑफ़ द रेंज मान न्यूनतम से कम है या यदि यह अधिकतम से अधिक है (यह क्रमशः न्यूनतम मूल्य या अधिकतम मूल्य के साथ लम्बा हो सकता है)।

+0

गुम मूल्यों के लिए "स्पष्ट रूप से बाहर की सीमा" मानों का उपयोग करने का शानदार विचार। यह निर्णय पेड़ के लिए काफी अच्छी तरह से काम करना चाहिए। – pansen

3

Orange एक अन्य पायथन मशीन लर्निंग लाइब्रेरी है जिसमें प्रतिशोध के लिए समर्पित सुविधाएं हैं। मुझे उनका उपयोग करने का मौका नहीं मिला है, लेकिन जल्द ही हो सकता है, क्योंकि शून्य, औसत, या औसत के साथ नैन को बदलने की सरल विधियों में सभी में महत्वपूर्ण समस्याएं हैं।

+2

लिंक अब मान्य नहीं है। मुझे लगता है कि वर्तमान यूआरएल है: http://docs.orange.biolab.si/reference/rst/Orange.feature.imputation.html। – JustAC0der

+0

हाँ आप सही हैं। फिक्स्ड। –

8

डेटा पर RandomForestRegressor चलाते समय, मैं बहुत ही समान समस्या में आया हूं। एनए मूल्यों की उपस्थिति भविष्यवाणियों के लिए "नैन" फेंक रही थी। कई चर्चाओं के आसपास स्क्रॉल करने से, ब्रेमन द्वारा प्रलेखन क्रमशः निरंतर और स्पष्ट डेटा के लिए दो समाधान की सिफारिश करता है।

  1. स्तंभ (फीचर) से डेटा के माध्य की गणना करें और का उपयोग इस (सतत डेटा)
  2. निर्धारित सबसे अक्सर होने वाली श्रेणी और प्रयोग इस (स्पष्ट डाटा)

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

8

किसी औसत/औसत/अन्य स्टेट के साथ गुम मूल्य को बदलने से समस्या हल नहीं हो सकती है क्योंकि तथ्य गुम है कि महत्वपूर्ण है। उदाहरण के लिए भौतिक विशेषताओं पर एक सर्वेक्षण में एक उत्तरदाता अपनी ऊंचाई नहीं डाल सकता है अगर वे असामान्य रूप से लंबा या छोटा होने के बारे में शर्मिंदा थे। इसका मतलब यह होगा कि गुम मूल्यों से संकेत मिलता है कि उत्तरदाता असामान्य रूप से लंबा या छोटा था - औसत मूल्य के विपरीत।

आवश्यक मॉडल है जिसमें अनुपलब्ध मानों के लिए एक अलग नियम है, गायब मूल्य का अनुमान लगाने का कोई भी प्रयास मॉडल की भविष्यवाणी शक्ति को कम करेगा।

+1

सच है। इसके अलावा, कई मामलों में डेटा बहुत भारी हो सकता है (मान लें कि प्रत्येक पंक्ति का 20% भरा हुआ है)। डीटी-आधारित विधि इसे ऊपर slurp करने में सक्षम होना चाहिए - और यदि सही ढंग से उपयोग किया जाता है, तो मॉडल लागू डेटा के साथ एक से बेहतर हो सकता है। – user48956

+0

@ जॉनी वी आप "अलग नियम वाले मॉडल" से क्या मतलब रखते हैं? – KouchakYazdi

+0

मैं जिस रणनीति का उपयोग करता हूं वह एक लापता मूल्य ध्वज कॉलम जोड़ने के साथ-साथ मध्यस्थ या मोड के साथ गुम मूल्य को भरना है। यह तब तक होता है जब रिकॉर्ड को मॉडल द्वारा सामान्य के रूप में माना जा सकता है जब तक कि गुम मूल्य महत्वपूर्ण न हो, उस स्थिति में मॉडल लापता डेटा ध्वज के लिए नियम बनायेगा। उदाहरण के लिए "अगर रिकॉर्ड में डेटा पॉइंट गुम हो गया है तो टाइप ए के रूप में वर्गीकृत करें" –

1

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

1

जब आप इनपुट सुविधाओं पर गुम मूल्यों में भाग लेते हैं, तो व्यवसाय का पहला क्रम यह नहीं है कि लापता को कैसे बाधित किया जाए। सबसे महत्वपूर्ण सवाल यह है कि आपको क्यों चाहिए। जब तक आपके पास स्पष्ट और निश्चित दिमाग न हो, तब तक डेटा के पीछे 'सत्य' वास्तविकता क्या है, आप अपमान करने के लिए आग्रह करना चाहेंगे। यह तकनीक या पैकेज के बारे में पहली जगह नहीं है।

ऐतिहासिक रूप से हमने पेड़ के तरीकों जैसे वृक्षारोपण का मुख्य रूप से उपयोग किया क्योंकि हममें से कुछ ने कम से कम महसूस किया कि रैखिक प्रतिगमन, लॉजिस्टिक रिग्रेशन, या यहां तक ​​कि एनएन जैसे प्रतिगमन का अनुमान लगाने के लिए लापता प्रतीत होता है कि हमारे पास ऐसी विधियां होनी चाहिए जिनके लिए अपमान की आवश्यकता नहीं है कॉलम के बीच 'गायब'। तथाकथित गायब सूचनात्मकता। बेयसियन के साथ परिचित लोगों के लिए परिचित अवधारणा होना चाहिए।

यदि आप वास्तव में बड़े डेटा पर मॉडलिंग कर रहे हैं, इसके बारे में बात करने के अलावा, मौका है कि आप बड़ी संख्या में कॉलम का सामना कर रहे हैं। टेक्स्ट एनालिटिक्स जैसे फीचर निष्कर्षण के सामान्य अभ्यास में, आप बहुत अच्छी तरह से कह सकते हैं कि लापता मतलब गिनती = 0 है। यह ठीक है क्योंकि आप मूल कारण जानते हैं। वास्तविकता, विशेष रूप से जब संरचित डेटा स्रोतों का सामना करना पड़ता है, तो आप नहीं जानते हैं या बस मूल कारण जानने के लिए समय नहीं है। लेकिन आपका इंजन एक मूल्य में प्लग करने के लिए मजबूर करता है, चाहे वह एनएएन या अन्य प्लेसहोल्डर हो जो इंजन सहन कर सके, मैं बहुत अच्छी तरह से तर्क दे सकता हूं कि आपका मॉडल उतना ही अच्छा है जितना आप अपमान करते हैं, जो समझ में नहीं आता है।

एक दिलचस्प सवाल यह है कि: अगर हम अलग-अलग या दूसरी डिग्री सरोगेट के अंदर अपने करीबी संदर्भ से लापता होने का फैसला करते हैं, तो क्या वास्तव में जंगल वास्तव में प्रासंगिक निर्णय को मूक कर देता है क्योंकि प्रति संदर्भ संदर्भ यादृच्छिक चयन है? हालांकि, यह एक 'बेहतर' समस्या है। कम से कम यह इतना चोट नहीं पहुंचाता है। यह निश्चित रूप से अनुपस्थिति को अनावश्यक बनाए रखना चाहिए।

एक व्यावहारिक मामले के रूप में, यदि आपके पास बड़ी संख्या में इनपुट सुविधाएं हैं, तो संभवतः आपके पास लागू होने के लिए 'अच्छी' रणनीति नहीं हो सकती है। तीव्र प्रतिरक्षा परिप्रेक्ष्य से, सबसे अच्छा अभ्यास कुछ भी नहीं बल्कि अविवाहित है।जो आरएफ की प्रतियोगिता में है, उसके साथ मॉडलिंग से पहले आरएफ का उपयोग करने के लिए बहुत अधिक मतलब है।

इसलिए, जब तक कोई मुझे (या हम) नहीं कहता है, "हम ऐसा करने में सक्षम नहीं हैं", मुझे लगता है कि हमें 'कोशिकाओं' को लापता करने में सक्षम होना चाहिए, पूरी तरह से इस बात को छोड़कर कि कैसे 'सर्वश्रेष्ठ' को अपनाना है।

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