डेटासेट: मूल डेटासेट को विभाजित करना

सभी अच्छे सॉफ़्टवेयर इंजीनियरिंग प्रोजेक्ट काफ़ी ऊर्जा खर्च करते हैं टेस्टिंग. हमारा सुझाव है कि आप एमएल मॉडल, ताकि अपने अनुमान के सटीक होने का पता लगाया जा सके.

ट्रेनिंग, पुष्टि, और टेस्ट सेट

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

आठवीं इमेज. एक हॉरिज़ॉन्टल बार, जिसे दो हिस्सों में बांटा गया है: जिसमें से ~80%
            ट्रेनिंग सेट है और ~20% टेस्ट सेट है.
आठवीं इमेज. सही स्प्लिट नहीं है.

 

कसरत: अपने दिल की सुनें

मान लें कि आपने ट्रेनिंग सेट पर ट्रेनिंग दी है और टेस्ट सेट पर आकलन किया है से जुड़े सवालों का जवाब दे रहे हैं. हर राउंड में, आप टेस्ट सेट के नतीजों का इस्तेमाल करते हैं का इस्तेमाल करें. क्या तुम क्या इस तरीके में कोई गलती नज़र आती है? सिर्फ़ एक जवाब चुनें.
इस प्रक्रिया के कई बार अपनाने से, मॉडल ताकि वे टेस्ट सेट की खास बातों के साथ काम कर सकें.
हां! जितनी बार एक ही टेस्ट सेट का इस्तेमाल किया जाएगा, वह मॉडल, टेस्ट सेट के हिसाब से फ़िट हो सकता है. जिस तरह "टेस्ट के सिखाने वाले" शिक्षक की तरह, अनजाने में मॉडल परीक्षण सेट के साथ फ़िट होता है, जिससे यह मॉडल के लिए कठिन हो सकता है कॉन्टेंट बनाने में मदद करता है.
यह तरीका सही है. आखिरकार, आप YouTube पर ट्रेनिंग सेट और एक अलग टेस्ट सेट पर आकलन करना होगा.
दरअसल, यहां एक मामूली समस्या है. इस बारे में सोचें कि धीरे-धीरे ग़लतियाँ हो सकती हैं.
यह तरीका कंप्यूटेशन के हिसाब से कम सटीक है. न बदलें हाइपर पैरामीटर या सुविधा के सेट का इस्तेमाल किया जा सकता है.
बार-बार जांच कराना महंगा है, लेकिन यह बेहद ज़रूरी है. हालांकि, अक्सर टेस्टिंग में अतिरिक्त ट्रेनिंग का खर्च कम होता है. ऑप्टिमाइज़ किया जा रहा है हाइपर पैरामीटर और सुविधा का सेट नाटकीय रूप से बेहतर हो सकता है मॉडल की गुणवत्ता, इसलिए हमेशा बजट समय और कंप्यूटेशनल संसाधन हम इन पर काम कर रहे हैं.

डेटासेट को दो सेट में बांटना एक अच्छा विचार है, लेकिन बेहतर तरीका यह है कि डेटासेट को तीन सबसेट में बांटा जाए. ट्रेनिंग सेट और टेस्ट सेट के अलावा, तीसरा सबसेट यह है:

नौवीं इमेज. एक हॉरिज़ॉन्टल बार, जिसे तीन हिस्सों में बांटा गया है: जिसमें से 70% हिस्सा
            ट्रेनिंग सेट है, 15% पुष्टि सेट है, और 15%
            टेस्ट सेट
नौवीं इमेज. बंटवारा ज़्यादा बेहतर है.

ट्रेनिंग सेट से मिले नतीजों का आकलन करने के लिए, पुष्टि करने के सेट का इस्तेमाल करें. पुष्टि करने वाले सेट के बार-बार इस्तेमाल से पता चलता है कि आपका मॉडल तो अपने मॉडल की दोबारा जाँच करने के लिए टेस्ट सेट का इस्तेमाल करें.

नीचे दिए गए डायग्राम में, इस वर्कफ़्लो के बारे में बताया गया है. इमेज में, "ट्वीक मॉडल" यानी, मॉडल में कोई भी बदलाव करना —लर्निंग रेट में बदलाव करने से लेकर, डेटा जोड़ने या हटाने तक जिसमें शुरुआत से एक बिलकुल नया मॉडल डिज़ाइन किया जा सकता है. इस वर्कफ़्लो के आखिर में, आपको वह मॉडल चुनना होता है जो टेस्ट सेट के हिसाब से सबसे सही होता है.

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

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

कसरत: अपने दिल की सुनें

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

टेस्ट सेट से जुड़ी अन्य समस्याएं

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

उदाहरण के लिए, ऐसे मॉडल पर विचार करें जो यह अनुमान लगाता है कि कोई ईमेल स्पैम है या नहीं. विषय, ईमेल का मुख्य हिस्सा, और ईमेल भेजने वाले का ईमेल पता. मान लें कि आपने डेटा को 80-20 के हिसाब से ट्रेनिंग और टेस्ट सेट में बांटा है. ट्रेनिंग के बाद, मॉडल को ट्रेनिंग सेट और टेस्ट सेट. ऐसा हो सकता है कि टेस्ट सेट पर सटीक नतीजे न मिलें, इसलिए डेटा पर दोबारा गौर करें और पता लगाएं कि इस टेस्ट में सेट, ट्रेनिंग सेट में मौजूद उदाहरणों के डुप्लीकेट हैं. समस्या यह है कि आपके इनपुट से एक ही स्पैम ईमेल के लिए डुप्लीकेट एंट्री को स्क्रब नहीं किया गया को इकट्ठा किया जा सकता है. आपने अनजाने में कुछ चीज़ों को ट्रेनिंग दी है टेस्ट डेटा.

सारांश में, एक अच्छा टेस्ट सेट या पुष्टि करने वाला सेट इन सभी ज़रूरी शर्तों को पूरा करता है जैसे:

  • आँकड़ो युक्त महत्वपूर्ण प्रयोग परिणाम देने के लिए काफ़ी बड़ा.
  • पूरे डेटासेट का प्रतिनिधि. अन्य शब्दों में, इसे न चुनें ट्रेनिंग सेट से अलग विशेषताओं वाला टेस्ट सेट.
  • उस असल डेटा का प्रतिनिधि जो मॉडल को मिलने वाला है भी शामिल है.
  • ट्रेनिंग सेट में किसी भी उदाहरण को डुप्लीकेट नहीं किया गया.

व्यायाम: अपनी समझ को परखें

उदाहरणों की तय संख्या वाला एक डेटासेट दिए जाने पर, इनमें से कौनसे स्टेटमेंट सही हैं?
मॉडल की जांच में इस्तेमाल किए जाने वाले हर उदाहरण का इस्तेमाल कम उदाहरण के तौर पर किया जाता है ट्रेनिंग दी हुई है.
उदाहरणों को ट्रेन/जांच/पुष्टि के सेट में बांटने पर, ज़ीरो-सम गेम होता है. यह मुख्य ट्रेड-ऑफ़ है.
परीक्षण सेट में उदाहरणों की संख्या इससे ज़्यादा होनी चाहिए पुष्टि करने वाले सेट में उदाहरणों की संख्या.
सिद्धांत के तौर पर, पुष्टि करने के सेट और टेस्ट टेस्ट में तकरीबन उतने ही उदाहरण दिए जा सकते हैं.
परीक्षण सेट में उदाहरणों की संख्या इससे ज़्यादा होनी चाहिए पुष्टि करने के सेट या ट्रेनिंग सेट में उदाहरणों की संख्या.
प्रशिक्षण सेट में उदाहरणों की संख्या आमतौर पर इससे ज़्यादा होती है पुष्टि करने वाले सेट या टेस्ट सेट में उदाहरणों की संख्या; हालांकि, अलग-अलग सेट के लिए प्रतिशत की कोई शर्त नहीं है.
मान लें कि आपके परीक्षण सेट में आंकड़ों के हिसाब से अहम टेस्ट. इसके अलावा, इन पैंतरों से टेस्ट सेट से कम नुकसान होता है. हालांकि, मॉडल ने परफ़ॉर्मेंस असल दुनिया में कम हैं. ऐसे में आपको क्या करना चाहिए?
तय करें कि मूल डेटासेट और वास्तविक जीवन के डेटा में क्या अंतर है.
हां. यहां तक कि सबसे अच्छे डेटासेट, सिर्फ़ असल ज़िंदगी के डेटा का स्नैपशॉट होते हैं; बुनियादी जानकारी तथ्यों की सच्चाई जो समय के साथ बदलती रहती हैं. हालांकि आपका टेस्ट सेट आपके अच्छी मॉडल गुणवत्ता का सुझाव देने के लिए ट्रेनिंग सेट अच्छी तरह से सेट हो, आपके डेटासेट शायद असल दुनिया के डेटा से पूरी तरह से मेल नहीं खाता. आपको नए डेटासेट के लिए, फिर से ट्रेनिंग देनी पड़ सकती है और फिर से जांच करनी पड़ सकती है.
एक ही टेस्ट सेट पर फिर से टेस्ट करें. जांच के नतीजों में में सही नहीं थी.
हालांकि, फिर से जांच करने पर थोड़े अलग नतीजे मिल सकते हैं, शायद यह रणनीति बहुत मददगार न हो.
टेस्ट सेट में कितने उदाहरण होने चाहिए?
आंकड़ों के हिसाब से अहम जांच तैयार करने के लिए काफ़ी उदाहरण हैं.
हां. इसके कितने उदाहरण हैं? आपको प्रयोग करना होगा.
मूल डेटासेट का कम से कम 15%.
उदाहरण के लिए, शायद 15% इंप्रेशन काफ़ी न हों.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है