प्रशिक्षण की तुलना में परीक्षण की सटीकता अधिक है। व्याख्या कैसे करें?


23

मैंने कई विशेषताओं (1000 से अधिक) के साथ सबसे अधिक 150 उदाहरणों (प्रशिक्षण और परीक्षण में विभाजित) में एक डेटासेट युक्त है। मुझे क्लासिफायर की तुलना करने और चयन के तरीकों को चुनने की आवश्यकता है जो डेटा पर अच्छा प्रदर्शन करते हैं। इसलिए, मैं तीन वर्गीकरण विधियों (J48, NB, SVM) और 2 सुविधा चयन विधियों (CFS, WrapperSubset) का उपयोग विभिन्न खोज विधियों (लालची, बेस्टफ्रस्ट) के साथ कर रहा हूं।

तुलना करते समय, मैं प्रशिक्षण सटीकता (5 गुना क्रॉस-फोल्डिंग) और परीक्षण सटीकता देख रहा हूं।

यहाँ J48 और CFS-BestFirst के परिणामों में से एक है:

{"सटीकताप्रदर्शन": 95.83, "सटीकताTest": 98.21}

कई परिणाम इस तरह हैं, और एसवीएम पर कई परिणाम हैं जो इंगित करते हैं कि परीक्षण सटीकता प्रशिक्षण (प्रशिक्षण: 60%, परीक्षण: 98%) की तुलना में बहुत अधिक है

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

मेरे पास 73 प्रशिक्षण और 58 परीक्षण उदाहरण हैं। कुछ जवाबों में यह जानकारी नहीं थी जब वे पोस्ट किए गए थे।

जवाबों:


20

मुझे लगता है कि एक पहला कदम यह जांचना है कि रिपोर्ट किए गए प्रशिक्षण और परीक्षण का प्रदर्शन वास्तव में सही है या नहीं।

  • क्या 5-गुना क्रॉस सत्यापन के दौरान विभाजन एक तरह से किया जाता है जो सांख्यिकीय रूप से स्वतंत्र सीवी ट्रेन / टेस्ट सेट देता है? उदाहरण के लिए, यदि डेटा में बार-बार माप होते हैं, तो क्या वे हमेशा एक ही सेट में समाप्त होते हैं?
  • 150 नमूनों की 5 गुना सीवी में 95.83% सटीकता 5 सरोगेट मॉडल के लिए 130 प्रशिक्षण नमूनों में से 5 गलत है, या 5 * 130 प्रशिक्षण नमूनों के लिए 25 गलत मामले हैं।
  • 98.21% परीक्षण सटीकता की व्याख्या करना अधिक कठिन है: सीवी के एक रन के दौरान, प्रत्येक मामले को एक बार परीक्षण किया जाना चाहिए। तो संभवतः रिपोर्ट की गई संख्या 100% / 150 के चरणों में होनी चाहिए। 98.21% 2.68 गलत मामलों से मेल खाती है (150 परीक्षण मामलों में से 2 और 3 गलत क्रमशः 98.67 और 98.00% सटीकता देता है)।

  • यदि आप अपना मॉडल निकाल सकते हैं, तो रिपोर्ट की गई सटीकता को बाहरी रूप से गणना करें।

  • यादृच्छिक इनपुट के लिए रिपोर्ट किए गए सटीकता क्या हैं?
  • एक बाहरी क्रॉस सत्यापन करें: अपने डेटा को विभाजित करें, और केवल प्रशिक्षण भाग को कार्यक्रम में सौंप दें। "बाहरी" परीक्षण डेटा की भविष्यवाणी करें और सटीकता की गणना करें। क्या यह कार्यक्रम के आउटपुट के अनुरूप है?
  • सुनिश्चित करें कि रिपोर्ट की गई "परीक्षण सटीकता" स्वतंत्र डेटा (डबल / नेस्टेड क्रॉस वेलिडेशन) से आती है: यदि आपका प्रोग्राम डेटा संचालित ऑप्टिमाइज़ेशन करता है (जैसे कई मॉडलों की तुलना करके "सर्वश्रेष्ठ" सुविधाओं को चुनना), तो यह प्रशिक्षण त्रुटि (अच्छाई) पर अधिक पसंद है एक सामान्यीकरण त्रुटि की तुलना में फिट)।

मैं @mbq से सहमत हूँ कि मशीनी सीखने में प्रशिक्षण त्रुटि शायद ही कभी उपयोगी है। लेकिन आप उन कुछ स्थितियों में से एक में हो सकते हैं जहां यह वास्तव में उपयोगी है: यदि प्रोग्राम सटीकता की तुलना करके "सर्वश्रेष्ठ" मॉडल का चयन करता है, लेकिन इसमें से चुनने के लिए केवल प्रशिक्षण त्रुटियां हैं, तो आपको यह जांचने की आवश्यकता है कि क्या प्रशिक्षण त्रुटि वास्तव में एक समझदार की अनुमति देती है चुनाव।
@mbq ने अविभाज्य मॉडलों के लिए सबसे अच्छी स्थिति को रेखांकित किया। हालांकि, बदतर परिदृश्य भी होते हैं: परीक्षण सटीकता की तरह, प्रशिक्षण सटीकता भी विचरण के अधीन है, लेकिन सामान्यीकरण सटीकता की तुलना में एक आशावादी पूर्वाग्रह है जो आमतौर पर ब्याज की है। यह एक ऐसी स्थिति पैदा कर सकता है जहां मॉडल को प्रतिष्ठित नहीं किया जा सकता है, हालांकि उनका वास्तव में अलग प्रदर्शन है। लेकिन उनके प्रशिक्षण (या आंतरिक cv) सटीकता उनके आशावादी पूर्वाग्रह के कारण उन्हें भेद करने के बहुत करीब हैं। ईजी पुनरावृत्त सुविधा चयन विधियां ऐसी समस्याओं के अधीन हो सकती हैं जो आंतरिक क्रॉस सत्यापन सटीकता के लिए भी बनी रह सकती हैं (यह निर्भर करता है कि क्रॉस सत्यापन कैसे लागू किया जाता है)।

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

एक दूसरा चरण यह देखना है कि क्या सांख्यिकीय स्वतंत्र विभाजन के लिए मनाया मतभेद सार्थक हैं, जैसा कि @mbq ने पहले ही बताया था।

मेरा सुझाव है कि आप गणना करें कि सांख्यिकीय रूप से सार्थक अंतर रखने के लिए आपको अपने दिए गए नमूना आकार के साथ क्या सटीकता की आवश्यकता है। यदि आपकी देखी गई भिन्नता कम है, तो आप यह तय नहीं कर सकते कि आपके दिए गए डेटा सेट के साथ कौन सा एल्गोरिथ्म बेहतर है: आगे अनुकूलन का कोई मतलब नहीं है।


पचाने के लिए यहाँ बहुत अच्छी जानकारी है। सबसे पहले, मुझे बहुत खेद है कि मैंने सटीक संख्याएँ नहीं दीं क्योंकि मुझे उम्मीद नहीं थी कि आप इतनी विस्तृत संख्या में मिलेंगे और मैं भी सिर्फ एक विषय पर ध्यान देना चाहता था। वैसे भी, मेरे पास 73 प्रशिक्षण और 58 परीक्षण डेटा हैं। ये सांख्यिकीय रूप से अलग नहीं हैं, इन्हें मेरे द्वारा अलग-अलग समय में लिया गया था। प्रशिक्षण के नमूने पहले सुविधा चयन एल्गोरिथ्म में लिए गए हैं (आवरण fs विधि में आंतरिक 5-गुना cv भी है) और फिर 5-fold'ed और सर्वोत्तम सटीकता ली गई है और मॉडल को सहेजा गया है। और फिर उस मॉडल का उपयोग परीक्षण सटीकता की गणना के लिए किया जाता है।
--रकू

16

एक प्रशिक्षण सेट पर सटीकता मशीन सीखने में कोई मतलब नहीं है। अनदेखी करो इसे।


धन्यवाद! मेरे पास एक ही सर्वोत्तम परीक्षण सटीकता के साथ कई परिणाम हैं, इसलिए मैं अब परिणामों की तुलना नहीं कर सकता (यदि आपने यह नहीं कहा है कि तुलना करने के लिए मैं प्रशिक्षण सटीकता को भी देखूंगा)। इसलिए परीक्षण और प्रशिक्षण के लिए विभाजन के बजाय, परिणामों की तुलना करने के लिए मेरे मामले के लिए अधिक उपयुक्त सभी डेटासेट पर क्रॉस सत्यापन की बहुतायत है? या मुझे किसी अन्य मीट्रिक की आवश्यकता है?
--रकू

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

8
प्रशिक्षण सेट पर सटीकता जानने के लिए उपयोगी है ताकि आपके भविष्य कहे जाने वाले एल्गोरिथ्म को ओवरफिट करने की मात्रा का अनुमान लगाया जा सके (प्रशिक्षण और परीक्षण सेट के बीच सटीकता में अंतर की गणना करके)।
फ्रैंक हरेल

क्या आप बता सकते हैं क्यों?
inf

1
परिभाषा से, एमएल विधियां अनदेखी डेटा पर प्रदर्शन के बारे में हैं, इस प्रकार वे इस परिणाम के बारे में कोई गारंटी नहीं देते हैं (मॉडल सांख्यिकीय मॉडलिंग की तरह डेटा को अंतर्निहित तंत्र को फिर से लागू करने की उम्मीद नहीं है)। व्यवहार में कई तरीके अत्यधिक सटीक भविष्यवाणियां करते हैं, इस प्रकार यह केवल धोखा है।

6

जिस तरह से आप इस बारे में चले गए हैं उसके साथ कुछ गंभीर समस्याएं हैं। सबसे पहले, डेटा विभाजन अविश्वसनीय नहीं है जब तक कि कुल नमूना आकार बड़ा न हो। यदि आप फिर से विभाजित होते हैं तो आपको अलग-अलग परिणाम मिलेंगे। अन्य बातों के अलावा आप सटीकता के अनुमानों पर विश्वास अंतराल पर विचार नहीं कर रहे हैं। दूसरा, 5-गुना क्रॉस-सत्यापन पर्याप्त रूप से सटीक नहीं है। पर्याप्त परिशुद्धता प्राप्त करने के लिए इसे 100 बार दोहराना आवश्यक हो सकता है। तीसरा, आपने एक सटीकता स्कोर के रूप में चुना है एक अनुचित अनुचित स्कोरिंग नियम (सही ढंग से वर्गीकृत अनुपात)। इस तरह के अनुचित स्कोरिंग नियम से गलत मॉडल का चयन होगा।


3

यह मानते हुए कि एल्गोरिदम के कार्यान्वयन में कोई गड़बड़ नहीं है, आइए हम समस्या पर गौर करें।

अपने प्रशिक्षण डेटा से एक छोटा सा उपखंड लेने और उस पर अपने सीखने के एल्गोरिथ्म को चलाने की कल्पना करें। यह स्पष्ट रूप से बहुत अच्छा करेंगे। यह हमेशा एक सबसेट निकालने के लिए संभव है जो 98% सटीकता के करीब प्राप्त करता है।

अब आपका परीक्षण डेटा इस सबसेट के समान है? यदि हाँ, तो आपको और अधिक डेटा एकत्र करने की आवश्यकता है, उम्मीद है कि थोड़ा अधिक विविध। बायस-वेरिएंस के दृष्टिकोण से, मैं कहूंगा कि आपका विचरण अधिक है।


1

आपके पास (150) नमूनों की संख्या के लिए बहुत अधिक सुविधाएँ (1000) हैं। आपको अपने नमूने बढ़ाने या अपनी विशेषताओं को कम करने की आवश्यकता है।

वे कहते हैं कि आमतौर पर सुविधाओं की संख्या ^ 2 = आवश्यक नमूनों की संख्या। इसलिए आपको कम से कम मिलियन नमूनों की आवश्यकता है।


0

यह किसी भी एमएल एल्गोरिथ्म और यहां तक ​​कि कस्टम क्लासिफायर का उपयोग करके भी हो सकता है। अलग-अलग k- गुना क्रॉस सत्यापन योजनाओं का प्रयास करें अर्थात 2 या 10 गुना। उच्च k के साथ, यह अपेक्षा की जाती है कि परीक्षण त्रुटि कम हो।

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