जैसे आप पहले से ही अपने आप को देख चुके हैं, आपकी पसंद की सुविधाओं (सुविधा चयन) पर प्रभाव पड़ सकता है, जिस पर आपके एल्गोरिथ्म के लिए हाइपरपरमेटर्स इष्टतम हैं, और आपके एल्गोरिथ्म के लिए आपके द्वारा चुने गए हाइपरपैरामीटर का प्रभाव हो सकता है कि किस विकल्प की पसंद इष्टतम होगी।
तो, हाँ, यदि आप वास्तव में अपने मॉडल से बाहर प्रदर्शन के हर एक प्रतिशत को निचोड़ने के बारे में परवाह करते हैं, और आप गणना की आवश्यक राशि का खर्च उठा सकते हैं, तो सबसे अच्छा समाधान संभवतः एक ही समय में "चयन" और हाइपरपरमेटर ट्यूनिंग करना है। हालांकि यह आसान नहीं है (आप चयन कैसे करते हैं) पर निर्भर करता है। जिस तरह से मैं यह कल्पना करता हूं कि वह काम कर रहा है, वह उम्मीदवारों के रूप में सुविधाओं के विभिन्न सेटों की तरह होगा, और उन सभी उम्मीदवारों में से एक सेट के चयन को एक अतिरिक्त हाइपरपैरेट के रूप में मानकर व्यवहार करेगा।
व्यवहार में, हालांकि वास्तव में संभव नहीं है। सामान्य तौर पर, यदि आप सभी संभावित संयोजनों का मूल्यांकन करने का जोखिम नहीं उठा सकते हैं, तो मैं सुझाऊंगा:
बहुत कम ही हाइपरपैरमीटर का अनुकूलन करते हैं, बस यह सुनिश्चित करने के लिए कि आप कुछ हाइपरपामेटर्स को बहुत खराब मान नहीं देते हैं। यह अक्सर केवल हाथ से किया जा सकता है यदि आपके पास अपने हाइपरपैरामीटर की अच्छी सहज समझ है, या बहुत संक्षिप्त हाइपरपैरेट ऑप्टिमाइज़ेशन प्रक्रिया के साथ किया गया है, तो बस सुविधाओं का एक गुच्छा का उपयोग करके जिन्हें आप अन्यथा अच्छे से जानते हैं।
हाइपरपैरामीटर के साथ फ़ीचर चयन, जो शायद 100% अनुकूलित नहीं हैं लेकिन कम से कम अत्यंत भयानक भी नहीं हैं। यदि आपके पास पहले से कम से कम शालीनता से कॉन्फ़िगर की गई मशीन लर्निंग एल्गोरिदम है, तो माइक्रो-ऑप्टिमाइज़िंग हाइपरपामेटर्स की तुलना में आपके प्रदर्शन के लिए अच्छी विशेषताएँ काफी महत्वपूर्ण होंगी। चरम उदाहरण: यदि आपके पास कोई विशेषता नहीं है, तो आप कुछ भी भविष्यवाणी नहीं कर सकते। यदि आपके पास एक धोखा सुविधा है जिसमें कक्षा लेबल शामिल है, तो आप पूरी तरह से सब कुछ वर्गीकृत कर सकते हैं।
ऊपर दिए गए चरण में चयनित सुविधाओं के साथ हाइपरपैरामीटर का अनुकूलन करें। यह अब एक अच्छा फीचर सेट होना चाहिए, जहां यह वास्तव में हाइपरपरम को थोड़ा अनुकूलित करने के लायक हो सकता है।
निकोलस ने टिप्पणियों में पोस्ट किए गए अतिरिक्त प्रश्न को संबोधित करने के लिए, इन सभी चीजों को कैसे छुपाया (फीचर चयन, हाइपरपरमेटर ऑप्टिमाइज़ेशन) k- गुना क्रॉस सत्यापन के साथ बातचीत करता है: मैं कहता हूं कि यह निर्भर करता है।
जब भी आप किसी भी चीज़ के लिए किसी एक तह में डेटा का उपयोग करते हैं, और फिर उसी तह पर प्रदर्शन का मूल्यांकन करते हैं, तो आपको अपने प्रदर्शन का एक पूर्वाग्रहित अनुमान मिलता है (आप प्रदर्शन को कम कर देंगे)। इसलिए, यदि आप फीचर चयन चरण के लिए सभी सिलवटों में डेटा का उपयोग करते हैं, और फिर उनमें से प्रत्येक तह पर प्रदर्शन का मूल्यांकन करते हैं, तो आपको उनमें से प्रत्येक के लिए प्रदर्शन का पूर्वाग्रहित अनुमान मिलेगा (जो अच्छा नहीं है)। इसी प्रकार, यदि आपके पास डेटा-संचालित हाइपरपरमेट ऑप्टिमाइज़ेशन है और कुछ सिलवटों (या सभी सिलवटों) से डेटा का उपयोग करते हैं, और फिर उन्हीं सिलवटों का मूल्यांकन करते हैं, तो आपको फिर से प्रदर्शन का पूर्वाग्रहित अनुमान मिल जाएगा। संभावित समाधान हैं:
प्रत्येक पाइप के भीतर अलग से पूरी पाइपलाइन को दोहराएं (जैसे प्रत्येक फोल्ड के भीतर, चयन + हाइपरपरमेट ऑप्टिमाइज़ेशन और ट्रेनिंग मॉडल की सुविधा करें)। ऐसा करने का मतलब है कि k- गुना क्रॉस सत्यापन आपको इस पूर्ण पाइपलाइन के प्रदर्शन का निष्पक्ष अनुमान देता है ।
अपने शुरुआती डेटासेट को '' प्रीप्रोसेसिंग डेटासेट '' और 'ट्रेन / टेस्ट डेटासेट' में विभाजित करें। आप '' प्रीप्रोसेसिंग डेटासेट '' पर अपनी सुविधा चयन + हाइपरपरमेट ऑप्टिमाइज़ेशन कर सकते हैं। उसके बाद, आप अपनी चयनित सुविधाओं और हाइपरपैरामीटर को ठीक करते हैं, और '' ट्रेन / परीक्षण डेटासेट '' पर k- गुना क्रॉस सत्यापन करते हैं। ऐसा करने का अर्थ है कि के-फोल्ड क्रॉस सत्यापन आपको निश्चित सुविधा-सेट और हाइपरपरमीटर मान दिए गए आपके एमएल एल्गोरिथम के प्रदर्शन का निष्पक्ष अनुमान देता है ।
ध्यान दें कि प्रदर्शन के दो अलग-अलग अनुमानों में दो समाधान कैसे होते हैं। कौन सा अधिक दिलचस्प है आपके उपयोग-मामले पर निर्भर करता है, इस बात पर निर्भर करता है कि आप अपने मशीन लर्निंग समाधानों को अभ्यास में कैसे तैनात करने की योजना बनाते हैं। यदि आप, उदाहरण के लिए, एक कंपनी है कि सुविधा चयन की पूरी पाइपलाइन का इरादा रखता है + हाइपरपरमेट ऑप्टिमाइज़ेशन + प्रशिक्षण हर दिन / सप्ताह / माह / वर्ष / जो भी हो, स्वचालित रूप से चल रहा है, तो आप उस पूर्ण के प्रदर्शन में भी दिलचस्पी लेंगे। पाइपलाइन, और आप पहला समाधान चाहते हैं।
यदि, दूसरी ओर, आप केवल अपने जीवन में एक बार ही फीचर चयन + हाइपरपैरिमेट ऑप्टिमाइज़ेशन करने का जोखिम उठा सकते हैं, और बाद में केवल कुछ हद तक नियमित रूप से आपके एल्गोरिथ्म को फिर से प्रशिक्षित करते हैं (फीचर-सेट और हाइपरपरम वैल्यू के साथ), फिर प्रदर्शन केवल उस चरण में वही होगा जो आप में रुचि रखते हैं, और आपको दूसरे समाधान के लिए जाना चाहिए