यहाँ उत्तरों के लिए एक परिशिष्ट के रूप में, मुझे दो लिंक मिले हैं जो वास्तव में मुझे यह समझने में मदद करते हैं कि यह एक अच्छी प्रक्रिया क्यों नहीं है:
संपादित करें: अनुरोध के अनुसार, लिंक की सामग्री का एक संक्षिप्त विवरण:
मान लीजिए कि मैं एक क्लासिफायरियर का प्रशिक्षण ले रहा हूं, और मेरे पास 1000 नमूनों का एक डेटासेट है, जिसमें प्रत्येक में 1 मिलियन सुविधाएँ हैं। मैं उन सभी को संसाधित नहीं कर सकता, इसलिए मुझे कम सुविधाओं की आवश्यकता है (कहते हैं, मैं 300 सुविधाओं की गणना कर सकता हूं)। मेरे पास मेरे आउट-ऑफ-सैंपल, वास्तविक-विश्व सटीकता का सही अनुमान लगाने के लिए 100 नमूनों का एक आयोजित-आउट टेस्ट सेट है।
अगर मैं अपनी 1 मिलियन सुविधाओं को 300 से नीचे फ़िल्टर करता हूं, तो अपने संपूर्ण डेटासेट के लक्ष्यों के लिए उच्चतम सहसंबंध के साथ उन सुविधाओं का चयन करके, मैं एक गलती कर रहा हूं (क्योंकि मैं ओवरफिटिंग का परिचय दे रहा हूं जिसे बाद में क्रॉस सत्यापन द्वारा पता नहीं लगाया जा सकता है)। मेरा आयोजित आउट-सेट एक खराब सटीकता मान वापस थूक कर दिखाएगा।
उपरोक्त लिंक के अनुसार, ऐसा करने का सही तरीका मेरे डेटासेट को एक प्रशिक्षण सेट और क्रॉस-वैलिडेशन सेट में विभाजित करना है, और फिर इस प्रशिक्षण सेट के आधार पर मेरे मॉडल (फ़िल्टरिंग सुविधाओं आदि) को ट्यून करना है और यह सीवी स्कोर से जुड़ा है। यदि मैं K- सिलवटों का उपयोग कर रहा हूं, तो मुझे हर बार खरोंच से ट्यून करना होगा जब मैं एक विभाजन / गुना बनाता हूं, और फिर परिणाम औसत करता हूं।
प्रोग्रामिक रूप से, आप निम्न कार्य करते हैं:
- होल्ड-आउट सेट के रूप में अपने डेटासेट का एक हिस्सा अलग रखें।
- अपने डेटासेट के शेष भाग को विभाजित करें (इसलिए T1 कहा जाता है) K- सिलवटों में।
- I = 1 से K तक के लिए लूप में, निम्नलिखित कार्य करें:
- अपने CV सेट के रूप में i'th फोल्ड का चयन करें, और आपके प्रशिक्षण सेट के रूप में शेष नमूने (इसलिए Ti कहा जाता है)।
- जो भी इंजीनियरिंग और सुविधा चयन चाहते हैं, उन्हें करें: सुविधाओं को फ़िल्टर करें, उन्हें गठबंधन करें आदि।
- अपने सीवी सेट (करंट फोल्ड, जिसे सीवीआई कहा जाता है) और अपने वर्तमान प्रशिक्षण सेट दोनों को उचित विशेषताओं के साथ एक में परिवर्तित करें।
- प्रशिक्षण सेट तिवारी पर अपने मॉडल को प्रशिक्षित करें
- वर्तमान तह, CVi से स्कोर प्राप्त करें। इस स्कोर को सभी स्कोर रखने वाली सूची में शामिल करें।
- अब, आपकी सूची में प्रत्येक गुना का स्कोर है, इसलिए आप इसे के-फोल्ड्स स्कोर प्राप्त करते हुए औसत करते हैं।
यह वास्तव में महत्वपूर्ण है कि आप पूर्ण प्रशिक्षण सेट, टी 1 के बजाय उप-प्रशिक्षण सेट, तिवारी पर लूप के अंदर फीचर इंजीनियरिंग का प्रदर्शन करें।
इसका कारण यह है कि जब आप टीआई के लिए फिट / फीचर इंजीनियर होते हैं, तो आप सीवीआई पर परीक्षण करते हैं, जो उस मॉडल के लिए अनदेखी है। जबकि, यदि आप T1 पर फिट / फीचर इंजीनियर हैं, तो आपके द्वारा चुना गया कोई भी CV एक सबसेट T1 होना चाहिए, और इसलिए आप आशावादी पक्षपाती होंगे, यानी आप ओवरफिट हो जाएंगे, क्योंकि आप एक ही डेटा नमूने पर प्रशिक्षण और परीक्षण कर रहे हैं।
वास्तव में अच्छा StackExchange उत्तर यह एक है, जो वास्तव में इसे और अधिक गहराई से और कोड के उदाहरण के साथ समझाता है। इसे एक परिशिष्ट के रूप में भी देखें ।