प्रदर्शन में सुधार करने के लिए मशीन सीखने में विरल और सघन डेटा को जोड़ना


17

मेरे पास विरल विशेषताएं हैं जो भविष्य कहनेवाला हैं, साथ ही मेरे पास कुछ सघन विशेषताएं हैं जो भविष्य कहनेवाला हैं। मुझे क्लासिफायर के समग्र प्रदर्शन को बेहतर बनाने के लिए इन विशेषताओं को एक साथ जोड़ना होगा।

अब, बात यह है कि जब मैं इन्हें एक साथ मिलाने की कोशिश करता हूं, तो घने फीचर्स अधिक विरल सुविधाओं पर हावी हो जाते हैं, इसलिए केवल घने फीचर्स वाले मॉडल की तुलना में AUC में केवल 1% सुधार दिया जाता है।

क्या किसी को भी इसी तरह की समस्याएँ आई हैं? वास्तव में इनपुट की सराहना की, अटक की तरह। मैंने पहले ही अलग-अलग क्लासिफायर, क्लासीफायर के संयोजन, फीचर ट्रांसफॉर्मेशन और विभिन्न एल्गोरिदम के साथ प्रसंस्करण की बहुत कोशिश की है।

मदद के लिए अग्रिम धन्यवाद।

संपादित करें :

मैंने पहले से ही उन सुझावों की कोशिश की है जो टिप्पणियों में दिए गए हैं। मैंने जो देखा है, लगभग 45% डेटा के लिए, विरल सुविधाएँ वास्तव में अच्छा प्रदर्शन करती हैं, मुझे लगभग 0.9 के एयूके केवल विरल सुविधाओं के साथ मिलते हैं, लेकिन शेष लोगों के लिए घनीभूत विशेषताएं लगभग 0.75 के एयूसी के साथ अच्छा प्रदर्शन करती हैं। मैं इन डेटासेट को अलग करने की कोशिश करता हूं, लेकिन मुझे 0.6 का एयूसी मिलता है, इसलिए, मैं बस एक मॉडल को प्रशिक्षित नहीं कर सकता और यह तय कर सकता हूं कि कौन सी सुविधाओं का उपयोग करना है।

कोड स्निपेट के बारे में, मैंने बहुत सी चीजों को आज़माया है, मुझे यकीन नहीं है कि क्या साझा करना है :(


आपकी विशेषताएं कितनी विरल हैं? क्या वे 1% भरे हैं या इससे भी कम हैं?
जोहो अल्मेडा

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

@ JoãoAlmeida वे उस विरल नहीं हैं। वे लगभग 5% भरे हुए हैं। समस्या यह है कि जब मैं दो मॉडलों की भविष्यवाणियों में अंतर को देखता हूं, जहां भविष्यवाणियां भिन्न होती हैं, विरल सुविधाओं वाले मॉडल बेहतर प्रदर्शन करते हैं, इसलिए मुझे उम्मीद थी कि एयूसी में वृद्धि को देखने के साथ-साथ जब मैंने उन्हें घनी विशेषताओं के साथ जोड़ा। । मुझे बढ़ावा मिल रहा है, लेकिन बहुत कम लगता है।
सागर वाघमोड

हम ... मेरे पास तब आपके लिए कोई विचार नहीं है
João Almeida

मैं एक ही समस्या से मुलाकात की, शायद एक ही मॉडल में घने और विरल सुविधा डाल एक अच्छा विकल्प नहीं है। शायद आप विस्तृत और गहरे मॉडल की कोशिश कर सकते हैं। विरल सुविधाओं के लिए व्यापक और घने सुविधाओं के लिए गहरी, अगर आपने इस पद्धति की कोशिश की, तो कृपया मुझे उत्तर बताएं।
जियान जी

जवाबों:


6

यह प्रधान घटक विश्लेषण के लिए एक नौकरी की तरह लगता है। स्किट में पीसीए को अच्छी तरह से लागू किया गया है और इसने कई बार मेरी मदद की।

पीसीए, एक निश्चित तरीके से, आपकी सुविधाओं को जोड़ती है। घटकों की संख्या को सीमित करके, आप अपने मॉडल को शोर-कम डेटा (सर्वोत्तम स्थिति में) के साथ लाते हैं। क्योंकि आपका मॉडल उतना ही अच्छा है जितना आपका डेटा।

एक साधारण उदाहरण के नीचे विचार करें।

from sklearn.pipeline import Pipeline
pipe_rf = Pipeline([('pca', PCA(n_components=80)),
                    ('clf',RandomForestClassifier(n_estimators=100))])
pipe_rf.fit(X_train_s,y_train_s)

pred = pipe_rf.predict(X_test)

मैंने 80 क्यों चुने? जब मैं संचयी विचरण की साजिश करता हूं, तो मुझे यह नीचे मिला, जो मुझे बताता है कि ~ 80 घटकों के साथ, मैं लगभग सभी विचरण तक पहुंचता हूं। संचयी विचरण

तो मैं कहूंगा कि इसे आजमाएं, अपने मॉडलों में इसका इस्तेमाल करें। इसकी मदद करनी चाहिए।


4

सुविधाओं को संयोजित करने का सबसे अच्छा तरीका पहनावा विधियों के माध्यम से है। मूल रूप से तीन अलग-अलग विधियां हैं: बैगिंग, बूस्टिंग और स्टैकिंग। आप या तो सुविधा चयन के साथ संवर्धित Adabbost का उपयोग कर सकते हैं (इसमें विरल और सघन दोनों सुविधाओं पर विचार करें) या स्टैकिंग आधारित (रैंडम फ़ीचर - रैंडम सबस्पेस) मैं दूसरा विकल्प पसंद करता हूं जिसे आप यादृच्छिक रूप से उपयोग करके बेस लर्नर (निर्णय) के पेड़ को प्रशिक्षित कर सकते हैं। सबसेट और रैंडम फीचर (प्रशिक्षण बेस शिक्षार्थियों को तब तक रखें जब तक आप सुविधाओं के पूरे सेट को कवर नहीं करते हैं) अगला चरण मेटा डेटा जनरेट करने के लिए प्रशिक्षण सेट का परीक्षण करना है। मेटा क्लासिफायर ट्रेन करने के लिए इस मेटा डेटा का उपयोग करें। मेटा क्लासिफ़ायर यह पता लगाएगा कि कौन सी सुविधा अधिक महत्वपूर्ण है और किस तरह के संबंध का उपयोग किया जाना चाहिए


क्या आप कृपया संबंधित दस्तावेज साझा कर सकते हैं? वास्तव में आप क्या आप का मतलब नहीं मिला?
सागर वाघमोड

आप स्टैकिंग तकनीकों के बारे में "स्टैकिंग तकनीकों में मुद्दों, 1999" के बारे में एक लेख पढ़ सकते हैं। यह जानना बहुत महत्वपूर्ण है कि मैं पूरे वेक्टर के बारे में बात कर रहा हूं (जैसे हॉग के मामले में 1x36) एक विशेषता के रूप में, लेकिन इसके भीतर के आयाम नहीं। आपको यह जानने की जरूरत है कि किस बेस लर्नर के साथ किस फीचर का इस्तेमाल किया जाए। ओवरफिटिंग समस्या के बारे में सावधान रहें
बशर हदद

यदि आप डेटाबेस, वर्गों की संख्या, नमूनों की संख्या, कोड, आपने किन चीजों की कोशिश की है, आपने किन चीजों पर ध्यान दिया है, क्या आपके पास डेटा असंतुलन की समस्या, शोर के नमूने, ... आदि हैं। ये सभी विवरण महत्वपूर्ण हैं और सर्वोत्तम विधि का चयन करने में मदद कर सकते हैं। अगर यह ठीक है और मुझे बेहतर तरीके से मदद मिल सकती है तो मुझे अधिक जानकारी दें
बशर हदद

1

चर समूह बहुरंगी हो सकते हैं या विरल और घने के बीच रूपांतरण गलत हो सकता है। क्या आपने एक वोटिंग क्लासिफायर / पहनावा वर्गीकरण का उपयोग करने के बारे में सोचा है? http://scikit-learn.org/stable/modules/ensemble.html इस तरह से आप उपरोक्त दोनों समस्याओं से निपट सकते हैं।


मैं पहले से ही कलाकारों की टुकड़ी के साथ-साथ वोटिंग तकनीकों को भी आजमा चुका हूं। फिर भी नसीब नहीं।
सागर वाघमोड

तो क्या आप दो डेटासेट से पूर्वानुमानों के बीच बहुत अधिक ओवरलैप देखते हैं? क्या वास्तव में कोई नई जानकारी हो सकती है? यानी डेटा एक ही कहानी कहता है।
डिएगो

हां, मैंने ठीक यही किया है। हालांकि भविष्यवाणियां पूरी तरह से अलग नहीं हैं, नमूनों की संख्या जहां भविष्यवाणियां भिन्न होती हैं (लगभग 15-20%) डेटा। इन नमूनों के लिए विरल सुविधाओं के साथ मॉडल घने सुविधाओं वाले मॉडल की तुलना में बेहतर प्रदर्शन करता है। मेरा कहना है कि अगर विरल सुविधाएँ बेहतर प्रदर्शन करती हैं, तो वे किसी भी मॉडल में महत्वपूर्ण विशेषताओं के रूप में क्यों नहीं आते हैं, जो मैंने अब तक कोशिश की है।
सागर वाघमोड

भविष्यवक्ता एल्गोरिथ्म का आप क्या उपयोग करते हैं?
डिएगो

मैंने काफी कुछ एल्गोरिदम आज़माए हैं और ग्रैडिएंट बूस्टेड मॉडल पर बसे हैं, साथ ही मैं अपनी समस्या के लिए रैंडम फ़ॉरेस्ट का काफी उपयोग करता हूं।
सागर वाघमोड

1

उपरोक्त सुझावों में से कुछ के अलावा, मैं दो-चरण मॉडलिंग दृष्टिकोण का उपयोग करने की सलाह दूंगा

  1. पहले विरल सुविधाओं का उपयोग करें और सबसे अच्छा मॉडल विकसित करें।
  2. उस मॉडल से अनुमानित संभावना की गणना करें।
  3. उस संभाव्यता अनुमान को दूसरे मॉडल में फ़ीड करें (एक इनपुट सुविधा के रूप में), जो घने सुविधाओं को शामिल करेगा। दूसरे शब्दों में, सभी घने सुविधाओं और दूसरे मॉडल के निर्माण के लिए संभाव्यता अनुमान का उपयोग करें ।
  4. अंतिम वर्गीकरण तब दूसरे मॉडल पर आधारित होगा।

0

केवल विरल सुविधाओं पर पीसीए का प्रयास करें, और घने सुविधाओं के साथ पीसीए आउटपुट को मिलाएं।

तो आप (मूल) सुविधाओं के घने सेट (मूल रूप से विरल थे) सुविधाओं का घना सेट प्राप्त करेंगे।

प्रश्न के लिए +1। कृपया हमें परिणामों के साथ अपडेट करें।


वाह, यह वास्तव में एयूसी लाया गया है :( निश्चित रूप से, इसका क्या मतलब है, सुविधा के महत्व और सभी की जांच करने की आवश्यकता नहीं है। लेकिन मेरा दर्शन है, लगभग 2.3k विरल सुविधाओं में से, मैंने 1k विशेषताओं का उपयोग किया था जो 0.97 संस्करण अनुपात की व्याख्या कर रहे थे। सूचना के इस नुकसान ने एयूसी को नीचे लाया हो सकता है।
सागर वाघमोड

दिलचस्प। साझा करने के लिए धन्यवाद। हमारे पास आपके लिए समान डेटासेट (1k-2k विरल सुविधाएँ) हैं। जिज्ञासा से बाहर, आपने कितने प्रिंसिपल डेटासेट बनाए हैं? यदि यह संख्या बहुत कम है, तो यह समझा सकता है कि AUC नीचे क्यों गया।
तगर

जैसा कि मैंने पहले ही कहा था, मैंने 1k प्रमुख घटक उत्पन्न किए हैं जो 0.97 विचरण की व्याख्या कर रहे थे।
सागर वाघमोड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.