कम वर्गीकरण सटीकता, आगे क्या करना है?


16

इसलिए, मैं ML क्षेत्र में नौसिखिया हूं और मैं कुछ वर्गीकरण करने की कोशिश करता हूं। मेरा लक्ष्य एक खेल घटना के परिणाम की भविष्यवाणी करना है। मैंने कुछ ऐतिहासिक डेटा एकत्र किए हैं और अब एक क्लासिफायरियर को प्रशिक्षित करने का प्रयास करता हूं। मुझे लगभग 1200 नमूने मिले, उनमें से 0.2 मैं परीक्षण उद्देश्यों के लिए अलग हो गया, अन्य जिनको मैंने अपने सहपाठियों के साथ ग्रिड खोज (क्रॉस-वैधीकरण शामिल) में रखा। मैंने इस समय एसवीएम को रेखीय, आरबीएफ और बहुपद गुठली और यादृच्छिक वन के साथ आज़माया है। दुर्भाग्य से, मैं सटीकता को 0.5 से अधिक बड़ा नहीं कर सकता (वर्ग के यादृच्छिक विकल्प के समान)। क्या इसका मतलब है कि मैं इस तरह की जटिल घटना के परिणाम की भविष्यवाणी नहीं कर सकता? या मुझे कम से कम 0.7-0.8 सटीकता मिल सकती है? यदि यह संभव है, तो मुझे अगले में क्या देखना चाहिए?

  • अधिक डेटा प्राप्त करें? (मैं 5 बार तक डेटासेट बढ़ा सकता हूं)
  • अलग-अलग क्लासीफायर ट्राई करें? (लॉजिस्टिक रिग्रेशन, केएनएन आदि)
  • मेरी सुविधा सेट का पुनर्मूल्यांकन करें? क्या कोई एमएल-टूल विश्लेषण करने के लिए है, जो कि सुविधाओं को समझ में आता है और जो नहीं करते हैं? हो सकता है, मुझे अपना फीचर सेट कम करना चाहिए (वर्तमान में मेरे पास 12 सुविधाएँ हैं)?

आपकी प्रशिक्षण सटीकता क्या है? और आपके पास प्रत्येक कक्षा में कितने नमूने हैं?
सिंह

1
यह कौन सा खेल है और आप "सही" वर्गीकरण को क्या मानते हैं? यदि आप किसी भी प्रमुख खेल में जीत / हानि के परिणाम की भविष्यवाणी करने की कोशिश कर रहे हैं, तो यह लगभग असंभव है कि यहां तक ​​कि सरलतम क्लासिफायर भी 0.5 से बेहतर भविष्यवाणी नहीं करेंगे। यदि आप कहते हैं, एक फैल या कुछ अन्य विकलांग परिणामों के खिलाफ जीत / हानि की भविष्यवाणी करने की कोशिश कर रहे हैं, तो 0.5 से ज्यादा मुश्किल हो सकता है।
कार्डिनल

@ प्रशिक्षण प्रशिक्षण सटीकता लगभग 0.5 है। कक्षाएं समान रूप से वितरित की जाती हैं, मेरे पास कक्षाएं 0 और 1. हैं
fspirit के

@ कार्डिनल हां, मैं जीत / हानि के परिणाम की भविष्यवाणी करने की कोशिश करता हूं, कोई बाधा नहीं। क्या परीक्षण सेट पर 0.8 सटीकता तक पहुंचना, कहना संभव है?
fspirit

1
@fspirit: यह एक बात के लिए प्रतिभागियों के बीच खेल और असमानता पर निर्भर करता है। बस यह जानना कि प्रत्येक प्रतियोगिता में कौन भाग ले रहा है, अक्सर एक मजबूत भविष्यवक्ता हो सकता है। यहाँ और यहाँ संबंधित पदों के एक जोड़े हैं।
कार्डिनल

जवाबों:


17

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

यदि दूसरी तरफ आपको लगता है कि वर्ग को बांटने के लिए आवश्यक जानकारी पहले से ही लेबल में है, तो आपको जांचना चाहिए कि आपका क्लासिफायर एक उच्च पूर्वाग्रह या उच्च विचरण समस्या से ग्रस्त है या नहीं।

ऐसा करने के लिए, प्रशिक्षण उदाहरणों के एक फ़ंक्शन के रूप में सत्यापन त्रुटि और प्रशिक्षण सेट त्रुटि को ग्राफ़ करें।

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

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

यह सामान्य नियम हैं जिनका मैं आपके जैसी समस्या से सामना करता हूं।

चीयर्स।


क्या आपका मतलब सत्यापन सेट त्रुटि और टेस्ट सेट त्रुटि है? अन्यथा, मैं उलझन में हूँ। मुझे ट्रेन सेट त्रुटि का भी पता नहीं है, क्योंकि मैं मॉडल का चयन करने के लिए सत्यापन सेट त्रुटि का उपयोग करता हूं और वे परीक्षण सेट पर चयनित मॉडल की जांच करते हैं।
fspirit

नहीं, मेरा तात्पर्य प्रशिक्षण सेट त्रुटि है जहां यह लिखा गया है। प्रशिक्षण त्रुटि प्रशिक्षण सेट आकार में विभाजित प्रशिक्षण में मिसकॉलिफाइड उदाहरणों की संख्या है। इसी प्रकार परीक्षण सेट त्रुटि प्रशिक्षण सेट आकार से विभाजित परीक्षण सेट में मिसकॉलिफाइड उदाहरणों की संख्या है। इसके अलावा आप कौरसेरा की मशीन लर्निंग क्लास, ( class.coursera.org/ml-2012-002/lecture/index ), विशेष रूप से "मशीन लर्निंग लागू करने की सलाह" के लिए वीडियो देखना चाहते हैं । वे सलाह आपकी स्थिति के लिए काफी प्रासंगिक हैं।
sjm.majewski

मैंने पाठ्यक्रम का मुकाबला किया है, जब पहली बार इसे चलाया गया था। प्रशिक्षण सेट त्रुटि के रूप में, मैं अब इसका उत्पादन भी करता हूं, एसवीएम के लिए इसका काफी उच्च - 0.5 है, लेकिन यादृच्छिक जंगलों के लिए इसका 0.
fspirit

5

मैं एक कदम पीछे ले जाने और वर्गीकरण का प्रयास करने से पहले कुछ खोजपूर्ण डेटा विश्लेषण करने का सुझाव दूंगा। यह देखने के लिए व्यक्तिगत आधार पर आपकी सुविधाओं की जांच करने के लायक है कि क्या ब्याज के परिणाम के साथ कोई संबंध है - यह हो सकता है कि जिन विशेषताओं का आपके पास श्रेणी के लेबल के साथ कोई संबंध नहीं है। आपको कैसे पता चलेगा कि आपके पास मौजूद फीचर्स का कोई फायदा होगा?

आप रिश्तों की परीक्षा के लिए परिकल्पना परीक्षण या सहसंबंध विश्लेषण करने से शुरू कर सकते हैं। सुविधाओं के लिए वर्ग विशिष्ट हिस्टोग्राम बनाना (यानी एक ही धुरी पर दिए गए फ़ीचर के लिए प्रत्येक वर्ग के लिए डेटा के हिस्टोग्राम को प्लॉट करना) यह दिखाने का भी एक अच्छा तरीका हो सकता है कि क्या कोई सुविधा दो वर्गों के बीच अच्छी तरह से भेदभाव करती है।

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


मैं हिस्टोग्राम को आकर्षित करने की कोशिश करूँगा और देखूँगा कि वे क्या दिखेंगे।
fspirit

@Breene - आपका तीसरा पैराग्राफ मेरे लिए कठिन है। यदि खोजपूर्ण विश्लेषण भविष्यवक्ता X1 को परिणाम के साथ अत्यधिक सहसंबद्ध दिखाता है, तो क्या यह उस सहसंबंध की जांच करने के उद्देश्य को नहीं हराएगा यदि कोई व्यक्ति मल्टीवाइरेट मॉडल में कम से कम एक उम्मीदवार भविष्यवक्ता के रूप में X1 का उपयोग नहीं करता है?
rolando2

@ rolando2 - मैं सुझाव नहीं दे रहा हूं कि आप एक सुविधा चयन दिनचर्या के हिस्से के रूप में एक उम्मीदवार के रूप में सुविधा को शामिल नहीं करते हैं, लेकिन आपको ऐसे खोजपूर्ण विश्लेषण के आधार पर सुविधाओं का चयन नहीं करना चाहिए क्योंकि यह ओवरफिट होगा। हालांकि, एक क्लासिफायरियर मॉडल के सामान्यीकृत प्रदर्शन के मूल्यांकन के प्रयोजनों के लिए, फीचर चयन को मॉडल चयन दिनचर्या (यानी क्रॉस सत्यापन के प्रत्येक तह के भीतर) में किया जाना चाहिए। मैं जो सुझाव दे रहा हूं, वह यह है कि अन्वेषणात्मक विश्लेषण और वर्गीकरण को अलग-अलग गतिविधियों के रूप में माना जाना चाहिए - प्रत्येक आपको आपके डेटा के बारे में अलग-अलग बातें बताता है
BGreene

3

यह अच्छा है कि आपने अपने डेटा को प्रशिक्षण डेटा और परीक्षण डेटा में अलग कर दिया है।

क्या आपने प्रशिक्षण के दौरान अपनी प्रशिक्षण त्रुटि को कम किया? यदि नहीं, तो आपके प्रशिक्षण एल्गोरिथ्म में एक बग हो सकता है। आप अपने प्रशिक्षण सेट पर त्रुटि से अधिक होने के लिए अपने परीक्षण सेट पर त्रुटि की अपेक्षा करते हैं, इसलिए यदि आपके प्रशिक्षण सेट पर अस्वीकार्य रूप से उच्च त्रुटि है, तो सफलता की बहुत कम उम्मीद है।

सुविधाओं से छुटकारा पाने से कुछ प्रकार के ओवरफिटिंग से बचा जा सकता है। हालांकि, यह आपके प्रशिक्षण सेट पर त्रुटि में सुधार नहीं करना चाहिए। आपके प्रशिक्षण सेट पर कम त्रुटि और आपके परीक्षण सेट पर एक उच्च त्रुटि एक संकेत हो सकता है कि आप एक अत्यधिक लचीली सुविधा सेट का उपयोग करके ओवरफिट करते हैं। हालाँकि, यह आपके परीक्षण सेट की तुलना में क्रॉस-मान्यता के माध्यम से जांचना सुरक्षित है। एक बार जब आप अपने टेस्ट सेट के आधार पर अपना फीचर सेट चुन लेते हैं, तो यह अब टेस्ट सेट के रूप में मान्य नहीं होता है।


मैं अलग ट्रेन, सत्यापन और परीक्षण सेट का उपयोग करता हूं। मैं सत्यापन सेट त्रुटि के आधार पर हाइपर-परम का चयन करता हूं और फिर चयनित मॉडल को परीक्षण सेट पर लागू करता हूं। मुझे संदेह है कि प्रशिक्षण एल्गोरिथ्म में एक बग है, क्योंकि मैं ऑफ-द-शेल्फ उपयोग करता हूं।
fspirit

50%

"सुविधाएँ भयानक हैं" संभावना में, मैं इस मामले को शामिल करता हूं कि कोई समाधान संभव नहीं है। हालांकि, मुझे संदेह है कि बहुत ज्यादा। ऐसा कोई खेल नहीं है जो मुझे पता हो कि जहां देखने के तरीके नहीं हैं कि एक प्रतियोगी दूसरे पर पसंदीदा है। यह रॉक-पेपर-कैंची में भी संभव है।
डगलस ज़ारे

1

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


क्षमा करें, उम, कोवरिएट == सुविधा है?
fspirit
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.