नेस्टेड क्रॉस सत्यापन में हाइपर पैरामीटर कैसे प्राप्त करें?


17

मैंने नेस्टेड क्रॉस सत्यापन के लिए निम्नलिखित पोस्ट पढ़ी हैं और अभी भी 100% सुनिश्चित नहीं हूं कि मुझे नेस्टेड क्रॉस सत्यापन के साथ मॉडल चयन के साथ क्या करना है:

मेरी उलझन को समझाने के लिए, मुझे नेस्टेड क्रॉस सत्यापन विधि के साथ मॉडल चयन के माध्यम से कदम से कदम मिलाकर चलने की कोशिश करनी चाहिए।

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

यह दृष्टिकोण SKLearn के उदाहरण पृष्ठ पर चित्रित किया गया है: http://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html

प्रश्न: 4. के बाद , आप कैसे निर्धारित करते हैं कि कौन से हाइपर पैरामीटर ने सबसे अच्छा काम किया? मैं समझता हूं कि आप अपने एल्गोरिथ्म (जैसे लॉजिस्टिक रिग्रेशन, रैंडम फॉरेस्ट, आदि) को अंत में सेट किए गए COMPLETE डेटा से प्रशिक्षित करना चाहते हैं। लेकिन आप यह कैसे निर्धारित करते हैं कि आपके नेस्टेड क्रॉस सत्यापन में कौन से हाइपर पैरामीटर ने सबसे अच्छा काम किया? मेरी समझ यह है कि प्रत्येक आंतरिक लूप के लिए, हाइपर मापदंडों का एक अलग सेट जीत जाएगा। और बाहरी लूप के लिए, आपको अपने GridSearchCV प्रदर्शन का अनुमान मिल रहा है, लेकिन आपको हाइपर मापदंडों का कोई एक विशेष सेट नहीं मिल रहा है। तो, अंतिम मॉडल निर्माण में, आप कैसे जानते हैं कि हाइपर मापदंडों का उपयोग कैसे करें? यही कारण है कि लापता तर्क मुझे अन्य treads से समझने में परेशानी है।

किसी भी सुझाव के लिए अग्रिम धन्यवाद, खासकर अगर @Dikran Marsupial और @cbeleites में झंकार कर सकते हैं!

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

संपादन 2: मैंने एक नोटबुक बनाई है जो नेस्टेड क्रॉस सत्यापन करने के दो तरीके दिखाती है। पहला तरीका SKLearn उदाहरण में दिखाया गया है, और दूसरा तरीका वह है जो मैंने लिखा है। जिस तरह से SKLearn में दिखाया गया है वह "जीतने वाले" हाइपरपरमेटर्स को उजागर नहीं करता है, लेकिन मेरा लंबा तरीका है। लेकिन सवाल वही रहता है। के बाद मैं नेस्टेड क्रॉस सत्यापन पूरा कर लिया है, यहां तक ​​कि हाइपरपरमेटर्स उजागर होने के बाद, अब मैं क्या करूं? जैसा कि आप नोटबुक के अंत में हाइपरपरमेटर्स से देख सकते हैं, वे काफी भिन्न होते हैं।


1
नोटबुक के लिए +1। यह प्रश्न मेरे लिए भी रूचि का है और इसका अनुसरण करेगा।
अर्नोल्ड क्लेन

जवाबों:


6

(मुझे यकीन है कि मैंने इसे पहले से ही कुछ उत्तर में लिखा था - लेकिन अभी यह नहीं मिल सकता है। यदि कोई भी उस उत्तर में ठोकर खाता है, तो कृपया लिंक करें)। मुझे यहां 2 अलग-अलग दृष्टिकोण दिखाई देते हैं, जो मुझे लगता है कि दोनों समझदार हैं।

लेकिन पहले कुछ शब्दावली:

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

दृष्टिकोण 1: स्थिर अनुकूलन परिणामों की आवश्यकता होती है

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

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

  1. सरोगेट मॉडल अभी भी आपस में बराबर (या समतुल्य) हैं लेकिन अंतिम मॉडल के लिए नहीं, हम क्रॉस वेलिडेशन के प्रसिद्ध निराशावादी पूर्वाग्रह के बारे में बात कर रहे हैं।

  2. अगर सरोगेट मॉडल भी एक दूसरे के बराबर / बराबर नहीं है, तो हमें अस्थिरता की समस्या है ।

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

हालांकि, इसका एक अपवाद है, हालांकि: व्यावहारिक उद्देश्यों के लिए समान प्रदर्शन करने वाले अनुकूलन में कई स्थानीय मिनीमा हो सकते हैं। उन्हें स्थिर रखने के लिए चुनाव की आवश्यकता भी एक अनावश्यक मजबूत आवश्यकता हो सकती है - लेकिन मुझे नहीं पता कि इस दुविधा से बाहर कैसे निकलें।

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

  • पी
  • लेकिन जब तक कोई निर्णय शामिल नहीं होता है क्योंकि सभी विभाजन समान मापदंडों को प्राप्त करते हैं, तो यह बाहरी लूप में स्वतंत्रता को तोड़ देगा: प्रत्येक विभाजन का परीक्षण डेटा पहले ही निर्णय में प्रवेश कर जाता है कि कौन सा पैरामीटर सेट जीतता है क्योंकि यह अन्य सभी विभाजन में प्रशिक्षण डेटा था और इस प्रकार उपयोग किया गया मापदंडों का अनुकूलन करने के लिए।

दृष्टिकोण 2: मॉडल प्रशिक्षण के एक भाग के रूप में हाइपरपैरेट ट्यूनिंग का इलाज करें

यह दृष्टिकोण "प्रशिक्षण एल्गोरिथ्म डेवलपर" के दृष्टिकोण को पूरा करता है और प्रशिक्षण एल्गोरिथ्म के उपयोगकर्ता को लागू करता है।

प्रशिक्षण एल्गोरिथ्म डेवलपर एक "नग्न" प्रशिक्षण एल्गोरिथ्म प्रदान करता है model = train_naked (trainingdata, hyperparameters)। के रूप में लागू उपयोगकर्ता की जरूरत है tunedmodel = train_tuned (trainingdata)जो भी hyperparameters को ठीक करने का ख्याल रखता है।

train_tunedनग्न प्रशिक्षण एल्गोरिथ्म के चारों ओर एक क्रॉस सत्यापन-आधारित ऑप्टिमाइज़र लपेटकर उदाहरण के लिए लागू किया जा सकता है train_naked

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

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


क्या फर्क पड़ता है?

हम संभवतः उन 2 दृष्टिकोणों को लेते हुए विभिन्न अंतिम मॉडलों के साथ समाप्त होते हैं:

  • दृष्टिकोण 1 में अंतिम मॉडल होगा train_naked (all data, hyperparameters from optimization)
  • जबकि एप्रोच 2 का उपयोग होगा train_tuned (all data)और - जैसा कि बड़े डेटा सेट पर फिर से हाइपरपैरेट ऑप्टिमाइज़ेशन चलाता है - यह हाइपरपरमीटर के एक अलग सेट के साथ समाप्त हो सकता है।

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


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


आइरिस उदाहरण

सारांश: अनुकूलन मूल रूप से व्यर्थ है। उपलब्ध नमूना आकार यहां किसी भी पैरामीटर सेट के प्रदर्शन के बीच अंतर की अनुमति नहीं देता है।

आवेदन के दृष्टिकोण से, हालांकि, निष्कर्ष यह है कि यह कोई फर्क नहीं पड़ता कि आपके द्वारा चुने गए 4 पैरामीटर में से कौन सा है - जो कि सभी बुरी खबरें नहीं हैं: आपको मापदंडों का तुलनात्मक रूप से स्थिर पठार मिला। ट्यून किए गए मॉडल के उचित नेस्टेड सत्यापन का लाभ यहां मिलता है: जब आप यह दावा करने में सक्षम नहीं होते हैं कि यह इष्टतम मॉडल है, तो आप अभी भी दावा करने में सक्षम हैं कि दृष्टिकोण 2 का उपयोग करके पूरे डेटा पर बनाया गया मॉडल होगा लगभग 97% सटीकता (150 परीक्षण मामलों में से 145 सही के लिए 95% विश्वास अंतराल: 92 - 99%)

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

हालांकि मैं SVM में इतना गहरा नहीं हूं कि "सी" 1 को "अच्छा" चुना जा सके, मैं यहां अधिक प्रतिबंधात्मक रैखिक कर्नेल के साथ जाऊंगा। साथ ही, जैसा कि आपने ऑप्टिमाइज़ेशन किया था , विजेता पैरामीटर सेट को चुनने में कुछ भी गलत नहीं है, भले ही आप जानते हों कि सभी पैरामीटर सेट व्यावहारिक रूप से समान प्रदर्शन की ओर ले जाते हैं।

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

दीर्घ संस्करण:

उदाहरण के लिए irisडेटा सेट पर परिणाम । iris150 मामले हैं, 2 x 2 मापदंडों (2 गुठली, जुर्माना के लिए परिमाण के 2 आदेश C) के ग्रिड के साथ एसवीएम पर विचार किया जाता है।

इनर लूप में 129 (2x) और 132 (6x) केस होते हैं। "सबसे अच्छा" पैरामीटर सेट सी = 1. दोनों के साथ रैखिक या आरबीएफ कर्नेल के बीच अनिर्धारित है। हालांकि, आंतरिक परीक्षण सटीकता सभी हैं (हमेशा खोने सी = 10 सहित) 94 - 98.5% सटीकता के साथ। एक विभाजन में हमारे पास सबसे बड़ा अंतर 3 बनाम 8 त्रुटियों के लिए आरबीएफ के साथ सी = 1 बनाम 10 है।

वहाँ कोई रास्ता नहीं यह एक महत्वपूर्ण अंतर है। मुझे नहीं पता कि सीवी में अलग-अलग मामलों के लिए भविष्यवाणियां कैसे निकाली जाती हैं, लेकिन यह मानते हुए भी कि 3 त्रुटियां साझा की गईं, और C = 10 मॉडल ने अतिरिक्त 5 त्रुटियां बनाईं:

> table (rbf1, rbf10)
         rbf10
rbf1      correct wrong
  correct     124     5
  wrong         0     3

> mcnemar.exact(rbf1, rbf10)

    Exact McNemar test (with central confidence intervals)

data:  rbf1 and rbf10
b = 5, c = 0, p-value = 0.0625
alternative hypothesis: true odds ratio is not equal to 1

याद रखें कि 2 x 2 ग्रिड में 6 युग्मक तुलनाएं हैं, इसलिए हमें कई तुलनाओं के लिए भी सही करने की आवश्यकता होगी।


दृष्टिकोण १

4 में से 3 बाहरी विभाजन में जहां रैखिक कर्नेल के ऊपर rbf "जीता" है, उनके पास वास्तव में एक ही अनुमानित सटीकता थी (मुझे लगता है कि संबंधों के मामले में मिनट पहले उपयुक्त सूचकांक देता है)।

ग्रिड को params = {'kernel':['linear', 'rbf'],'C':[1,10]} पैदावार में बदलना

({'kernel': 'linear', 'C': 1}, 0.95238095238095233, 0.97674418604651159)
({'kernel': 'rbf', 'C': 1}, 0.95238095238095233, 0.98449612403100772)
({'kernel': 'linear', 'C': 1}, 1.0, 0.97727272727272729)
({'kernel': 'linear', 'C': 1}, 0.94444444444444442, 0.98484848484848486)
({'kernel': 'linear', 'C': 1}, 0.94444444444444442, 0.98484848484848486)
({'kernel': 'linear', 'C': 1}, 1.0, 0.98484848484848486)
({'kernel': 'linear', 'C': 1}, 1.0, 0.96212121212121215)

दृष्टिकोण 2:

यहाँ, clfआपका अंतिम मॉडल है। साथ random_state = 2, सी के साथ RBF = 1 जीत:

In [310]: clf.grid_scores_
[...snip warning...]
Out[310]: 
[mean: 0.97333, std: 0.00897, params: {'kernel': 'linear', 'C': 1},
 mean: 0.98000, std: 0.02773, params: {'kernel': 'rbf', 'C': 1},
 mean: 0.96000, std: 0.03202, params: {'kernel': 'linear', 'C': 10},
 mean: 0.95333, std: 0.01791, params: {'kernel': 'rbf', 'C': 10}]

(5 बार, 6 बार में 1 में 1 के बारे में होता है linearऔर rbfसाथ C = 1रैंक 1 पर बंधे होते हैं)


4
धन्यवाद @cbeleites! मैंने आपके उत्तर अन्य थ्रेड्स में भी पढ़े हैं और मुझे उम्मीद थी कि आप मेरे प्रश्न का उत्तर देंगे। आपका उत्तर बहुत गहराई से है, लेकिन मेरा प्रश्न वास्तव में किस पर केंद्रित है, एक नेस्टेड सीवी के परिणामों का विश्लेषण कैसे किया जाता है; मैं अभी भी थोड़ा अस्पष्ट हूं कि "सीवी नेस्टेड करने के बाद मुझे क्या करना है"। क्या आप मेरे द्वारा बनाई गई नोटबुक (मेरी पोस्ट के अंत के पास) पर एक नज़र डाल सकते हैं और आम आदमी के कार्यकाल में बता सकते हैं कि क्या करना है क्योंकि हाइपरपरमेटर्स के दो अलग-अलग सेटों को एक नेस्टेड सीवी में इष्टतम के रूप में पहचाना गया है? यह एक बहुत छोटी नोटबुक है, मैं वादा करता हूँ!
भारी श्वास

@HeavyBreathing मैंने जवाब पढ़ा है, और मैं अभी भी स्पष्ट नहीं हूं कि 'सीवी नेस्टेड सीवी' करने के बाद क्या करना है। क्या आपने स्पष्ट रूप से पता लगाया है?
स्टैकुंडफ्लो प्रवाह

0

मैंने आपके प्रश्न और उत्तर को 2 बार (पहली बार 3 महीने पहले) पढ़ा है। मुझे दिलचस्पी है और मैं अपने डेटा के लिए क्रॉस-सत्यापन करने का पूर्ण उपयुक्त तरीका भी खोजना चाहता हूं। बहुत सोचने और पढ़ने के बाद, ऐसा लगता है कि मुझे छेद मिल गए हैं और यहाँ मेरा फिक्स है:

मेरी उलझन को समझाने के लिए, मुझे नेस्टेड क्रॉस सत्यापन विधि के साथ मॉडल चयन के माध्यम से कदम से कदम मिलाकर चलने की कोशिश करनी चाहिए।

  1. K- गुना के साथ एक बाहरी सीवी लूप बनाएं। इसका उपयोग प्रत्येक आंतरिक सीवी लूप को "जीतने" वाले हाइपर-मापदंडों के प्रदर्शन का अनुमान लगाने के लिए किया जाएगा।
  2. आंतरिक सीवी लूप बनाने के लिए ग्रिडसर्च सीवी का उपयोग करें जहां प्रत्येक आंतरिक लूप में, जीएससीवी पैरामीटर स्पेस के सभी संभावित संयोजनों से गुजरता है और मापदंडों के सर्वोत्तम सेट के साथ आता है। (नोट: यहां मैं मानता हूं: आंतरिक लूप के लिए डेटा = बाहरी लूप के लिए प्रशिक्षण डेटा। आप पूछ सकते हैं: क्यों? उत्तर: /programming/42228735/scikit-learn-gridsearchcv-with-multiple-repetitions/ 42230764 # 42230764 विवेक कुमार चरण 4 द्वारा उत्तर खंड पढ़ें)
  3. जीएससीवी को आंतरिक लूप में "सर्वोत्तम पैरामीटर" मिलने के बाद (चलो इसे आंतरिक विजेता कहते हैं), इसे प्रदर्शन का अनुमान प्राप्त करने के लिए बाहरी लूप में परीक्षण सेट के साथ परीक्षण किया जाता है (चलो इसे आउटर_फोल्ड_स्कोर 1 कहते हैं)।
  4. बाहरी लूप फिर परीक्षण सेट और बाकी प्रशिक्षण सेट (बाहरी लूप पर "आंतरिक विजेता" का मूल्यांकन करने के लिए) के रूप में अगले गुना के लिए अद्यतन करता है, "आंतरिक विजेता" को नए परीक्षण सेट (बाहरी_फॉल्ड_स्कोर 2) के साथ फिर से परीक्षण किया जाता है। फिर लूप पूरा होने तक फिर से बाहरी लूप अगली गुना के लिए अद्यतन करता है। प्रत्येक फोल्ड (आउटर_फोल्ड_स्कोर 1,2 ..) से स्कोर, बाहरी लूप (आउटर_सकोर) के लिए "इनर विनर" का स्कोर पाने के लिए औसत होगा।
  5. बाहरी लूप फिर परीक्षण सेट और बाकी प्रशिक्षण सेट के रूप में अगले गुना में अद्यतन करता है (अगले "आंतरिक विजेता" को खोजने के लिए, और 1- 4 दोहराता है (ध्यान दें कि जब हम 1 दोहराते हैं तो हम नया K- नहीं बनाते हैं) गुना लेकिन हम हर बार एक ही बाहरी Kfold का उपयोग करते हैं) प्रत्येक 1-4 चक्र के साथ, हमें एक "सबसे अच्छा पैरामीटर" (या "आंतरिक विजेता") मिलता है जिसमें एक बाहरी_स्कोर होता है। सबसे अच्छा बाहरी_सकोर वाला विजेता होगा। विजेताओं

तर्क:

  • मूल रूप से आपके प्रश्न की चिंता है कि बाहरी लूप के लिए कई "जीतने वाले पैरामीटर" हैं। बात यह है कि "बाहरी विजेता" का मूल्यांकन और खोजने के लिए बाहरी लूप को पूरा नहीं किया गया है। आपका 4 वां चरण केवल बाहरी लूप में "आंतरिक विजेता" का 1 गुना में मूल्यांकन करता है, लेकिन आपने इसे "लूप" नहीं किया। इसलिए मुझे इसे अपने चौथे चरण के साथ बदलने की आवश्यकता है - बाहरी लूप में मूल्यांकन चरण "पाश" और बाहरी स्कोर प्राप्त करें (औसतन)
  • आपके 5 वें चरण ने बाहरी लूप में "लूपिंग" काम किया, लेकिन यह सिर्फ एक और "आंतरिक विजेता" के निर्माण के लिए है। यह बाहरी लूप में इस "आंतरिक विजेता" के "मूल्यांकन" को लूप नहीं करता था

क्या यह वास्तव में सवाल का जवाब देता है?
माइकल आर। चेरनिक

0


डी प्रीप्रोसेसिंग परिवर्तनों, सुविधाओं और अंत में हाइपर पैरामीटर मूल्यों का सेट।

एक्स,y
एक्सएक्सy

एक्स',y'एक्स,y

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

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