क्या किसी प्रशिक्षण और सत्यापन सेट में किसी डेटासेट को विभाजित करने का एक नियम है?


194

क्या प्रशिक्षण और सत्यापन सेट में डेटा को सबसे अच्छे तरीके से विभाजित करने का एक नियम है? क्या 50/50 का विभाजन भी उचित है? या सत्यापन डेटा (या इसके विपरीत) के सापेक्ष अधिक प्रशिक्षण डेटा होने के स्पष्ट लाभ हैं? या यह विकल्प बहुत अधिक आवेदन पर निर्भर है?

मैं क्रमशः 80% / 20% प्रशिक्षण और सत्यापन डेटा का उपयोग कर रहा हूं, लेकिन मैंने बिना किसी राजसी कारण के इस विभाजन को चुना। क्या कोई व्यक्ति जो मशीन सीखने में अधिक अनुभवी है, मुझे सलाह दे सकता है?


यदि आपके पास बहुत अधिक डेटा उपलब्ध नहीं है, तो en.wikipedia.org/wiki/Resampling_(statistics)#Jackknife
nair.ashvin

जवाबों:


221

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

यदि आपके पास कुल 100 उदाहरण हैं, तो आप शायद क्रॉस सत्यापन के साथ फंस गए हैं क्योंकि कोई भी विभाजन आपके अनुमानों में आपको संतोषजनक रूप नहीं दे रहा है। यदि आपके पास 100,000 उदाहरण हैं, तो यह वास्तव में मायने नहीं रखता है कि आप 80:20 विभाजन या 90:10 विभाजन चुनते हैं (वास्तव में आप कम प्रशिक्षण डेटा का उपयोग करने का चयन कर सकते हैं यदि आपकी विधि विशेष रूप से कम्प्यूटेशनल रूप से गहन है)।

यह मानते हुए कि आपके पास समुचित आउट-आउट परीक्षण डेटा (क्रॉस-वैधीकरण के बजाय) करने के लिए पर्याप्त डेटा है, निम्नलिखित विभिन्न प्रकारों पर एक हैंडल पाने के लिए एक शिक्षाप्रद तरीका है:

  1. अपने डेटा को प्रशिक्षण और परीक्षण में विभाजित करें (80/20 वास्तव में एक अच्छा प्रारंभिक बिंदु है)
  2. प्रशिक्षण डेटा को प्रशिक्षण और सत्यापन में विभाजित करें (फिर से, 80/20 एक उचित विभाजन है)।
  3. अपने प्रशिक्षण डेटा के यादृच्छिक चयन की सदस्यता लें, इसके साथ क्लासिफायर ट्रेन करें और सत्यापन सेट पर प्रदर्शन रिकॉर्ड करें
  4. विभिन्न प्रकार के प्रशिक्षण डेटा के साथ रनों की एक श्रृंखला का प्रयास करें: यादृच्छिक रूप से इसका 20% नमूना, 10 बार कहें और सत्यापन डेटा पर प्रदर्शन का निरीक्षण करें, फिर 40%, 60%, 80% के साथ ऐसा ही करें। आपको अधिक डेटा के साथ अधिक से अधिक प्रदर्शन करना चाहिए, लेकिन विभिन्न यादृच्छिक नमूनों में कम विचरण करना चाहिए
  5. परीक्षण डेटा के आकार के कारण विचरण पर एक हैंडल प्राप्त करने के लिए, रिवर्स में समान प्रक्रिया करें। अपने सभी प्रशिक्षण डेटा पर ट्रेन करें, फिर बेतरतीब ढंग से अपने सत्यापन डेटा का प्रतिशत कई बार नमूना करें , और प्रदर्शन का निरीक्षण करें। अब आपको पता होना चाहिए कि आपके सत्यापन डेटा के छोटे नमूनों पर औसत प्रदर्शन लगभग सभी सत्यापन डेटा पर प्रदर्शन के समान है, लेकिन परीक्षण नमूनों की छोटी संख्या के साथ विचरण बहुत अधिक है

धन्यवाद, यह भी बहुत उपयोगी है! मुझे इसे एक मौका और देना होगा। FYI करें, मेरे पास प्रशिक्षण डेटा के लगभग 6000 उदाहरण हैं। मैं एसवीएम का उपयोग कर रहा हूं, इसलिए प्रदर्शन कुछ हद तक एक मुद्दा है।
12

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

और 6000 उदाहरणों के लिए पर्याप्त होना चाहिए कि परीक्षण के लिए 10% या 20% का उपयोग करने के बीच अंतर इतना महान नहीं होगा (आप मेरे द्वारा वर्णित विधि का उपयोग करके इसकी पुष्टि कर सकते हैं)
बेन एलीसन

1
फिर से नमस्कार। मैं # 5 बिंदु में थोड़ा भ्रमित हूँ। आपने कहा "फिर बेतरतीब ढंग से अपने सत्यापन डेटा का एक प्रतिशत नमूना कई बार"। क्या आपको इसके बजाय परीक्षण डेटा देखने का मतलब था ? अगर मुझे सही समझ में आता है, तो मुझे अपने डेटा को पहले प्रशिक्षण और डेटासेट में विभाजित करना चाहिए, फिर मेरे कुछ प्रशिक्षण डेटासेट को वैध डेटासेट में भाग देना चाहिए। तो चरण 5 में, अगर मैं अपने परीक्षण डेटा पर विचरण को माप रहा हूं, तो क्या मुझे अपने परीक्षण डेटा से बेतरतीब ढंग से जनसंख्या का नमूना नहीं लेना चाहिए? या क्या मैं कुछ न कुछ भूल रहा हूं?
लूटना

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

54

आपको यह जानकर आश्चर्य होगा कि 80/20 एक सामान्य रूप से होने वाला अनुपात है, जिसे अक्सर पेरेटो सिद्धांत के रूप में जाना जाता है । यदि आप उस अनुपात का उपयोग करते हैं तो यह आमतौर पर एक सुरक्षित शर्त है।

हालाँकि, आपके द्वारा नियोजित प्रशिक्षण / सत्यापन पद्धति के आधार पर, अनुपात बदल सकता है। उदाहरण के लिए: यदि आप 10-गुना क्रॉस सत्यापन का उपयोग करते हैं, तो आप प्रत्येक गुना पर 10% के सत्यापन सेट के साथ समाप्त होंगे।

प्रशिक्षण सेट और सत्यापन सेट के बीच उचित अनुपात क्या है, इस बारे में कुछ शोध हुए हैं :

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

अपने निष्कर्ष में वे एक सूत्र निर्दिष्ट करते हैं:

प्रशिक्षण सेट (टी) आकार अनुपात, वी / टी, एलएन (एन / एच-मैक्स) जैसे तराजू, जहां एन पहचानकर्ताओं के परिवारों की संख्या है और एच-मैक्स उन परिवारों की सबसे बड़ी जटिलता है।

जटिलता से उनका क्या अर्थ है:

पहचानकर्ता के प्रत्येक परिवार को इसकी जटिलता की विशेषता है, जो वीसी-आयाम , विवरण लंबाई, समायोज्य मापदंडों की संख्या या जटिलता के अन्य उपायों से संबंधित हो सकता है या नहीं ।

अंगूठे का पहला नियम लेना (ievalidation सेट, मुफ्त समायोज्य मापदंडों की संख्या के वर्गमूल के व्युत्क्रमानुपाती होना चाहिए), आप यह निष्कर्ष निकाल सकते हैं कि यदि आपके पास 32 समायोज्य पैरामीटर हैं, तो 32 का वर्गमूल ~ 5.65 है, अंश होना चाहिए। 1 / 5.65 या 0.177 (वी / टी)। मोटे तौर पर 17.7% सत्यापन के लिए और 82.3% प्रशिक्षण के लिए आरक्षित होना चाहिए।


2
पेपर, उन लोगों के लिए जो इसे अपने जैसे लोड करने में कठिनाई कर सकते हैं (निश्चित रूप से क्यों नहीं), यह है: "सत्यापन-सेट प्रशिक्षण-सेट अनुपात आकार के लिए एक स्केलिंग कानून" (I. गयोन, 1996, अप्रकाशित तकनीकी रिपोर्ट, एटीएंडटी बेल प्रयोगशालाओं) )।
Theforestecologist

3
क्या अंगूठे का नियम समझ में आता है? यदि आपके पास दो समायोज्य पैरामीटर हैं तो अनुपात 0.77 है, जिसका अर्थ है कि आप सत्यापन के लिए 77% का उपयोग करेंगे। Imho समस्या मुक्त पैरामीटर परिभाषा है। एक रैखिक एसवीएम के लिए आप त्रुटि पैरामीटर के लिए पेनल्टी पैरामीटर सी सेट कर सकते हैं जो एक पैरामीटर है, लेकिन एसवीएम के लिए जटिलता उच्च आयाम + 1 है।
रीड रिचर्ड्स

4
अगर मेरे पास तंत्रिका नेटवर्क है तो क्या मेरा परीक्षण आकार 1 होना चाहिए ..?
येलोपिलो

51

पिछले साल, मैंने प्रो: एंड्रयू एनजी का ऑनलाइन मशीन लर्निंग कोर्स लिया। उनकी सिफारिश थी:

प्रशिक्षण : 60%

क्रॉस सत्यापन : 20%

परीक्षण : 20%


20
coursera.org/learn/deep-neural-network/lecture/cxG1s/…। in the modern big data era, where, for example, you might have a million examples in total, then the trend is that your dev (cross validation) and test sets have been becoming a much smaller percentage of the total. उनका कहना है कि यह 99.5: 0.25: 0.25 हो सकता है।
नोबू

9

वैसे आपको एक और बात सोचनी चाहिए।

यदि आपके पास वास्तव में बड़े डेटासेट हैं, जैसे 1,000,000 उदाहरण, तो विभाजन 80/10/10 अनावश्यक हो सकता है, क्योंकि 10% = 100,000 उदाहरण यह बताने के लिए आवश्यक नहीं है कि मॉडल ठीक काम करता है।

शायद 99 / 0.5 / 0.5 पर्याप्त है, क्योंकि 5,000 उदाहरण डेटा में अधिकांश विचरण का प्रतिनिधित्व कर सकते हैं और आप आसानी से बता सकते हैं कि मॉडल परीक्षण और देव में इस 5,000 उदाहरणों के आधार पर अच्छा काम करता है।


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

2

मान लीजिए कि आपके पास कम डेटा है, तो मैं 70%, 80% और 90% की कोशिश करने का सुझाव देता हूं और बेहतर परिणाम दे रहा हूं। 90% के मामले में संभावना है कि 10% परीक्षण के लिए आपको खराब सटीकता मिलती है।


1

शायद 63.2% / 36.8% एक उचित विकल्प है। कारण हो सकता है कि यदि आप एक कुल नमूने का आकार था n और बेतरतीब ढंग से नमूने के प्रतिस्थापन के साथ (उर्फ फिर से नमूना, सांख्यिकीय बूटस्ट्रैप के रूप में) चाहता था n मामलों प्रारंभिक से बाहर n , एक व्यक्ति के मामले की संभावना में चुने जाने पुनः नमूना लगभग 0.632 होगा, बशर्ते कि n बहुत छोटा न हो, जैसा कि यहां बताया गया है: https://stats.stackexchange.com/a/88993/16263

N = 250 के नमूने के लिए , एक व्यक्तिगत मामले को फिर से नमूने के लिए 4 अंकों के लिए चुने जाने की संभावना 0.6329 है। N = 20000 के नमूने के लिए , संभावना 0.6321 है।


1

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

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