लाभ:
- डोमेन ज्ञानको साथ अर्थपूर्ण व्युत्पन्न सुविधाहरू उत्पादन गर्ने क्षमता र उपयुक्त विधिहरू (एक-तातो, लेबल, लक्ष्य) को साथ वर्गीय कोटीहरू इन्कोड गर्ने क्षमता।
- मोडेल प्रकार (मानकीकरण, सामान्यीकरण) अनुसार संख्यात्मक चर मापन गर्ने क्षमता र अनावश्यक वा अपूर्ण स्केलिंगबाट बच्न।
- प्रशिक्षण/परीक्षण विभाजन पछि र प्रशिक्षणबाट मात्र सबै परिवर्तनहरू सिकेर सुविधा चुहावटबाट बच्ने क्षमता
मेसिन लर्निङमा एउटा पुरानो भनाइ छ: "एप्लाइड मेसिन लर्निङ अनिवार्य रूपमा फिचर इन्जिनियरिङ हो।" किनभने मोडेलको सफलता प्रायः तपाईले कुन एल्गोरिथ्म रोज्नुको सट्टा तपाईले मोडेललाई दिने इनपुटहरूबाट आउँछ। फीचर इन्जिनियरिङ भनेको कच्चा डाटाबाट अर्थपूर्ण संकेतहरू उत्पादन गर्ने कला हो जुन मोडेलले सिक्न सक्छ। आर्टिफिसियल इन्टेलिजेन्स यस चरणमा विचारहरूको समृद्ध स्रोत हो: जब तपाइँ "यस डेटाबाट कुन सुविधाहरू उत्पादन गर्न सकिन्छ" सोध्नुहुन्छ, यसले दर्जनौं सुझावहरू सूचीबद्ध गर्दछ। तर यी सुझावहरू मध्ये केही मूल्यवान हुन सक्छन्, केही बेकार हुन सक्छन्, र केही खतरनाक (रिसाव) हुन सक्छन्। यसलाई मिलाउने काम तपाईको हो।
किन सुविधा ईन्जिनियरिङ्
कच्चा डाटा विरलै मोडेलमा यसको उत्कृष्ट फारममा आउँछ। जबकि "जन्म मिति" स्तम्भ मात्र अर्थहीन छ, यसबाट उत्पन्न "उमेर" मान एक बलियो संकेत हो। तपाईंले "अर्डर टाइमस्ट्याम्प" बाट "हप्ताको दिन", "दिन/रात", "यो छुट्टी हो" जस्ता विशेषताहरू निकाल्न सक्नुहुन्छ। तपाईंले अनुपात ("ऋण/आय अनुपात") उत्पादन गर्न दुईवटा स्तम्भहरू जोड्न सक्नुहुन्छ। यहाँ, फिचर इन्जिनियरिङले डोमेन ज्ञानलाई गणितीय संकेतमा अनुवाद गर्दैछ। र ठ्याक्कै यही कारणले गर्दा यो त्यो चरण हो जसलाई सबैभन्दा धेरै मानव बुद्धि चाहिन्छ।
वर्गीय चरहरूलाई संख्याहरूमा रूपान्तरण गर्दै: कोडिङ
मोडेलहरू सामान्यतया संख्याहरूसँग काम गर्छन्, पाठ होइन। वर्गीय चरहरू (जस्तै सहर, रंग, उत्पादन प्रकार) लाई सङ्ख्यामा रूपान्तरण गर्नुलाई सङ्केतन भनिन्छ। तीन सामान्य तरिका:
एक-हट एन्कोडिङ: प्रत्येक कोटीको लागि ०/१ को मानको साथ छुट्टै स्तम्भ खोल्छ। "शहर" को लागि, इस्तानबुल, अंकारा, इज्मिर स्तम्भहरू बनाइएका छन्; यदि एक ग्राहक इस्तानबुलको हो भने, केवल त्यो स्तम्भ 1 हुनेछ। कोटिहरूको संख्या सानो हुँदा आदर्श; यदि त्यहाँ धेरै कोटिहरू छन् भने यसले सयौं स्तम्भहरू उत्पादन गर्दछ (यसलाई "आकार विस्फोट" भनिन्छ)।
लेबल इन्कोडिङ: प्रत्येक कोटीलाई नम्बर दिन्छ (इस्तानबुल=0, अंकारा=1)। यो सरल छ, तर यसले संयोगवश मोडेललाई अनुक्रम सिकाउन सक्छ (जस्तै अंकारा > इस्तानबुल); त्यसैले यसलाई अव्यवस्थित कोटीहरूमा सावधानीपूर्वक प्रयोग गरिन्छ।
लक्ष्य इन्कोडिङ: प्रत्येक श्रेणीलाई त्यस कोटीमा लक्षित चरको औसतसँग बदल्छ। यो धेरै शक्तिशाली छ, तर चुहावट को सबै भन्दा खतरनाक स्रोत: यदि तपाइँ खाता परीक्षण डाटा को लक्ष्य लिनुभयो भने, मोडेल भविष्य देख्छ। यो केवल प्रशिक्षण डेटा र सावधानीपूर्वक गणना गर्नुपर्छ (क्रस-प्रमाणीकरण भित्र)।
स्केलिंग: ठूलो संख्याले मोडेललाई ओझेलमा पार्दैन
केही मोडेलहरू (दूरी-आधारितहरू, रैखिक मोडेलहरू, न्यूरल नेटवर्कहरू) चरहरूको स्केलमा संवेदनशील हुन्छन्। यदि "आय" (0-500,000) र "उमेर" (0-100) एउटै ढाँचामा पर्छन् भने, यो ठूलो भएकोले मात्र आम्दानी हावी हुन सक्छ। स्केलिङले यसलाई ठीक गर्छ। दुई सामान्य विधिहरू: मानकीकरण (प्रत्येक मानलाई "कति मानक विचलनहरू औसतबाट टाढा" मा रूपान्तरण गर्दछ) र सामान्यीकरण (न्यूनतम-अधिकतम सामान्यीकरण — मानहरूलाई दायरा ०-१ मा संकुचित गर्दछ)। रूख-आधारित मोडेलहरू (निर्णय रूखहरू, अनियमित वन) मापन असंवेदनशील छन्, तिनीहरूलाई स्केलिंग आवश्यक पर्दैन।
सावधानी: स्केलिंग र कोडिङ प्यारामिटरहरू (मान, मानक विचलन, श्रेणी-मतलब म्यापिङ) प्रशिक्षण डेटाबाट मात्र गणना गरिनु पर्छ, त्यसपछि परीक्षण डेटामा पनि लागू गर्नुपर्छ। परीक्षण डेटा सहित चुहावट छ र तपाईंको मोडेल यो वास्तवमा भन्दा राम्रो देखिन्छ।
फीचर ईन्जिनियरिङ् मा चुहावट को हृदय
फिचर जेनरेशन जहाँ डाटा चुहावट प्रायः उत्पन्न हुन्छ। दुई सामान्य गल्तीहरू: समय चुहावट — भविष्यको जानकारी समावेश गर्ने सुविधा उत्पादन गर्दै ("अन्तिम 30 दिनको औसत" गणना गर्दा पूर्वानुमान दिन पछिका दिनहरू सहित)। तथ्याङ्क चुहावट — तालिम/परीक्षण विभाजन अघि सबै डेटाबाट सुविधा (स्केलिंग औसत, लक्ष्य इन्कोडिङ मान) गणना गर्दै। नियम: ट्रेन/परीक्षण विभाजन गरिसकेपछि प्रत्येक रूपान्तरण सिक्नुहोस् र केवल प्रशिक्षण डेटाबाट। यो नियमित रूपमा गर्ने सबैभन्दा सुरक्षित तरिका पाइपलाइन प्रयोग गर्नु हो - एउटा संरचना जसले सबै रूपान्तरणहरूलाई एउटै चेनमा सङ्कलन गर्छ र विभाजन पछि लागू गर्दछ।
विधि
के को लागि
चुहावटको जोखिम
नोट
एक-तातो एन्कोडिङ
केहि कोटिहरु संग चर
कम
धेरै कोटिहरूमा आकार विस्फोट हुन्छ
लेबल कोडिङ
वर्गीकृत वर्ग
कम
आदेश बाहिर गलत क्रम सिकाउँछ
लक्ष्य एन्कोडिङ
बहु-श्रेणी, बलियो संकेत
धेरै उच्च
शिक्षाबाट मात्र, CV मा
मानकीकरण
रैखिक/दूरी मोडेलहरू
मध्यम
प्यारामिटर मात्र शिक्षा मा निर्भर गर्दछ
समय विन्डो सुविधा
समय श्रृंखला
उच्च
भविष्य थप्नुहोस्
तीन मिनी केसहरू
केस 1 - मूल्यवान सम्पत्ति। एक क्रेडिट टोलीले कच्चा "मासिक आय" र "मासिक ऋण भुक्तानी" स्तम्भहरूबाट "ऋण-देखि-आय अनुपात" सुविधा उत्पन्न गर्यो। यो एकल व्युत्पन्न सुविधाले 71% बाट 79% सम्म मोडेल सटीकता बढायो; किनभने यो दर थियो, पूर्ण आम्दानीले होइन, जसले वास्तवमा जोखिम निर्धारण गर्छ। पाठ: डोमेन ज्ञान द्वारा उत्पन्न अनुपातहरू बलियो संकेतहरू हुन्।
केस २ — लक्ष्य इन्कोडिङ चुहावट। एउटा टोलीले "जिप कोड" लाई लक्ष्य इन्कोडिङको साथ नम्बरमा रूपान्तरण गर्यो (त्यस क्षेत्रमा औसत मन्थन दर), तर विभाजन गर्नु अघि सबै डेटाबाट त्यसो गर्यो। मोडेलले परीक्षण सेटमा 94% दियो, उत्पादनमा 68% मा झर्यो। ६ हप्ताको मेहनत खेर गयो । पाठ: लक्षित कोडिङ सावधानीपूर्वक गरिन्छ, केवल प्रशिक्षण भित्र।
केस 3 - स्केलिंग बिर्सने। एक विश्लेषकले राजस्व (0-400,000) र ग्राहकको उमेर (18-75) मापन बिना दूरी-आधारित मोडेलमा खुवाए। मोडेलले लगभग अनन्य रूपमा आयमा हेर्यो, उमेरको प्रभावलाई कुचल्दै। जब स्केलिंग थपियो, विभाजन अर्थपूर्ण भयो। पाठ: दूरी/रैखिक मोडेलहरूमा स्केलिंगलाई बेवास्ता गरिएको छैन।
चार प्रतिलिपि गर्न मिल्ने टेम्प्लेटहरू
1) सुविधा विचार उत्पादन (उन्मूलन तपाईं मा निर्भर छ):
तपाईंको भूमिका: सुविधा ईन्जिनियरिङ् सहायक। मेरो df स्तम्भहरू: जन्म_मिति, अर्डर_टाइम (टाइमस्ट्याम्प), आय_टीएल, ऋण_टीएल, शहर, उत्पादन_श्रेणी। लक्ष्य: "ऋण फिर्ता हुनेछ" (०/१)। यी स्तम्भहरूबाट उत्पन्न गर्न सकिने १५ विशेषताहरू सुझाव दिनुहोस्; प्रत्येकको लागि चुहावटको जोखिम (कम/मध्यम/उच्च) निर्दिष्ट गर्नुहोस्। भविष्यको जानकारी समावेश गर्नेहरूलाई स्पष्ट रूपमा चिन्ह लगाउनुहोस्।
२) सुरक्षित कोडिङ (विभाजन पछि):
कोड लेख्नुहोस् जुन एक-तातो "शहर" र "उत्पादन_श्रेणी" लाई सङ्केत गर्दछ। महत्त्वपूर्ण: इन्कोडिङलाई प्रशिक्षण डेटामा मात्र फिट गर्नुहोस्, त्यसपछि परीक्षण डेटा (sklearn OneHotEncoder को साथ) रूपान्तरण गर्नुहोस्। तपाईंले शिक्षामा नदेखिएको वर्ग (ह्यान्डल_अज्ञात) कसरी ह्यान्डल गर्नुहुन्छ भनेर व्याख्या गर्नुहोस्।
3) पाइपलाइन संग चुहावट मुक्त रूपान्तरण:
sklearn पाइपलाइन सेट अप गर्नुहोस्: संख्यात्मक स्तम्भहरूमा StandardScaler लागू गर्नुहोस्, वर्गीकृत स्तम्भहरूमा OneHotEncoder, अन्त्यमा वर्गीकरण थप्नुहोस्। ग्यारेन्टी गर्नुहोस् कि सबै परिवर्तनहरू ट्रेन/परीक्षण विभाजन पछि र प्रशिक्षणबाट मात्र सिकिन्छन्। कोड व्याख्या गर्नुहोस् र यो किन चुहावट मुक्त छ।
4) समय विन्डो सुविधा (रिसाव नियन्त्रण):
प्रत्येक ग्राहकको लागि "पछिल्लो 30 दिनमा अर्डरहरूको संख्या" विशेषता उत्पन्न गर्नुहोस्, तर पूर्वानुमान दिन पछि डेटा समावेश नगर्नुहोस्। कोडले भविष्यमा हेर्दैन भनेर लाइनद्वारा लाइन व्याख्या गर्नुहोस्। म सन्दर्भ मिति स्तम्भ प्रदान गर्नेछु।
कमजोर प्रम्प्ट / बलियो प्रम्प्ट
कमजोर प्रम्प्ट:
यस डेटामा राम्रो गुणहरू थप्नुहोस्।
"राम्रो" अपरिभाषित छ, लक्ष्य अस्पष्ट छ, त्यहाँ कुनै चुहावट नियन्त्रण छैन। AI ले अनियमित, सायद चुहावट, सुविधाहरू उत्पन्न गर्दछ।
शक्तिशाली प्रम्प्ट:
तपाईंको भूमिका: फीचर इन्जिनियर। लक्ष्य: "30 दिनमा मंथन" (0/1), अनुमानित सन्दर्भ मिति: save_date। df मा लेनदेन इतिहास छ। कार्य: 8 सुविधाहरू उत्पन्न गर्नुहोस्, प्रत्येकको लागि "के मसँग यो जानकारी भविष्यवाणीको समयमा छ" भन्ने प्रश्नको जवाफ दिनुहोस्। समय सञ्झ्याल सुविधाहरूमा सन्दर्भ मिति पछि मिति थप्दै। रेल/परीक्षण खण्ड पछि कार्यान्वयन गर्न पाइपलाइन-कम्प्याटिबल तरिकामा कोड लेख्नुहोस्।
यहाँ, लक्ष्य, सन्दर्भ समय र चुहावट नियन्त्रण सुरु देखि परिभाषित गरिएको छ।
सामान्य गल्तीहरू
- विभाजन अघि सबै डेटाबाट रूपान्तरण सिक्दै। यदि स्केलिंग/इन्कोडिङ प्यारामिटरले परीक्षण डाटा देख्छ भने, चुहावट हुन्छ।
- लक्ष्य कोडिङ को लापरवाह प्रयोग। यो सबैभन्दा शक्तिशाली तर सबैभन्दा चुहावट विधि हो; केवल प्रशिक्षणबाट, क्रस प्रमाणीकरणमा।
- समय सञ्झ्याल सुविधा संग भविष्य थप्दै। यदि "अन्तिम 30 दिन" गणना पूर्वानुमान दिन पछि प्रविष्ट गरिएको छ भने, मोडेलले भविष्य देख्छ।
- रूख मोडेलमा अनावश्यक मापन र रैखिक मोडेलमा अपूर्ण स्केलिंग। स्केलिंग निर्णयहरू मोडेल प्रकार अनुसार बनाइन्छ।
- प्रश्न बिना AI को हरेक सुविधा सुझाव थप्दै। सुझावहरूमा बेकार र चुहावट सुविधाहरू समावेश हुन सक्छ।
सुझाव: तपाईंले उत्पन्न गर्नुहुने प्रत्येक सुविधाको लागि एउटा प्रश्न लेख्नुहोस्: "के मैले भविष्यवाणी गर्दा मसँग भएको जानकारीको साथ यो मान गणना गर्न सक्छु?" यदि जवाफ स्पष्ट "हो" होइन भने, सुविधा प्रयोग नगर्नुहोस्। यो एकल अनुशासनले धेरैजसो सुविधा-सम्बन्धित चुहावट हटाउँछ।
संक्षेपमा
फिचर इन्जिनियरिङ भनेको कच्चा डाटाबाट अर्थपूर्ण संकेतहरू उत्पन्न गर्ने कला हो र यसले एल्गोरिदम भन्दा धेरै मोडेलको सफलता निर्धारण गर्छ। इन्कोडिङ वर्गीकरणहरू (एक-हट, लेबल, लक्ष्य), स्केलिंग संख्यात्मक (मानकीकरण, सामान्यीकरण) र डोमेन ज्ञानको साथ व्युत्पन्न सुविधाहरू उत्पादन गर्ने आधारभूत उपकरणहरू हुन्। तर यो चरण चुहावटको मुटु पनि हो: सबै परिवर्तनहरू प्रशिक्षण/परीक्षण विभाजन पछि र प्रशिक्षण डेटाबाट मात्र सिक्नुपर्दछ। AI ले धेरै विचारहरू उत्पन्न गर्दछ; यो मानवीय निर्णय हो जसले खतरनाक र बहुमूल्य छुट्याउँछ।
आवेदन कार्य
लक्ष्य चर छनौट गर्नुहोस् र तपाईंसँग भएका स्तम्भहरूबाट कम्तिमा पाँच व्युत्पन्न सुविधाहरू डिजाइन गर्नुहोस्। तिनीहरूमध्ये प्रत्येकको लागि, लिखित रूपमा "के म भविष्यवाणीको समयमा उपलब्ध छु" प्रश्नको जवाफ दिनुहोस् र कम्तिमा एउटालाई "रिसावको उच्च जोखिम" को रूपमा हटाउनुहोस्। त्यसपछि विभाजन पछि लागू गर्न पाइपलाइनमा सुरक्षित सुविधाहरू कोड गर्नुहोस्।
चेकलिस्ट
- के मैले ट्रेन/परीक्षण विभाजन पछि सबै परिवर्तनहरू लागू गरें?
- [ ] के मैले प्रशिक्षणबाट मात्र स्केलिंग/इन्कोडिङ प्यारामिटरहरू सिकेको थिएँ?
- के मैले प्रत्येक सुविधाको लागि "के मसँग यो भविष्यवाणीको समयमा छ" प्रश्नको जवाफ दिएको छु?
- [ ] के मैले लक्ष्य कोडिङ जस्ता उच्च-जोखिम विधिहरूमा थप हेरचाह गरेको छु?
- के मैले मोडेल प्रकार (रूख/रेखा) को लागि उपयुक्त मापन गर्ने निर्णय गरेको छु?