फीचर इंजीनियरिंग करने के लिए आपको डोमेन ज्ञान (आपके डेटा का मतलब क्या है ) का ज्ञान नहीं है (अपने डेटा को तैयार करने के अधिक स्पष्ट तरीके खोजने )।
जैसा कि टी । एन। समझाया गया है , आप "त्वरित और गंदे" सुविधाओं के संयोजन पा सकते हैं जो बहुत आसानी से सहायक हो सकते हैं। एक आउटपुट और एक व्यक्तिगत सुविधा को देखते हुए , आप निम्न परिवर्तन कर सकते हैं, । परिवर्तन की उपयोगिता की एक त्वरित जाँच है यदि के बीच सहसंबंध बीच संबंध से अधिक है ।एक्स एक्स ' ∈ { ई एक्स , लॉग ( एक्स ) , एक्स 2 , x 3 , tanh ( एक्स ) } { y , x ' } { y , x }yएक्सx′∈{ex,log(x),x2,x3,tanh(x)}{y,x′}{y,x}
सहसंबंध पर चेतावनी: सहसंबंध सब कुछ नहीं दिखाता है और आपके द्वारा उपयोग किए जा रहे मॉडल के आधार पर (एनएन या आरएफ जैसे अत्यधिक गैर-रैखिक) और अन्य चर के साथ बातचीत, सहसंबंध में बदलाव का कोई मतलब नहीं हो सकता है।
हालांकि, यदि आप लॉजिस्टिक रिग्रेशन जैसे एक सरल रैखिक मॉडल का उपयोग कर रहे हैं, तो यह पूर्णता का एक ठीक संकेतक है। इस तरह के परिवर्तन का मूल्यांकन करने का सबसे अच्छा तरीका है, हालांकि, जैसा कि फोकूर्ज़ ज़मान ने नोट किया है , आपके परिवर्तित सुविधा के साथ और बिना मॉडल का निर्माण करना होगा, और देखें कि सत्यापन त्रुटि (आपके क्रॉस-वैलिडेशन फोल्ड्स पर) कैसे विकसित होती है।
इस तरह एकल-सुविधा परिवर्तनों को स्पॉट करना आसान है। वे बहुत सारे डेटा पर लागू होते हैं, जहां आपके इनपुट और आउटपुट के बीच अधिक स्पष्ट संबंध एक अलग पैमाने पर हो सकता है। आय और "खुशियाँ" के बीच के संबंध को समाप्त करने के लिए लघुगणक प्रतीत होता है, लेकिन आप सीधे प्रतिभागी आय का लॉग रिकॉर्ड नहीं करेंगे।
सुविधा का संयोजन ढूंढना अधिक कठिन है। एक शुरुआत के लिए, यदि आप 2 सुविधाओं में से प्रत्येक को जोड़ना चाहते हैं, और आपके पास विशेषताएं हैं, तो आपके पास परीक्षण करने के लिए परिवर्तनों का एक आदेश है । इस तरह के परिवर्तनों को खोजने के लिए, आप समस्या के लिए एक nonlinear मॉडल (जैसे NN या RF) लागू कर सकते हैं और यह देखने का प्रयास कर सकते हैं कि यह क्या है। यदि आप पहचान सकते हैं कि एनएन में एक मध्यवर्ती परत क्या कर रही है, तो आप इसके परिणाम की पूर्व-गणना कर सकते हैं और इसे एक नई सुविधा के रूप में जोड़ सकते हैं। इसे फिर से गणना करने की आवश्यकता नहीं होगी, और यह शायद कुछ नया सीखने की कोशिश करेगा।D 2DD2
एनएन के आंतरिक प्रतिनिधित्व की व्याख्या करना कठिन हो सकता है, या रैंडम फ़ॉरेस्ट में फ़ीचर महत्व की व्याख्या भी कर सकता है। इस उद्देश्य के लिए एक आसान, और शायद अधिक अनुकूल विधि, मॉडल निर्णय पेड़ों के साथ बूस्टिंग होगा । बूस्टिंग को लागू करने के लिए बहुत सारे पुस्तकालय हैं, और यदि आप कागेल प्रतियोगिता में हैं क्योंकि आपकी पोस्ट को लगता है कि, XGBoost का उपयोग बहुत सारे प्रतिभागियों द्वारा किया जाता है, तो आपको कुछ मदद / ट्यूटोरियल मिल सकते हैं जो मैं वर्णन करने जा रहा हूं।
सबसे पहले, केवल स्टंप , 1-स्तरीय निर्णय पेड़ों का उपयोग करके अपने बूस्टिंग एल्गोरिथ्म को चलाएं । स्टंप बहुत कमजोर हैं, लेकिन बूस्टिंग इसे एक उचित मॉडल बनाता है। यह आपके आधार रेखा के रूप में कार्य करेगा। आपके द्वारा उपयोग किए जा रहे पुस्तकालय के आधार पर, आपको बहुत आसानी से प्रदर्शित करने में सक्षम होना चाहिए जो सबसे अधिक उपयोग की जाने वाली विशेषताएं हैं, और आपको कुछ पैटर्न की पहचान करने के लिए उन्हें प्रतिक्रिया के खिलाफ साजिश करना चाहिए (या यदि प्रतिक्रिया स्पष्ट है तो हिस्टोग्राम करें)। यह आपको एक अच्छा एकल सुविधा परिवर्तन क्या होगा पर एक अंतर्ज्ञान दे सकता है।
अगला, 2-स्तरीय निर्णय पेड़ों के साथ बूस्टिंग एल्गोरिथ्म चलाएं। यह मॉडल पिछले एक की तुलना में बहुत अधिक जटिल है; यदि दो चर एक साथ लिए गए हैं, तो व्यक्तिगत रूप से लेने की तुलना में अधिक शक्ति है, इस मॉडल को आपके पिछले एक (फिर से, प्रशिक्षण त्रुटि की अवधि में नहीं, लेकिन सत्यापन त्रुटि पर!) से बेहतर प्रदर्शन करना चाहिए। इसके आधार पर, आपको यह निकालने में सक्षम होना चाहिए कि कौन से चर अक्सर एक साथ उपयोग किए जाते हैं, और इससे आपको संभावित बहु-सुविधा परिवर्तनों तक ले जाना चाहिए।
संबंधित सामग्री पर, मैं निम्नलिखित वीडियो की सलाह दूंगा क्योंकि वे पालन करना आसान है