अज्ञात सुविधाओं पर फीचर इंजीनियरिंग कैसे करें?


19

मैं एक कागल प्रतियोगिता में भाग ले रहा हूं। डेटासेट में लगभग 100 विशेषताएं हैं और सभी अज्ञात हैं (वास्तव में वे जो प्रतिनिधित्व करते हैं उसके संदर्भ में)। मूल रूप से वे सिर्फ संख्या हैं।

लोग इन फीचर्स पर बहुत सारे फीचर इंजीनियरिंग का प्रदर्शन कर रहे हैं। मैं सोच रहा हूँ कि वास्तव में कैसे एक फीचर इंजीनियरिंग पर प्रदर्शन करने में सक्षम है जो अज्ञात हैं? क्या कोई कृपया मुझे यह समझने में मदद कर सकता है और कुछ सुझाव दे सकता हूं कि मैं अज्ञात सुविधाओं पर फीचर इंजीनियरिंग कैसे कर सकता हूं?

जवाबों:


19

फीचर इंजीनियरिंग करने के लिए आपको डोमेन ज्ञान (आपके डेटा का मतलब क्या है ) का ज्ञान नहीं है (अपने डेटा को तैयार करने के अधिक स्पष्ट तरीके खोजने )।


जैसा कि टी । एन। समझाया गया है , आप "त्वरित और गंदे" सुविधाओं के संयोजन पा सकते हैं जो बहुत आसानी से सहायक हो सकते हैं। एक आउटपुट और एक व्यक्तिगत सुविधा को देखते हुए , आप निम्न परिवर्तन कर सकते हैं, । परिवर्तन की उपयोगिता की एक त्वरित जाँच है यदि के बीच सहसंबंध बीच संबंध से अधिक है ।एक्स एक्स '{ एक्स , लॉग ( एक्स ) , एक्स 2 , x 3 , tanh ( एक्स ) } { y , x ' } { y , x }yxx{ex,log(x),x2,x3,tanh(x)}{y,x}{y,x}

सहसंबंध पर चेतावनी: सहसंबंध सब कुछ नहीं दिखाता है और आपके द्वारा उपयोग किए जा रहे मॉडल के आधार पर (एनएन या आरएफ जैसे अत्यधिक गैर-रैखिक) और अन्य चर के साथ बातचीत, सहसंबंध में बदलाव का कोई मतलब नहीं हो सकता है।

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

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


सुविधा का संयोजन ढूंढना अधिक कठिन है। एक शुरुआत के लिए, यदि आप 2 सुविधाओं में से प्रत्येक को जोड़ना चाहते हैं, और आपके पास विशेषताएं हैं, तो आपके पास परीक्षण करने के लिए परिवर्तनों का एक आदेश है । इस तरह के परिवर्तनों को खोजने के लिए, आप समस्या के लिए एक nonlinear मॉडल (जैसे NN या RF) लागू कर सकते हैं और यह देखने का प्रयास कर सकते हैं कि यह क्या है। यदि आप पहचान सकते हैं कि एनएन में एक मध्यवर्ती परत क्या कर रही है, तो आप इसके परिणाम की पूर्व-गणना कर सकते हैं और इसे एक नई सुविधा के रूप में जोड़ सकते हैं। इसे फिर से गणना करने की आवश्यकता नहीं होगी, और यह शायद कुछ नया सीखने की कोशिश करेगा।D 2DD2

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

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

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


संबंधित सामग्री पर, मैं निम्नलिखित वीडियो की सलाह दूंगा क्योंकि वे पालन करना आसान है


4

आप सुविधाओं के विभिन्न संयोजनों को ले सकते हैं जैसे कि सुविधाओं का योग: feat_1 + feat_2 + feat_3... या उन का उत्पाद। या आप लॉग, या घातांक, सिग्मोइड ... या यहां तक ​​कि संख्यात्मक सुविधा को एक श्रेणीगत रूप से अलग कर सकते हैं। यह पता लगाने के लिए एक अनंत स्थान है।

जो भी संयोजन या परिवर्तन आपके क्रॉस-वैलिडेशन या टेस्ट सेट प्रदर्शन को बढ़ाते हैं, उसके बाद आपको इसका उपयोग करना चाहिए।


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

1

क्या आप अपने निम्नलिखित कथन के बारे में विशिष्ट उदाहरणों के साथ अधिक बता सकते हैं?

The dataset has around 100 features and all are unknown (in terms of what actually they represent). Basically they are just numbers.

मुझे यकीन नहीं है कि आप अपने डेटा सेट और दी गई विशेषताओं की अच्छी समझ के बिना फ़ीचर इंजीनियरिंग कैसे कर सकते हैं !!

सारणीबद्ध डेटा को टिप्पणियों या उदाहरणों (पंक्तियों) के संदर्भ में वर्णित किया जाता है जो चर या विशेषताओं (स्तंभों) से बने होते हैं। एक विशेषता एक विशेषता हो सकती है।

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

कंप्यूटर दृष्टि में, एक छवि एक अवलोकन है, लेकिन एक विशेषता छवि में एक रेखा हो सकती है।

प्राकृतिक भाषा प्रसंस्करण में, एक दस्तावेज या एक ट्वीट एक अवलोकन हो सकता है, और एक वाक्यांश या शब्द गणना एक विशेषता हो सकती है।

वाक् पहचान में, एक उच्चारण एक अवलोकन हो सकता है, लेकिन एक विशेषता एक शब्द या ध्वनि हो सकती है। "

अधिक के लिए कृपया निम्न URL पर जाएँ:

डिस्कवर इंजीनियरिंग, कैसे इंजीनियर सुविधाओं के लिए और यह कैसे प्राप्त करने के लिए अच्छा है


ओपी के मामले में विशेषताओं को उस बिंदु तक नामांकित किया गया है जहां डोमेन ज्ञान का उपयोग नहीं किया जा सकता है। यह कागल प्रतियोगिताओं में काफी आम है, फिर भी फीचर इंजीनियरिंग के सीमित रूप अभी भी संभव हैं। आमतौर पर नई सुविधाओं को थोक में बनाया जाता है, फिर उनकी पीढ़ी को मार्गदर्शन करने के लिए विषय ज्ञान का उपयोग करने के विपरीत परीक्षण किया जाता है। एक उदाहरण: kaggle.com/c/bnp-paribas-cardif-claims-management/data
नील स्लेटर

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