फीचर-इंजीनियरिंग की उपयोगिता: मौजूदा विशेषताओं के आधार पर नई सुविधाएँ क्यों बनाएँ?


30

मैं अक्सर देखता हूँ कि लोग मशीन सीखने की समस्या पर मौजूदा सुविधाओं के आधार पर नई सुविधाएँ बनाते हैं। उदाहरण के लिए, यहां: https://triangleinequality.wordpress.com/2013/09/08/basic-feature-engineering-with-the-titanic-data/ लोगों ने एक व्यक्ति के परिवार के आकार को एक नई विशेषता के रूप में माना है, आधारित भाइयों, बहनों और माता-पिता की संख्या पर, जो मौजूदा विशेषताएं थीं।

लेकिन इस का क्या मतलब है? मुझे समझ नहीं आता कि सहसंबद्ध नई सुविधाओं का निर्माण क्यों उपयोगी है। क्या यह एल्गोरिथम का काम नहीं है कि वह अपने दम पर करे?


जवाबों:


30

इसका उदाहरण देने के लिए सबसे सरल उदाहरण XOR समस्या है (नीचे चित्र देखें)। कल्पना कीजिए कि आपको भविष्यवाणी करने के लिए एक्स और y समन्वित और बाइनरी क्लास वाले डेटा दिए गए हैं। आप अपने मशीन लर्निंग एल्गोरिदम से खुद ही सही निर्णय सीमा का पता लगाने की उम्मीद कर सकते हैं, लेकिन अगर आपने अतिरिक्त फीचर z = xy जेनरेट किया है z=एक्सy, तो समस्या z के रूप में तुच्छ हो जाती है > 0z>0 आपको वर्गीकरण के लिए लगभग सही निर्णय मानदंड देता है और आपने सिर्फ साधारण अंकगणित का उपयोग किया है !

XOR समस्या

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

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

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

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


धन्यवाद, यह बहुत अच्छी तरह से समझाया गया है और बहुत दिलचस्प है!
मैथ्यू वेरोन

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

@PoeteMaudit यह सच है कि निर्णय ट्री (और इसलिए RF) एक बड़ी बातचीत का मॉडल है, लेकिन यह एक निश्चित प्रकार का इंटरैक्शन है, हर संभव इंटरैक्शन नहीं। इसके अलावा, सुविधा इंजीनियरिंग केवल बातचीत के बारे में नहीं है।
टिम

निश्चित रूप से मैं आपकी बातों से सहमत हूं। सबसे पहले, कि RFs एक निश्चित प्रकार के इंटरैक्शन को मॉडल करता है (मतलब मुख्य रूप से x * y?)। दूसरी बात यह है कि यह सुविधा इंजीनियरिंग निश्चित रूप से केवल बातचीत के बारे में नहीं है।
पोइते मौदित

14

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

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

संक्षेप में, यदि डोमेन ज्ञान इंगित करता है कि सुविधाओं का एक हाथ से तैयार गैर-रेखीय संयोजन जानकारीपूर्ण हो सकता है, तो यह मौजूदा सुविधाओं में इसे जोड़ने के लिए समझ में आता है।


ठीक है मै समझ गया ! लेकिन मैं कैसे जान सकता हूं कि मेरे द्वारा बनाई गई मेरी विशेषताएं सार्थक और जानकारीपूर्ण हैं? मेरा मतलब है, समस्याओं का प्रति-सहज स्पष्टीकरण हो सकता है। जो मैं समझता हूं, उससे विशेषताएं बनाना एक तरह से एल्गोरिथ्म को एक दिशा में चलाने का एक तरीका है, इसकी भविष्यवाणियों पर समय बचाने के लिए। इसलिए कुछ तरीकों से, हम एल्गोरिदम को प्रभावित कर रहे हैं। कैसे सत्यापित करें कि हम सही ढंग से प्रभावित करते हैं?
मैथ्यू वेरोन

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

1
फिर भी, यह एक विज्ञान से अधिक एक कला है। अंत में, आपको एक निष्पक्ष प्रयोगात्मक प्रोटोकॉल के साथ एक परीक्षण सेट पर अपने मॉडल का परीक्षण करके अपने हाथ से तैयार की गई सुविधाओं की प्रभावशीलता को मान्य करने की आवश्यकता है ...
डैनियल लोपेज़

3

यह सच है कि मशीन सीखने के कुछ मॉडल में गैर-रैखिकता और बातचीत को चर के बीच संभालने की क्षमता है, हालांकि, स्थिति पर निर्भर करता है, मुझे तीन कारण दिखाई देते हैं जो आवश्यक हो जाते हैं।

  1. Y=1

वृत्त सीमा

एक्स1एक्स2y=एक्स0+सी1एक्स1+सी2एक्स2y=एक्स0+सी1एक्स12+सी2एक्स22

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

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

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