प्रशिक्षण कदम और मूल्यांकन कदम के बीच एक विषमता क्यों है?


27

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

संबंधित, मैंने देखा है कि कुछ संख्याओं को प्रशिक्षण के लिए डेटा सेट का कितना उपयोग किया जाना चाहिए और मूल्यांकन के लिए क्रमशः 2/3 और 1/3 की तरह कितना उपयोग करना चाहिए। क्या किसी विशेष वितरण को चुनने का कोई सैद्धांतिक आधार है?

जवाबों:


15

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


परिचय।

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

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

यह स्पष्ट है कि प्रशिक्षण सेट परीक्षण सेट से बड़ा होना चाहिए - अर्थात, विभाजन 1: 1 नहीं होना चाहिए (मुख्य लक्ष्य ट्रेन करना है , परीक्षण नहीं करना है ) - लेकिन यह स्पष्ट नहीं है कि विभाजन कहाँ होना चाहिए।

होल्डआउट प्रक्रिया।

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

  • यादृच्छिक नमूनाकरण, जो गारंटी देता है कि प्रत्येक वर्ग को सभी डेटा सबसेट में ठीक से दर्शाया गया है - प्रक्रिया को स्ट्रैटी hold एड होल्डआउट कहा जाता है
  • इसके शीर्ष पर बार-बार प्रशिक्षण-परीक्षण-सत्यापन प्रक्रिया के साथ यादृच्छिक नमूनाकरण - जिसे बार-बार स्तरीकृत होल्डआउट कहा जाता है

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

परिणाम का सत्यापन करना।

क्रॉस-मान्यता में, आप number xed संख्या में सिलवटों (डेटा के विभाजन) पर निर्णय लेते हैं । यदि हम तीन सिलवटों का उपयोग करते हैं, तो डेटा को तीन समान विभाजनों में विभाजित किया जाता है और

  • हम प्रशिक्षण के लिए 2/3 और परीक्षण के लिए 1/3 का उपयोग करते हैं
  • और प्रक्रिया को तीन बार दोहराएं ताकि अंत में, हर उदाहरण का परीक्षण के लिए एक बार उपयोग किया गया हो।

इसे थ्रीफोल्ड क्रॉस- वेलिडेशन कहा जाता है , और अगर स्ट्रेटी adopted कॉशन को भी अपनाया जाता है (जो कि यह अक्सर सच होता है) इसे स्ट्रेटिफाइड थ्रीफोल्ड क्रॉस-वेलिडेशन कहा जाता है

लेकिन, लो और निहारना, मानक तरीका है नहीं 1/3 विभाजन: 2/3। Quotting "डेटा खनन: प्रैक्टिकल मशीन लर्निंग उपकरण और तकनीक" ,

मानक तरीका [...] स्ट्रैट 10 एड 10-गुना क्रॉस-सत्यापन का उपयोग करना है। डेटा को यादृच्छिक रूप से 10 भागों में विभाजित किया जाता है जिसमें कक्षा को लगभग उसी अनुपात में दर्शाया जाता है जैसे पूर्ण डेटासेट में। प्रत्येक भाग को बारी-बारी से आयोजित किया जाता है और शेष नौ-दसवीं को प्रशिक्षित की गई योजना; फिर इसकी त्रुटि दर की गणना होल्ड सेट पर की जाती है। इस प्रकार सीखने की प्रक्रिया को विभिन्न प्रशिक्षण सेटों पर कुल 10 बार निष्पादित किया जाता है (जिनमें से प्रत्येक में बहुत कुछ है)। अंत में, 10 त्रुटि अनुमानों को एक समग्र त्रुटि अनुमान देने के लिए औसत किया जाता है।

क्यों 10? क्योंकि "विभिन्न शिक्षण तकनीकों के साथ कई डेटासेट, पर ..Extensive परीक्षण, पता चला है 10 परतों की सही संख्या त्रुटि का सबसे अच्छा अनुमान प्राप्त करने के लिए के बारे में है, और वहाँ भी कुछ सैद्धांतिक प्रमाण उपलब्ध हैं कि कि पीठ इस .." मैं हेवन उन्होंने पाया कि कौन से व्यापक परीक्षण और सैद्धांतिक साक्ष्य थे, लेकिन यह एक और अधिक खुदाई के लिए एक अच्छी शुरुआत की तरह लगता है - यदि आप चाहें।

वे मूल रूप से सिर्फ कहते हैं

यद्यपि ये तर्क किसी भी तरह से निर्णायक नहीं हैं, और मशीन सीखने और डेटा खनन हलकों में बहस जारी है कि मूल्यांकन के लिए सबसे अच्छी योजना क्या है, 10-गुना क्रॉस-सत्यापन व्यावहारिक रूप में मानक विधि बन गई है। [...] इसके अलावा, सटीक संख्या 10: 5-गुना या 20-गुना क्रॉस-सत्यापन के बारे में कुछ भी जादू नहीं है, लगभग अच्छा होने की संभावना है।

बूटस्ट्रैप, और - आखिरकार! - मूल प्रश्न का उत्तर।

लेकिन हम अभी तक इस सवाल का जवाब नहीं दे पाए हैं कि 2/3: 1/3 अक्सर अनुशंसित क्यों होता है। मेरा लेना है कि यह बूटस्ट्रैप विधि से विरासत में मिला है ।

यह प्रतिस्थापन के साथ नमूने पर आधारित है। पहले, हमने "भव्य सेट" से एक नमूना को सबसेट में से एक में रखा। बूटस्ट्रैपिंग अलग है और एक नमूना आसानी से प्रशिक्षण और परीक्षण सेट दोनों में दिखाई दे सकता है।

आइए एक विशेष परिदृश्य में देखें, जहां हम n इंस्टेंसेस का डेटासेट D1 लेते हैं और इसे n के साथ दूसरी बार नमूना करते हैं , ताकि n इंस्टेंसेस का एक अन्य डेटासेट D2 प्राप्त कर सके ।

अब संकीर्णता से देखें।

क्योंकि D2 में कुछ तत्व (लगभग निश्चित रूप से) दोहराए जाएंगे, मूल डेटासेट में कुछ ऐसे उदाहरण होने चाहिए जिन्हें उठाया नहीं गया है: हम इनका उपयोग परीक्षण उदाहरणों के रूप में करेंगे।

क्या मौका है कि एक विशेष उदाहरण D2 के लिए नहीं उठाया गया था ? प्रत्येक लेने पर लेने की संभावना 1 / n है इसलिए विपरीत है (1 - 1 / n)

जब हम इन संभावनाओं को एक साथ गुणा करते हैं, तो यह (1 - 1 / n) ^ n है जो e ^ -1 है जो लगभग 0.3 है। इसका मतलब है कि हमारा परीक्षण सेट लगभग 1/3 होगा और प्रशिक्षण सेट लगभग 2/3 होगा।

मुझे लगता है कि यही कारण है कि 1/3: 2/3 विभाजन का उपयोग करने की सिफारिश की गई है: यह अनुपात बूटस्ट्रैपिंग आकलन पद्धति से लिया गया है।

इसे लपेट रहा है।

मैं डेटा माइनिंग बुक के एक उद्धरण के साथ समाप्त करना चाहता हूं (जो मैं साबित नहीं कर सकता लेकिन सही मान सकता हूं) जहां वे आम तौर पर 10-गुना क्रॉस-सत्यापन को प्राथमिकता देने की सलाह देते हैं:

बूटस्ट्रैप प्रक्रिया बहुत छोटे डेटासेट के लिए त्रुटि का आकलन करने का सबसे अच्छा तरीका हो सकता है। हालाँकि, लीव-वन-आउट क्रॉस-वैधीकरण की तरह, इसके नुकसान हैं जिन्हें एक विशेष, आरती i cial स्थिति [...] को दो वर्गों के साथ पूरी तरह से यादृच्छिक डेटासेट पर विचार करके चित्रित किया जा सकता है। किसी भी भविष्यवाणी नियम के लिए सही त्रुटि दर 50% है। लेकिन एक योजना जो प्रशिक्षण सेट को याद करती है, वह 100% का एक सटीक पुनरुत्थान स्कोर देगी ताकि उदाहरणों को 0 पर लागू किया जा सके, और 0.632 बूटस्ट्रैप इसे 0.368 के वजन के साथ मिलाएगा। केवल 31.6% (0.632 + 50% + 0.368%%) की समग्र त्रुटि दर दें, जो भ्रामक आशावादी है।


13

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

y = a0 + a1 * X + a2 * X ^ 2 + ... + a * X ^ m

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

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

मुझे नहीं पता कि यह व्याख्या पर्याप्त रूप से सैद्धांतिक है, लेकिन उम्मीद है कि यह मदद करता है। मैंने प्रतिगमन मॉडल पर समस्या को समझाने की कोशिश की क्योंकि मैं इसे दूसरों (SVM, तंत्रिका नेटवर्क ...) की तुलना में अधिक सहज रूप से समझने योग्य मानता हूं।

जब आप एक मॉडल का निर्माण करते हैं, तो आपको डेटा को कम से कम प्रशिक्षण सेट और परीक्षण सेट में विभाजित करना चाहिए (कुछ प्रशिक्षण, मूल्यांकन और पार सत्यापन सेट में डेटा को विभाजित करते हैं)। आमतौर पर प्रशिक्षण सेट के लिए 70% डेटा का उपयोग किया जाता है और मूल्यांकन के लिए 30% और फिर, जब आप मॉडल का निर्माण करते हैं, तो आपको प्रशिक्षण त्रुटि और परीक्षण त्रुटि की जांच करनी होगी। यदि दोनों त्रुटियां बड़ी हैं, तो इसका मतलब है कि आपका मॉडल बहुत सरल है (मॉडल में उच्च पूर्वाग्रह है)। दूसरी ओर यदि आपकी प्रशिक्षण त्रुटि बहुत छोटी है, लेकिन प्रशिक्षण और परीक्षण त्रुटि के बीच एक बड़ा अंतर है, तो इसका मतलब है कि आपका मॉडल बहुत जटिल है (मॉडल में उच्च विचरण है)।

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


5
यह कैसे के लिए एक बहुत बड़ा जवाब है - क्यों के लिए इतना नहीं। लेकिन शायद यह सिर्फ एक गलत सवाल है - जो हम वास्तव में परवाह करते हैं वह क्या अनुभवजन्य है, सिद्धांत नहीं।
Tamzin ब्लेक

@ थोम: तो वास्तव में आपका प्रश्न दूसरा पैराग्राफ है और पहले का अंत नहीं है ("यह देखने में असफल क्यों") क्योंकि अनुभवजन्य रूप से जो काम करता है वह यह है कि आप ओवर-फिटिंग हो जाते हैं: आपका मॉडल आपके में मामूली झगड़े को संभालने का एक उत्कृष्ट काम करता है प्रशिक्षण डेटा जो सामान्य मामले में मौजूद नहीं हैं।
winwaed

1
@winwaed प्रश्न "ऐसा क्यों है ...?", "यह क्यों है?", और "क्या कोई है ...?", सभी को स्पष्ट रूप से प्रश्न चिह्न द्वारा इंगित किया गया है। मैं घटना से परिचित हूं, और मुझे यह सहज लगता है, और मैं अनुभवजन्य उदाहरणों से परिचित हूं, लेकिन मुझे नहीं पता कि यह मामला क्यों है, और ऐसा लगता है कि सूचना सिद्धांत का मेरे लिए जवाब होना चाहिए। उपरोक्त टिप्पणी सिर्फ प्रतिबिंब थी कि शायद "क्यों" प्रश्न विशेष रूप से प्रासंगिक नहीं हैं एक बार जब आपके पास अनुभवजन्य नियमितताएं हैं जिनका आप शोषण कर सकते हैं।
तामज़िन ब्लेक

7

यह सामान्यीकरण की समस्या है- यानी, हमारी परिकल्पना भविष्य के उदाहरणों को सही ढंग से वर्गीकृत करेगी जो प्रशिक्षण सेट का हिस्सा नहीं हैं। कृपया इस शानदार उदाहरण को देखें, क्या हुआ है जब आपका मॉडल केवल आपके पास मौजूद डेटा को फिट करता है और नया नहीं है: टिटियस-बोड कानून


एक अच्छा उदाहरण - यह वैज्ञानिक परिकल्पनाओं के साथ बहुत अधिक है। हम अभी भी मॉडल के बारे में बात कर रहे हैं चाहे वे सांख्यिकीय एमएल मॉडल हों या ब्रह्मांड के मॉडल।
winwaed

1

अब तक @andreiser ने प्रशिक्षण / परीक्षण डेटा विभाजन के बारे में ओपी के प्रश्न के दूसरे भाग में एक शानदार जवाब दिया, और @niko ने बताया कि कैसे ओवरफिटिंग से बचने के लिए, लेकिन किसी को भी सवाल का गुण नहीं मिला है: प्रशिक्षण और मूल्यांकन के लिए अलग-अलग डेटा का उपयोग क्यों करें ओवरफिटिंग से बचने में हमारी मदद करता है।


हमारे डेटा में विभाजित है:

  1. प्रशिक्षण के उदाहरण
  2. वैधता के उदाहरण
  3. परीक्षण (मूल्यांकन) उदाहरण

M

M1,...,Mn

यह महसूस करना महत्वपूर्ण है कि मान्यता और परीक्षण उदाहरणों की विभिन्न भूमिकाएँ क्या हैं।

  1. प्रशिक्षण के उदाहरण - मॉडल फिट करने के लिए उपयोग किया जाता है।
  2. सत्यापन उदाहरण - एक मॉडल चुनने के लिए उपयोग किया जाता है
  3. परीक्षण (मूल्यांकन) उदाहरण - नए डेटा पर एक मॉडल की सटीकता को मापने के लिए उपयोग किया जाता है

द स्टेटमेंट ऑफ़ स्टैटिस्टिकल लर्निग का पेज 222 देखें : अधिक जानकारी के लिए डेटा माइनिंग, इनविज़न और प्रिडिक्शन

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