मशीन लर्निंग पाइप लाइन में फ़ीचर सेलेक्शन और हाइपरपैरिमेट ऑप्टिमाइज़ेशन का आदेश कैसे दिया जाना चाहिए?


15

मेरा उद्देश्य सेंसर संकेतों को वर्गीकृत करना है। मेरे समाधान की अब तक की अवधारणा है: i) कच्चे सिग्नल से इंजीनियरिंग सुविधाएँ ii) राहत के साथ प्रासंगिक सुविधाओं का चयन और क्लस्टरिंग दृष्टिकोण iii) एनएन, रैंडम फ़ॉरेस्ट और एसवीएम लागू करें

हालांकि मैं एक दुविधा में फंसा हुआ हूं। Ii) और iii), राहत के लिए k- निकटतम नीग्रबर्ज़ जैसे हाइपरपैरमीटर हैं या खिड़की की लंबाई, जिसके लिए सेंसर सिग्नल का मूल्यांकन किया जाता है, या एनएन की प्रत्येक परत में छिपी हुई इकाइयों की संख्या।

3 समस्याएं हैं जो मैं यहां देख रहा हूं: 1) ट्यूनिंग फीचर चयन पैरामीटर क्लासिफायरियर प्रदर्शन को प्रभावित करेगा 2) क्लासिफायरियर के हाइपरपैरामीटर का अनुकूलन सुविधाओं की पसंद को प्रभावित करेगा। 3) कॉन्फ़िगरेशन के प्रत्येक संभावित संयोजन का मूल्यांकन करना अव्यावहारिक है।

तो मेरे सवाल हैं: ए) क्या मैं एक सरल धारणा बना सकता हूं, ट्यूनिंग फ़ीचर चयन मापदंडों को ट्यूनिंग एम्पलीफायर मापदंडों से अलग किया जा सकता है? बी) क्या कोई अन्य संभावित समाधान हैं?


मुझे लगता है कि सुविधा चयन ट्यूनिंग और क्लासिफायरर ट्यूनिंग की वैधता वैध है, क्योंकि राहत के लिए हेयुरिटिक का उद्देश्य अंतर-वर्ग विचरण को अधिकतम करना और इंट्रा-क्लास विचरण को कम करना है जो एक अच्छे क्लासिफायर का संकेत भी देता है। राहत के लिए अनुकूलतम मानकों को बनाए रखने के लिए भी एक अच्छा क्लासफ़ायर अधिक 'संभावना' बनाता है। हालाँकि, इस विचार को वापस लेने के लिए गणितीय सूत्रीकरण बहुत अच्छा होगा।
ग्रुन्वाल्स्की

1
इस प्रश्न का एक विशिष्ट प्रकार: क्या सुविधा का चयन क्रॉसवेलाइडेशन रूटीन का हिस्सा होना चाहिए (जैसे कि: # प्रत्येक कक्षा के हाइपरपरम सेट के लिए: # के लिए प्रत्येक k- गुना CV रन: 1) सुविधा चयन, 2) सुविधा स्केलिंग, 3: क्लासिफायरफायर फिट 4) परीक्षण सेट पर भविष्यवाणी?
निकोलस रिबल

1
@ निकोलस रिइबल मैंने अभी मूल प्रश्न का उत्तर लिखा है, और उत्तर में अपना प्रश्न भी शामिल किया है
डेनिस सोमरर्स

जवाबों:


15

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

तो, हाँ, यदि आप वास्तव में अपने मॉडल से बाहर प्रदर्शन के हर एक प्रतिशत को निचोड़ने के बारे में परवाह करते हैं, और आप गणना की आवश्यक राशि का खर्च उठा सकते हैं, तो सबसे अच्छा समाधान संभवतः एक ही समय में "चयन" और हाइपरपरमेटर ट्यूनिंग करना है। हालांकि यह आसान नहीं है (आप चयन कैसे करते हैं) पर निर्भर करता है। जिस तरह से मैं यह कल्पना करता हूं कि वह काम कर रहा है, वह उम्मीदवारों के रूप में सुविधाओं के विभिन्न सेटों की तरह होगा, और उन सभी उम्मीदवारों में से एक सेट के चयन को एक अतिरिक्त हाइपरपैरेट के रूप में मानकर व्यवहार करेगा।

व्यवहार में, हालांकि वास्तव में संभव नहीं है। सामान्य तौर पर, यदि आप सभी संभावित संयोजनों का मूल्यांकन करने का जोखिम नहीं उठा सकते हैं, तो मैं सुझाऊंगा:

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

  2. हाइपरपैरामीटर के साथ फ़ीचर चयन, जो शायद 100% अनुकूलित नहीं हैं लेकिन कम से कम अत्यंत भयानक भी नहीं हैं। यदि आपके पास पहले से कम से कम शालीनता से कॉन्फ़िगर की गई मशीन लर्निंग एल्गोरिदम है, तो माइक्रो-ऑप्टिमाइज़िंग हाइपरपामेटर्स की तुलना में आपके प्रदर्शन के लिए अच्छी विशेषताएँ काफी महत्वपूर्ण होंगी। चरम उदाहरण: यदि आपके पास कोई विशेषता नहीं है, तो आप कुछ भी भविष्यवाणी नहीं कर सकते। यदि आपके पास एक धोखा सुविधा है जिसमें कक्षा लेबल शामिल है, तो आप पूरी तरह से सब कुछ वर्गीकृत कर सकते हैं।

  3. ऊपर दिए गए चरण में चयनित सुविधाओं के साथ हाइपरपैरामीटर का अनुकूलन करें। यह अब एक अच्छा फीचर सेट होना चाहिए, जहां यह वास्तव में हाइपरपरम को थोड़ा अनुकूलित करने के लायक हो सकता है।


निकोलस ने टिप्पणियों में पोस्ट किए गए अतिरिक्त प्रश्न को संबोधित करने के लिए, इन सभी चीजों को कैसे छुपाया (फीचर चयन, हाइपरपरमेटर ऑप्टिमाइज़ेशन) k- गुना क्रॉस सत्यापन के साथ बातचीत करता है: मैं कहता हूं कि यह निर्भर करता है।

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

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

  2. अपने शुरुआती डेटासेट को '' प्रीप्रोसेसिंग डेटासेट '' और 'ट्रेन / टेस्ट डेटासेट' में विभाजित करें। आप '' प्रीप्रोसेसिंग डेटासेट '' पर अपनी सुविधा चयन + हाइपरपरमेट ऑप्टिमाइज़ेशन कर सकते हैं। उसके बाद, आप अपनी चयनित सुविधाओं और हाइपरपैरामीटर को ठीक करते हैं, और '' ट्रेन / परीक्षण डेटासेट '' पर k- गुना क्रॉस सत्यापन करते हैं। ऐसा करने का अर्थ है कि के-फोल्ड क्रॉस सत्यापन आपको निश्चित सुविधा-सेट और हाइपरपरमीटर मान दिए गए आपके एमएल एल्गोरिथम के प्रदर्शन का निष्पक्ष अनुमान देता है ।

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

यदि, दूसरी ओर, आप केवल अपने जीवन में एक बार ही फीचर चयन + हाइपरपैरिमेट ऑप्टिमाइज़ेशन करने का जोखिम उठा सकते हैं, और बाद में केवल कुछ हद तक नियमित रूप से आपके एल्गोरिथ्म को फिर से प्रशिक्षित करते हैं (फीचर-सेट और हाइपरपरम वैल्यू के साथ), फिर प्रदर्शन केवल उस चरण में वही होगा जो आप में रुचि रखते हैं, और आपको दूसरे समाधान के लिए जाना चाहिए


1
क्या आप संदर्भ प्रदान कर सकते हैं?
निकोलस रिबल

1
इस पोस्ट में एक प्रसिद्ध पुस्तक की कुछ तस्वीरें हैं: nodalpoint.com/not-perform-feature-selection । वे मेरे '' संभव समाधान 1 '' से सहमत प्रतीत होते हैं। मेरे पास अन्य मामले के अलावा, स्वयं ... के लिए आवश्यक संदर्भ नहीं है? मैंने अपना तर्क / प्रेरणा वहाँ प्रदान की, जो मेरी राय में जाँच करता है, इसलिए इसका संदर्भ है: D
डेनिस सोमरर्स

1
ईएसएल के उस अध्याय को किसी भी भविष्य कहनेवाला मॉडलर के लिए 100% आवश्यक पढ़ना चाहिए।
मैथ्यू ड्र्यू

तो 1 के बारे में, आप अपने अंतिम फीचर सेट और मॉडल हाइपरपरमेटर्स को रनिंग फीचर सिलेक्शन (एफएस) और हाइपरपरम ऑप्टिमाइजेशन (हो) के बाद कैसे करें? के रूप में अच्छी तरह से, जब हम इनको Cv के एक पुनरावृत्ति में प्रदर्शित करते हैं, तो क्या हम पहले fs चलाते हैं, और फिर उन विशेषताओं का उपयोग कर रहे हैं?
sma

1
-1

4

हाइपर-पैरामीटर ट्यूनिंग और सुविधा के चयन का कोई भी उल्लेख नहीं करता है, इसलिए मैं इसके बारे में बात करूंगा। इस मामले के लिए आपको उन सभी विशेषताओं को इंजीनियर करना चाहिए जो आप शुरुआत में चाहते हैं और उन सभी को शामिल करें।

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

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

तो जब आप पैरामीटर पर क्रॉस-वैरिफिकेशन करते हैं तो आप प्रभावी रूप से फीचर चयन पर भी क्रॉस-वैरिफिकेशन कर रहे होते हैं।

पहले से ही कई एमएल मॉडल हैं जो इस सुविधा के चयन को किसी न किसी तरह से शामिल करते हैं।

  • संदेह-नियमित रूप से समर्थन वेक्टर मशीनें जो सामान्य एसवीएम की तरह हैं, लेकिन सुविधा के चयन के साथ
  • लोचदार शुद्ध जो रैखिक प्रतिगमन से संबंधित है
  • तंत्रिका नेटवर्क में ड्रॉप-आउट नियमितीकरण (इसके लिए संदर्भ नहीं है)
  • रैंडम फॉरेस्ट सामान्य रूप से सुविधाओं का यादृच्छिक सबसेट करता है, इसलिए इस तरह के हैंडल आपके लिए चयन की सुविधा प्रदान करते हैं

संक्षेप में, लोगों ने जटिलता को कम करने के लिए एक ही समय में पैरामीटर ट्यूनिंग और सुविधा चयन को शामिल करने का प्रयास किया है और सत्यापन करने में सक्षम हैं


0

@ डेनिससोएमर का एक शानदार समाधान है। मैं दो समान समाधान जोड़ूंगा जो थोड़ा अधिक स्पष्ट हैं और फ़ीचर इंजीनियरिंग और चयन पर आधारित हैं : मैक्स कुह्न और केजेल जॉनसन द्वारा प्रिडिक्टिव मॉडल के लिए एक व्यावहारिक दृष्टिकोण

Kuhn किसी डेटासेट का resampleवर्णन करने के लिए शब्द का उपयोग करता है fold, लेकिन StackExchange पर प्रभावी शब्द लगता है fold, इसलिए मैं foldनीचे दिए गए शब्द का उपयोग करूंगा ।

विकल्प 1 - नेस्टेड खोज

यदि गणना शक्ति सीमित कारक नहीं है, तो एक नेस्टेड सत्यापन दृष्टिकोण की सिफारिश की जाती है, जिसमें नेस्टिंग के 3 स्तर हैं:

1) बाहरी सिलवटों, प्रत्येक एक अलग सुविधा सबसेट के साथ गुना

2) आंतरिक सिलवटों, प्रत्येक हाइपरपरमीटर खोज के साथ गुना

3) प्रत्येक हाइपरपरमीटर खोज की आंतरिक सिलवटों, प्रत्येक एक अलग हाइपरपैरमीटर सेट के साथ गुना।

यहाँ एल्गोरिथ्म है:

-> Split data into train and test sets.
-> For each external fold of train set:
    -> Select feature subset.
    -> Split into external train and test sets.

    -> For each internal fold of external train set:
        -> Split into internal train and test sets.
        -> Perform hyperparameter tuning on the internal train set. Note that this
           step is another level of nesting in which the internal train set is split
           into multiple folds and different hyperparameter sets are trained and tested on
           different folds.
    -> Examine the performance of the best hyperparameter tuned model 
       from each of the inner test folds. If performance is consistent, redo 
       the internal hyperparameter tuning step on the entire external train set.
    -> Test the model with the best hyperparameter set on the external test set.

-> Choose the feature set with the best external test score.
-> Retrain the model on all of the training data using the best feature set 
   and best hyperparameters for that feature set. 

यहाँ छवि विवरण दर्ज करें अध्याय 11.2 से छवि: सरल फिल्टर

-> Select feature subsetकदम यादृच्छिक होने के लिए निहित है, लेकिन वहाँ अन्य तकनीकों, जिसमें पुस्तक में दिए गए हैं कर रहे हैं अध्याय 11

स्पष्ट करने के लिए -> Perform hyperparameter tuning step, आप नेस्टेड क्रॉस सत्यापन के अनुशंसित दृष्टिकोण के बारे में पढ़ सकते हैं । डेटा की विभिन्न परतों पर प्रशिक्षण और परीक्षण प्रक्रिया को बार-बार निष्पादित करके और परीक्षण परिणामों के औसत को देखते हुए प्रशिक्षण प्रक्रिया की मजबूती का परीक्षण करना है।

विकल्प 2 - अलग हाइपरपरमीटर और सुविधा चयन खोज

-> Split data into hyperameter_train, feature_selection_train, and test sets.

-> Select a reasonable subset of features using expert knowledge.

-> Perform nested cross validation with the initial features and the 
   hyperparameter_train set to find the best hyperparameters as outlined in option 1.

-> Use the best hyperparameters and the feature_selection_train set to find 
   the best set of features. Again, this process could be nested cross 
   validation or not, depending on the computational cost that it would take 
   and the cost that is tolerable.

कुहन और जोहसन ने इस प्रक्रिया को कैसे उद्धृत किया:

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

अध्याय 12.5: ग्लोबल सर्च मेथड्स


-1

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

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


आप इसका मतलब है कि यह काम कर रहा है: D
Grunwalski

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