परीक्षण सेट और सत्यापन सेट के बीच अंतर क्या है?


431

मुझे यह भ्रामक लगा जब मैं Matlab में तंत्रिका नेटवर्क टूलबॉक्स का उपयोग करता हूं।
इसने कच्चे डेटा को तीन भागों में विभाजित किया:

  1. प्रशिक्षण सेट
  2. सत्यापन सेट
  3. टेस्ट सेट

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

मेरे प्रश्न हैं:

  1. सत्यापन सेट और परीक्षण सेट के बीच अंतर क्या है?
  2. क्या मान्यता सेट वास्तव में तंत्रिका नेटवर्क के लिए विशिष्ट है? या यह वैकल्पिक है।
  3. आगे जाने के लिए, मशीन लर्निंग के संदर्भ में सत्यापन और परीक्षण के बीच अंतर है?

56
प्रश्न का उत्तर सांख्यिकीय शिक्षण पृष्ठ 222 की पुस्तक के तत्वों में दिया गया है । सत्यापन सेट का उपयोग मॉडल चयन के लिए किया जाता है, अंतिम मॉडल के लिए परीक्षण सेट (मॉडल जिसे चयन प्रक्रिया द्वारा चुना गया था) भविष्यवाणी त्रुटि।
बजे एमपिकटास

@mpiktas क्या आप "मॉडल मूल्यांकन और चयन" अध्याय का उल्लेख कर रहे हैं?
Celdor

2
हाँ। पृष्ठ संख्या 5 वें प्रिंट संस्करण से थी।
mpiktas

13
@mpiktas पर हाजिर है। यहाँ वास्तविक पाठ है:The training set is used to fit the models; the validation set is used to estimate prediction error for model selection; the test set is used for assessment of the generalization error of the final chosen model. Ideally, the test set should be kept in a “vault,” and be brought out only at the end of the data analysis.
arun

जवाबों:


254

सामान्य रूप से पर्यवेक्षित शिक्षण करने के लिए आपको दो प्रकार के डेटा सेट की आवश्यकता होती है:

  1. एक डेटासेट (आपके "सोने के मानक") में आपके पास सही / अपेक्षित आउटपुट के साथ इनपुट डेटा होता है, यह डेटासेट आमतौर पर मनुष्यों द्वारा या अर्ध-स्वचालित तरीके से कुछ डेटा एकत्र करके विधिवत तैयार किया जाता है। लेकिन यह महत्वपूर्ण है कि आपके पास यहां हर डेटा पंक्ति के लिए अपेक्षित आउटपुट हो, क्योंकि पर्यवेक्षित शिक्षण के लिए आपको इसकी आवश्यकता है।

  2. जिस डेटा को आप अपने मॉडल पर लागू करने जा रहे हैं। कई मामलों में यह वह डेटा है जिसमें आप अपने मॉडल के आउटपुट के लिए रुचि रखते हैं और इस प्रकार आपके पास अभी तक कोई "अपेक्षित" आउटपुट नहीं है।

मशीन सीखने के दौरान आप निम्नलिखित कार्य करते हैं:

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

सत्यापन चरण को अक्सर दो भागों में विभाजित किया जाता है :

  1. पहले भाग में आप केवल अपने मॉडल को देखते हैं और सत्यापन डेटा (= सत्यापन) का उपयोग करके सबसे अच्छा प्रदर्शन करने वाले दृष्टिकोण का चयन करते हैं
  2. फिर आप चयनित दृष्टिकोण (= परीक्षण) की सटीकता का अनुमान लगाते हैं।

इसलिए 50/25/25 पर जुदाई।

यदि आपको कई प्रतिद्वंद्वी दृष्टिकोणों से उपयुक्त मॉडल चुनने की आवश्यकता नहीं है, तो आप अपने सेट को फिर से विभाजित कर सकते हैं कि आपके पास मूल रूप से केवल प्रशिक्षण सेट और परीक्षण सेट है, बिना आपके प्रशिक्षित मॉडल के सत्यापन के। मैं व्यक्तिगत रूप से उन्हें 70/30 तब विभाजन करता हूं।

यह प्रश्न भी देखें ।


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

4
क्या यह ओवरफिटिंग की वजह से है? या क्योंकि हम परीक्षण के परिणाम के आधार पर कुछ स्वतंत्र आँकड़े चाहते हैं, सिर्फ त्रुटि अनुमान के लिए?
सेबस्टियन ग्राफ

12
@ सेबैस्टियन [यदि आप केवल परीक्षण सेट का उपयोग करते हैं: "अंतिम चुने गए मॉडल का परीक्षण सेट त्रुटि कभी-कभी महत्वपूर्ण परीक्षण त्रुटि को कम कर देगा," [
हस्ती

23
सत्यापन सेट का उपयोग अक्सर हाइपर-मापदंडों को ट्यून करने के लिए किया जाता है। उदाहरण के लिए, डीप लर्निंग कम्युनिटी में, नेटवर्क लेयर साइज, हिडन यूनिट नंबर,
रेगुलराइजेशन

2
सेट को विभाजित करने का सही तरीका क्या है? क्या चयन यादृच्छिक होना चाहिए? यदि आपके पास ऐसी तस्वीरें हैं जो समान हैं? क्या यह आपके सामान्यीकरण की क्षमता को नुकसान नहीं पहुंचाएगा? यदि आपके पास अलग-अलग स्थानों में दो सेट हैं, तो एक को प्रशिक्षण सेट और दूसरे को परीक्षण सेट के रूप में लेना बेहतर नहीं होगा?
योनातन सिमसन

263

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

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

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

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

स्रोत: पैटर्न विश्लेषण का परिचय, रिकार्डो गुतिरेज़-ओसुनाटेक्सस ए एंड एम विश्वविद्यालय, टेक्सास एएंडएम विश्वविद्यालय


42
+1 के लिए "आप किसी भी आगे मॉडल ट्यून नहीं करना चाहिए!"
स्टेमैक्स

6
"फिट पैरामीटर" और "मापदंडों को ट्यून करें" के बीच अंतर क्या है?
मेटेरियट

18
@stmax पांडित्यपूर्ण नहीं है, लेकिन एक बार जब हम अपनी अंतिम परीक्षा में त्रुटि करते हैं और हम परिणाम से संतुष्ट नहीं होते हैं, तो हम क्या करते हैं, अगर हम अपने मॉडल को किसी भी तरह से ट्यून नहीं करते हैं? ... मैंने अक्सर इस मामले के बारे में सोचा है।
स्पेसी

5
@ टारेंटयुला आप मॉडल ट्यूनिंग जारी रख सकते हैं, लेकिन आपको एक नया परीक्षण सेट इकट्ठा करना होगा। बेशक कोई भी ऐसा नहीं करता है;) लेकिन इसका उल्लंघन करते हुए (विशेषकर जब आप इसे कई बार दोहराते हैं) हो सकता है कि आपका मॉडल टेस्ट सेट को फिट कर दे - जिसके परिणामस्वरूप अवास्तविक / बहुत आशावादी स्कोर मिलता है।
स्टमैक्स

4
मुझे लगता है कि यह नामकरण भ्रामक है। आप परीक्षण सेट का उपयोग करने के बाद "यू माईस्ट नॉट ट्यून द मॉडल द ट्यून", लेकिन ... आप किस क्षेत्र में क्या करना चाहते हैं, यह कहना सही है? इस पर काम करना बंद करें? वास्तव में आपको परीक्षण सेट की पूरी पदानुक्रम की आवश्यकता होती है। 1: वैधता सेट - एक मॉडल को ट्यूनिंग के लिए उपयोग किया जाता है, 2: टेस्ट सेट, एक मॉडल का मूल्यांकन करने के लिए इस्तेमाल किया जाता है और यह देखने के लिए कि क्या आपको ड्राइंग बोर्ड पर वापस जाना चाहिए, 3: सुपर-टेस्ट सेट, अंतिम-फाइनल एल्गोरिदम पर उपयोग किया जाता है कि कैसे देखें यह अच्छा है, 4: हाइपर-टेस्ट सेट, शोधकर्ताओं द्वारा 10 वर्षों के लिए एमएनआईएसटी एल्गोरिदम को विकसित करने के बाद उपयोग किया जाता है कि यह देखने के लिए कि वे कितने बड़े हैं ... आदि-आदि
टिम्मम्म

66

कंप्यूटर साइंस में मेरे 5 साल के अनुभव ने मुझे सिखाया कि सादगी से बेहतर कुछ भी नहीं है।

'ट्रेनिंग / क्रॉस-वैलिडेशन / टेस्ट' डेटा सेट की अवधारणा इस प्रकार सरल है। जब आपके पास एक बड़ा डेटा सेट होता है, तो इसे 3 भागों में विभाजित करने की अनुशंसा की जाती है:

++ प्रशिक्षण सेट (मूल डेटा सेट का 60%): यह हमारी भविष्यवाणी एल्गोरिथ्म का निर्माण करने के लिए उपयोग किया जाता है। हमारा एल्गोरिदम खुद को प्रशिक्षण डेटा सेट के quirks में ट्यून करने की कोशिश करता है। इस चरण में हम आमतौर पर क्रॉस-वैलिडेशन चरण के दौरान उनके प्रदर्शन की तुलना करने के लिए कई एल्गोरिदम बनाते हैं।

++ क्रॉस-वैलिडेशन सेट (मूल डेटा सेट का 20%): इस डेटा सेट का उपयोग प्रशिक्षण सेट के आधार पर बनाई गई भविष्यवाणी एल्गोरिदम के प्रदर्शन की तुलना करने के लिए किया जाता है। हम उस एल्गोरिथ्म को चुनते हैं जिसमें सबसे अच्छा प्रदर्शन है।

++ टेस्ट सेट (मूल डेटा सेट का 20%): अब हमने अपना पसंदीदा पूर्वानुमान एल्गोरिदम चुना है, लेकिन हम अभी तक यह नहीं जानते हैं कि यह वास्तविक दुनिया के डेटा को पूरी तरह से अनदेखा करने वाला है। इसलिए, हम अपने चुने हुए भविष्यवाणी एल्गोरिथ्म को अपने परीक्षण सेट पर लागू करते हैं ताकि यह देखा जा सके कि यह कैसा प्रदर्शन करने जा रहा है ताकि हम अनदेखे डेटा पर अपने एल्गोरिथ्म के प्रदर्शन के बारे में विचार कर सकें।

टिप्पणियाँ:

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

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


1
यह चरणों और इसके विपरीत के रूप में सेट को संदर्भित करना आसान और भ्रामक है।
मैट ओ'ब्रायन

2
@innovIsmail अगर मैं सत्यापन चरण को छोड़ दूं तो क्या होगा? कहो कि मेरे पास कई एल्गोरिदम हैं और मैंने उन्हें ट्रेन सेट पर प्रशिक्षित किया है, फिर मैं उन सभी को परीक्षण सेट पर लागू करता हूं, फिर मैं उस एक को
चुनता हूं

3
यह मुझे लगता है जैसे तुम तो बस परीक्षण कदम लंघन कर रहे हैं।
मिहाई

1
> भविष्यवाणी एल्गोरिदम के प्रदर्शन की तुलना करें - इस संदर्भ में "एक एल्गोरिथ्म" क्या है? आपका मॉडल एक एल्गोरिथ्म नहीं है? क्या किसी को कई मॉडल बनाने और उन्हें अलग-अलग प्रशिक्षित करने के लिए कई चरणों को मान्य करना होगा?
बोपिटी बोप

2
यह सादगी एक भ्रम है क्योंकि गैर-विशाल नमूना आकार की स्थिति में किसी को अलग-अलग भविष्य कहनेवाला एल्गोरिदम मिलेगा और सत्यापन के परिणाम यादृच्छिक विभाजन को दोहराए गए थे।
फ्रैंक हरेल

33

प्रत्येक चरण में आपको एक निर्णय लेने के लिए कहा जाता है (यानी कई विकल्पों में से एक विकल्प चुनें), आपके पास अपनी पसंद की सटीकता को निर्धारित करने के लिए एक अतिरिक्त सेट / विभाजन होना चाहिए ताकि आप बस यादृच्छिकता का सबसे अनुकूल परिणाम न चुनें और केंद्र 1 के लिए वितरण के पूंछ के अंत में गलती । बाईं ओर निराशावादी है। अधिकार आशावादी है। केंद्र व्यावहारिक है। व्यावहारिक बनें।

यहां छवि विवरण दर्ज करें

चरण 1) प्रशिक्षण: प्रत्येक प्रकार के एल्गोरिथ्म के अपने पैरामीटर विकल्प होते हैं (एक तंत्रिका नेटवर्क में परतों की संख्या, एक यादृच्छिक वन में पेड़ों की संख्या, आदि)। आपके प्रत्येक एल्गोरिदम के लिए, आपको एक विकल्प चुनना होगा। इसलिए आपके पास एक प्रशिक्षण सेट है।

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

चरण 3) परीक्षण: मुझे लगता है कि यदि आपके एल्गोरिदम में कोई पैरामीटर नहीं था, तो आपको तीसरे चरण की आवश्यकता नहीं होगी। उस स्थिति में, आपका सत्यापन चरण आपका परीक्षण कदम होगा। शायद मतलाब आपको मापदंडों के लिए नहीं पूछता है या आपने उन्हें इस्तेमाल न करने के लिए चुना है और यही आपकी उलझन का स्रोत है।

1 अक्सर यह धारणा (शून्य परिकल्पना) के साथ प्रत्येक चरण में जाने के लिए उपयोगी है कि सभी विकल्प समान हैं (जैसे सभी पैरामीटर समान हैं या सभी एल्गोरिदम समान हैं), इसलिए वितरण के लिए मेरा संदर्भ।

2 यह छवि मेरी अपनी नहीं है। मैंने इसे इस साइट से लिया है: http://www.teamten.com/lawrence/writings/bell-curve.png


3
मुझे लगता है कि पहला वाक्य इस प्रश्न के मौलिक उत्तर को अन्य उत्तरों की तुलना में बेहतर तरीके से पकड़ता है। "प्रत्येक कदम पर जो आपको एक निर्णय लेने के लिए कहा जाता है (यानी कई विकल्पों में से एक विकल्प चुनें), आपके पास अपनी पसंद की सटीकता को मापने के लिए एक अतिरिक्त सेट / पार्टीशन होना चाहिए ..."
kobejohn

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

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

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

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

21

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


1
तो आप भविष्य कहनेवाला मॉडल परीक्षण / सत्यापन के लिए बड़े डेटा-सेट के विभाजन के माध्यम से क्रॉस-सत्यापन की वकालत नहीं करते हैं?
OFish

9
नहीं, जब तक कि डेटासेट विशाल या संकेत नहीं है: शोर अनुपात अधिक है। मेरे अनुभव में क्रॉस-सत्यापन बूटस्ट्रैप जितना सटीक नहीं है, और यह पूरे नमूना आकार का उपयोग नहीं करता है। कई मामलों में आपको पर्याप्त परिशुद्धता प्राप्त करने के लिए 50-100 बार क्रॉस-सत्यापन को दोहराना होगा। लेकिन आपके डेटासेट में> 20,000 विषय हैं, सरल दृष्टिकोण जैसे विभाजन-नमूना सत्यापन अक्सर ठीक होते हैं।
फ्रैंक हरेल

2
यह जानना वास्तव में अच्छा है! धन्यवाद। और आप से आ रहा है, कि जानकारी का एक महान "स्रोत" है। चीयर्स!
OFish

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

1
हां दोहराने पर जोर देने के साथ । यह एकल विभाजन है जो समस्याग्रस्त है।
फ्रैंक हरेल

13

एक विशिष्ट मशीन लर्निंग कार्य को निम्नलिखित नेस्टेड लूप के रूप में देखा जा सकता है:

while (error in validation set > X) {
    tune hyper-parameters
    while (error in training set > Y) {
        tune parameters
    }
}

आमतौर पर बाहरी लूप मानव द्वारा , सत्यापन सेट पर , और आंतरिक लूप मशीन द्वारा , प्रशिक्षण सेट पर किया जाता है । फिर आपको मॉडल के अंतिम प्रदर्शन का आकलन करने के लिए एक 3 जी परीक्षण सेट की आवश्यकता होती है ।

दूसरे शब्दों में, सत्यापन सेट मानव के लिए प्रशिक्षण सेट है।


9

इन तीन सेटों के बारे में सोचने का एक तरीका यह है कि उनमें से दो ( trainingऔर validation) अतीत से आते हैं, जबकि testसेट "भविष्य" से आता है। मॉडल को "अतीत" ( training/ validationडेटा) से डेटा का उपयोग करके बनाया और ट्यून किया जाना चाहिए , लेकिन कभी भी testडेटा जो "भविष्य" से आता है।

एक व्यावहारिक उदाहरण देने के लिए, मान लें कि हम भविष्य में बेसबॉल खिलाड़ी कितना अच्छा प्रदर्शन करेंगे, इसका अनुमान लगाने के लिए हम एक मॉडल का निर्माण कर रहे हैं। A testऔर validationसेट बनाने के लिए हम 1899-2014 के डेटा का उपयोग करेंगे । एक बार जब मॉडल बनाया जाता है और उन डेटा पर ट्यून किया जाता है, तो हम 2015 से डेटा का उपयोग करेंगे (वास्तव में अतीत में!) एक परीक्षण सेट के रूप में, जो मॉडल के दृष्टिकोण से "भविष्य" डेटा की तरह दिखाई देता है और किसी भी तरह से मॉडल निर्माण को प्रभावित नहीं करता है । (जाहिर है, सिद्धांत रूप में, हम 2016 के आंकड़ों की प्रतीक्षा कर सकते हैं यदि हम वास्तव में चाहते हैं!)

जाहिर है कि मैं हर जगह उद्धरण का उपयोग कर रहा हूं, क्योंकि डेटा का वास्तविक अस्थायी क्रम वास्तविक भविष्य के साथ मेल नहीं खा सकता है (परिभाषा के अनुसार सभी डेटा पीढ़ी शायद वास्तविक अतीत में हुई थी)। हकीकत में, testसेट केवल उसी समय अवधि के डेटा training/ validationसेट्स के रूप में हो सकता है , जिसे आप "होल्ड आउट" करते हैं। इस तरह, मॉडल को ट्यून करने पर इसका कोई प्रभाव नहीं था, लेकिन डेटा को रखने वाले वास्तव में भविष्य से नहीं आ रहे हैं।


4
अन्य सभी उत्तरों को पढ़ने के बाद, इस उत्तर ने इसे मेरे लिए "क्लिक" कर दिया! आप ट्रेन सेट के साथ प्रशिक्षण लेते हैं, जांच लें कि आप सत्यापन सेट के साथ ओवरफिटिंग नहीं कर रहे हैं (और यह कि मॉडल और हाइपरपरमेटर्स "अज्ञात डेटा" के साथ काम करते हैं), और फिर आप परीक्षण सेट के साथ आकलन करते हैं - "नया डेटा" - चाहे आप अभी किसी भी भविष्यवाणी की शक्ति है ..!
स्टॉल्सविक

यह इस दृष्टि से देखने का एक उचित तरीका है कि testडेटा को कभी प्रशिक्षण प्रक्रिया का हिस्सा नहीं होना चाहिए: और यदि हम इसे "भविष्य" डेटा के रूप में मानते हैं तो यह एक असंभव गलती बन जाती है।
जावदबा

7

अधिकांश पर्यवेक्षण डेटा खनन एल्गोरिदम इन तीन चरणों का पालन करते हैं:

  1. प्रशिक्षण सेट मॉडल बनाने के लिए प्रयोग किया जाता है। इसमें डेटा का एक सेट होता है जिसमें लक्ष्य और पूर्वसूचक चर होते हैं।
  2. आमतौर पर एक होल्ड-आउट डाटासेट या परीक्षण सेट का उपयोग यह निर्धारित करने के लिए किया जाता है कि प्रशिक्षण सेट के बाहर मॉडल डेटा के साथ कितना अच्छा करता है। परीक्षण सेट में प्रीक्लासीफाइड परिणाम डेटा होता है, लेकिन उनका उपयोग तब नहीं किया जाता है जब परीक्षण सेट डेटा मॉडल के माध्यम से अंत तक चलाया जाता है, जब प्रीक्लास किए गए डेटा की तुलना मॉडल परिणामों के खिलाफ की जाती है। परीक्षण सेट पर त्रुटि को कम करने के लिए मॉडल को समायोजित किया जाता है।
  3. एक और होल्ड-आउट डाटासेट या सत्यापन सेट का उपयोग चरण 2 में समायोजित मॉडल का मूल्यांकन करने के लिए किया जाता है, जहां, फिर से, सत्यापन सेट डेटा समायोजित मॉडल के खिलाफ चलाया जाता है और अप्रयुक्त प्रीक्लासीफाइड डेटा की तुलना में परिणाम होता है।

4

कुछ लोगों को भ्रम है कि हम एक सत्यापन सेट का उपयोग क्यों करते हैं, इसलिए मैं एक सरल, सहज ज्ञान युक्त स्पष्टीकरण दूंगा कि यदि आप एक सत्यापन डेटासेट का उपयोग नहीं करते हैं तो क्या होगा।

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

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


2

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

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


-1

मेरा विचार यह है कि तंत्रिका नेटवर्क टूलबॉक्स में वे विकल्प ओवरफिटिंग से बचने के लिए हैं। इस स्थिति में वजन केवल प्रशिक्षण डेटा के लिए निर्दिष्ट किया जाता है और वैश्विक प्रवृत्ति को प्रदर्शित नहीं करता है। एक सत्यापन सेट होने से, पुनरावृत्तियों अनुकूलन के लिए अनुकूल हैं जहां प्रशिक्षण डेटा त्रुटि में कमी का कारण सत्यापन डेटा में कमी और सत्यापन डेटा त्रुटि में वृद्धि होती है; प्रशिक्षण डेटा त्रुटि में कमी के साथ, यह ओवरफिटिंग घटना को दर्शाता है।


मैं कहता हूं कि परीक्षण सेट पूरी प्रक्रिया में एक पवित्रता जांच जोड़ता है। आपके पास एक प्रशिक्षण वक्र हो सकता है जो हर युग में सत्यापन / हानि वक्र की नकल करता है। लेकिन अगर आपके टेस्ट सेट की सटीकता युगों या टैंकों के साथ नहीं सुधरती है तो आप अच्छे नहीं हैं। आप ओवरफिटिंग कर रहे हैं।
अगकला
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.