क्या यह फीचर इंजीनियरिंग का अच्छा अभ्यास है?


10

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

मेरे सवाल:

  1. क्या यह पहली बार में ऐसा करने का मतलब है?
  2. यदि हाँ, तो मुझे कैसे पता चलेगा कि इस चक्र को रोकने का अच्छा समय कब है?
  3. यदि नहीं, तो क्यों नहीं?

जवाबों:


6

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

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

AIC=2k2ln(L^)

kL^k

ये मानदंड आपको यह बताने में मदद कर सकते हैं कि कब रुकना है, क्योंकि आप अधिक से अधिक मापदंडों के साथ मॉडल की कोशिश कर सकते हैं, और बस उस मॉडल को ले सकते हैं जिसमें सबसे अच्छा एआईसी या बीआईसी मूल्य है।

यदि आपके पास अभी भी मॉडल में अन्य विशेषताएं हैं, जो ज़िप से संबंधित नहीं हैं, तो वे संभावित रूप से अभिभूत हो सकते हैं - जो आपके द्वारा उपयोग किए जाने वाले मॉडल पर निर्भर करता है। हालाँकि, वे उन डेटासेट के बारे में भी बता सकते हैं जो केवल ज़िप जानकारी में शामिल नहीं हो सकते हैं, जैसे कि घर का फर्श क्षेत्र (यह ज़िप कोड से अपेक्षाकृत स्वतंत्र है)।

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


7

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

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

3) नई सुविधाओं को जोड़ना हमेशा एक अच्छा विचार नहीं है। उच्च-आयामीता के अभिशाप से सावधान रहें। नई सुविधा जोड़ते समय, आप वास्तव में अपने डेटा पर एक नया आयाम जोड़ रहे हैं। स्वाभाविक रूप से, कोई सोच सकता है कि अधिक सुविधाओं को इकट्ठा करना कभी नुकसान नहीं पहुंचाता है, क्योंकि सबसे खराब रूप से वे कक्षा के बारे में कोई नई जानकारी प्रदान नहीं करते हैं। लेकिन वास्तव में उनके लाभों को आयामीता के अभिशाप से दूर किया जा सकता है। मुझे आशा है कि मशीन सीखने सत्र 6 के बारे में जानने के लिए उपयोगी चीजें मदद कर सकती हैं।


क्या @ user3768495 उदाहरण पार-सत्यापन का उपयोग कर मॉडल के प्रदर्शन का मूल्यांकन कर रहा है? यदि ऐसा है, तो बहु-संप्रभुता एक समस्या नहीं होनी चाहिए और उसे ओवरफिटिंग के बारे में चिंता नहीं करनी चाहिए क्योंकि उसे सत्यापन के प्रदर्शन में कमी के माध्यम से ओवरफिटिंग का संकेत मिलेगा।
rinspy

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

सच है, लेकिन बहुसंस्कृति से बचने से कोवरिएट शिफ्ट्स से उत्पन्न होने वाले 'ओवरफिटिंग' से मदद नहीं मिलेगी। मैं सिर्फ यह कह रहा हूं कि यदि वह भविष्य कहनेवाला (और वर्णनात्मक नहीं) मॉडल बनाने में रुचि रखता है तो बहुसंख्याता कोई मुद्दा नहीं है।
रिंसीपी

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

4

आमतौर पर, अमीर बेहतर सुविधाएँ।

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

यह बहुत ही विषय पर जानकारी है (और मिटाने के संभावित तरीके), बस Google प्रतिगमन और बहुस्तरीयता।

संक्षेप में,

  1. हाँ। सबसे निश्चित रूप से।
  2. @ n1k31t4 में कुछ अच्छे सुझाव हैं। यह महसूस करने के लिए स्वतंत्र रहें कि आपको क्या लगता है कि आपके मॉडल में क्या सुधार होगा, फिर आप अपने आप को सीमित करने के लिए पीसीए और अन्य सुविधाओं के चयन जैसी तकनीकों का उपयोग कर सकते हैं।
  3. दूसरी बात यह है कि यह प्रयास बनाम परिणाम के रूप में कितना व्यावहारिक है।

0

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

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

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