paint-brush
मशीन लर्निंग के लिए फ़ीचर इंजीनियरिंगद्वारा@sumitmakashir
841 रीडिंग
841 रीडिंग

मशीन लर्निंग के लिए फ़ीचर इंजीनियरिंग

द्वारा Sumit Makashir15m2024/05/15
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

मशीन लर्निंग मॉडल के प्रदर्शन को अधिकतम करने के लिए फ़ीचर इंजीनियरिंग महत्वपूर्ण है। सार्थक फ़ीचर बनाने और उन्हें प्रोसेस करने से, सरल एल्गोरिदम भी बेहतर परिणाम प्राप्त कर सकते हैं। मुख्य तकनीकों में एकत्रीकरण, अंतर और अनुपात, आयु एन्कोडिंग, संकेतक एन्कोडिंग, वन-हॉट एन्कोडिंग और लक्ष्य एन्कोडिंग शामिल हैं। प्रभावी फ़ीचर प्रोसेसिंग में आउटलायर ट्रीटमेंट, गुम मानों को संभालना, स्केलिंग, आयाम में कमी और लक्ष्यों को सामान्य वितरण में बदलना शामिल है।
featured image - मशीन लर्निंग के लिए फ़ीचर इंजीनियरिंग
Sumit Makashir HackerNoon profile picture
0-item


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

मोटे तौर पर कहें तो, हम फ़ीचर इंजीनियरिंग को दो घटकों में विभाजित कर सकते हैं: 1) नए फ़ीचर बनाना और 2) इन फ़ीचर को प्रोसेस करना ताकि वे विचाराधीन मशीन एल्गोरिदम के साथ बेहतर तरीके से काम कर सकें। इस लेख में, हम क्रॉस-सेक्शनल, स्ट्रक्चर्ड, नॉन-एनएलपी डेटासेट के लिए फ़ीचर इंजीनियरिंग के इन दो घटकों पर चर्चा करेंगे।


नई सुविधा का निर्माण

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


1. एकत्रीकरण

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

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

  1. पिछले पाँच सालों में ग्राहक द्वारा धोखाधड़ी का शिकार होने की संख्या: एक ग्राहक जो पहले कई बार धोखाधड़ी का शिकार हो चुका है, उसके दोबारा धोखाधड़ी का शिकार होने की संभावना अधिक हो सकती है। इसलिए, इस समेकित ग्राहक-स्तरीय दृश्य का उपयोग करके उचित पूर्वानुमान संकेत मिल सकते हैं।

  2. पिछले पाँच लेन-देन की राशि का औसत: अक्सर, जब क्रेडिट कार्ड से छेड़छाड़ की जाती है, तो धोखेबाज़ कार्ड का परीक्षण करने के लिए कई कम-मूल्य वाले लेन-देन करने का प्रयास कर सकते हैं। अब, एक कम-मूल्य वाला लेन-देन बहुत आम है और यह धोखाधड़ी का संकेत नहीं हो सकता है, लेकिन अगर हम थोड़े-थोड़े अंतराल पर ऐसे कई लेन-देन देखते हैं, तो यह एक समझौता किए गए क्रेडिट कार्ड का संकेत हो सकता है।


शीर्ष चार्ट व्यक्तिगत लेन-देन राशि दिखाता है और हम देख सकते हैं कि अलग-अलग कम-मूल्य वाले लेन-देन असामान्य नहीं हैं और धोखाधड़ी का संकेत नहीं देते हैं, हालांकि, कई लगातार कम-मूल्य वाले लेन-देन धोखाधड़ी का संकेत हैं। निचला चार्ट पिछले पाँच लेन-देन राशियों का एक रोलिंग माध्य दिखाता है और केवल तभी कम मूल्य लौटाता है जब कई लगातार कम-मूल्य वाले लेन-देन का पैटर्न होता है। इस मामले में, नीचे का समेकित दृश्य एक विशेषता के रूप में लेन-देन राशि का उपयोग करके वैध कम-मूल्य वाले लेन-देन और धोखाधड़ी वाले कम-मूल्य वाले लेन-देन के बीच अंतर करना संभव बनाता है।



2. अंतर और अनुपात

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

उदाहरण:

  1. पिछले 1 घंटे में नए व्यापारी लेनदेन के प्रतिशत और पिछले 30 दिनों में नए व्यापारी लेनदेन के प्रतिशत के बीच अंतर: शीघ्रता से नए व्यापारी लेनदेन का उच्च प्रतिशत अपने आप में धोखाधड़ी के जोखिम का संकेत दे सकता है, लेकिन जब हम देखते हैं कि ग्राहक के ऐतिहासिक व्यवहार की तुलना में यह व्यवहार बदल गया है, तो यह और भी अधिक स्पष्ट संकेत बन जाता है।

  2. वर्तमान दिन के लेन-देन की संख्या का पिछले 30-दिन के औसत दैनिक लेन-देन की संख्या से अनुपात: जब किसी क्रेडिट कार्ड से छेड़छाड़ की जाती है, तो संभवतः उसमें कम समय अवधि में कई लेन-देन होंगे, जो पिछले क्रेडिट कार्ड उपयोग के अनुरूप नहीं हो सकते हैं। पिछले 30-दिन के औसत दैनिक लेन-देन की संख्या से वर्तमान दिन के लेन-देन की संख्या का काफी अधिक अनुपात धोखाधड़ी वाले उपयोग पैटर्न का संकेत दे सकता है।


ऊपर दी गई तालिका से हम देख सकते हैं कि किसी दिए गए दिन पर लेनदेन की उच्च संख्या अपने आप में असामान्य लेनदेन व्यवहार का संकेत नहीं हो सकती है। इसके विपरीत, अनुपात-आधारित सुविधा ग्राहक के वर्तमान लेनदेन व्यवहार और उनके पिछले लेनदेन व्यवहार के बीच तुलना को सुविधाजनक बना सकती है, और इस प्रकार विसंगतियों को अधिक प्रभावी ढंग से पकड़ सकती है।

3. आयु एनकोडिंग

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

उदाहरण:

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

ऊपर दी गई तालिकाएँ आयु एन्कोडिंग का एक उदाहरण दिखाती हैं। यहाँ, हमने एक नई संख्यात्मक सुविधा "लेनदेन डिवाइस के पहले उपयोग के बाद से दिन" बनाई है, जो ग्राहक के डिवाइस के पहले उपयोग की तिथि और वर्तमान लेनदेन तिथि के बीच दिनों के अंतर के रूप में है।


4. संकेतक एनकोडिंग

संकेतक या बूलियन विशेषताओं में बाइनरी मान {1, 0} या {सत्य, असत्य} होते हैं। संकेतक विशेषताएँ बहुत आम हैं और इनका उपयोग विभिन्न प्रकार की बाइनरी जानकारी को दर्शाने के लिए किया जाता है। कुछ मामलों में, हमारे पास पहले से ही संख्यात्मक रूप में ऐसी बाइनरी विशेषताएँ हो सकती हैं, जबकि अन्य उदाहरणों में, उनके गैर-संख्यात्मक मान हो सकते हैं। मॉडल प्रशिक्षण के लिए गैर-संख्यात्मक बाइनरी विशेषताओं का उपयोग करने के लिए, हमें बस उन्हें संख्यात्मक मानों पर मैप करना है।

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

उदाहरण:

  1. हाल ही में लॉगिन इवेंट के दौरान सत्यापन विफल: हाल ही में विफल लॉगिन इवेंट धोखाधड़ी वाले लेनदेन के उच्च जोखिम से जुड़ा हो सकता है। इस मामले में, कच्चे डेटा में इस सुविधा के लिए हाँ या नहीं मान हो सकते हैं; हमें बस इन मानों को 1 या 0 पर मैप करना है।

  2. पिछले लेन-देन से देश के स्थान में परिवर्तन: देश के स्थान में परिवर्तन से क्रेडिट कार्ड के साथ छेड़छाड़ का संकेत मिल सकता है। यहाँ, गैर-संख्यात्मक विशेषता 'देश के स्थान' में परिवर्तन का प्रतिनिधित्व करने वाला एक संकेतक फीचर बनाने से इस देश परिवर्तन की जानकारी प्राप्त होगी।


ऊपर दी गई तालिकाएँ संकेतक एन्कोडिंग का एक उदाहरण दिखाती हैं। यहाँ हमने ग्राहक के वर्तमान लेनदेन देश के स्थान की तुलना उनके पिछले लेनदेन देश के स्थान से करके एक नई संख्यात्मक सुविधा "पिछले लेनदेन से देश परिवर्तन" बनाई है।


5. वन-हॉट एनकोडिंग

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

उदाहरण:

  1. लेन-देन खरीद श्रेणी: कुछ प्रकार की खरीद श्रेणियों में धोखाधड़ी का जोखिम अधिक हो सकता है। चूंकि खरीद श्रेणी के नाम टेक्स्ट डेटा हैं, इसलिए हम इस सुविधा को संख्यात्मक संकेतक सुविधाओं के एक सेट में बदलने के लिए वन-हॉट एन्कोडिंग तकनीक लागू कर सकते हैं। यदि दस अलग-अलग खरीद श्रेणी के नाम हैं, तो वन-हॉट एन्कोडिंग दस नई संकेतक सुविधाएँ बनाएगी, प्रत्येक खरीद श्रेणी के नाम के लिए एक।
  2. डिवाइस का प्रकार: ऑनलाइन लेनदेन कई अलग-अलग प्रकार के उपकरणों के माध्यम से किया जा सकता है, जैसे कि iPhone, Android फ़ोन, Windows PC और Mac। इनमें से कुछ डिवाइस मैलवेयर के प्रति अधिक संवेदनशील होते हैं या धोखेबाजों के लिए आसानी से सुलभ होते हैं और इसलिए, धोखाधड़ी के उच्च जोखिम से जुड़े हो सकते हैं। डिवाइस प्रकार की जानकारी को संख्यात्मक रूप में शामिल करने के लिए, हम डिवाइस प्रकार पर वन-हॉट एन्कोडिंग लागू कर सकते हैं, जो प्रत्येक डिवाइस प्रकार के लिए एक नई संकेतक सुविधा बनाएगा।

ऊपर दी गई तालिकाएँ वन-हॉट एनकोडिंग का एक उदाहरण दिखाती हैं। यहाँ हमने गैर-संख्यात्मक श्रेणीबद्ध विशेषता "डिवाइस प्रकार" पर वन-हॉट एनकोडिंग तकनीक लागू करके नई संख्यात्मक संकेतक विशेषताओं का एक सेट बनाया है।


6. लक्ष्य एनकोडिंग

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

उदाहरण:

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

ऊपर दी गई तालिकाएँ लक्ष्य एन्कोडिंग का एक उदाहरण दिखाती हैं। यहाँ हमने एक गैर-संख्यात्मक श्रेणीबद्ध विशेषता "व्यापारी नाम" पर लक्ष्य एन्कोडिंग तकनीक लागू करके एक नई संख्यात्मक विशेषता "व्यापारी नाम लक्ष्य एन्कोडिंग" बनाई है। जैसा कि नाम से पता चलता है, यह तकनीक नए फीचर मानों की गणना करने के लिए लक्ष्य मानों पर निर्भर करती है।



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

फ़ीचर प्रोसेसिंग

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

1. आउटलाइअर उपचार

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

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


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


उपरोक्त तालिकाएं आउटलाइअर उपचार के लिए सामान्यतः प्रयुक्त तकनीकों के अनुप्रयोग को दर्शाती हैं।


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


2. लुप्त मूल्यों का उपचार

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

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

उपरोक्त तालिकाएं लुप्त मानों के उपचार के लिए सामान्यतः प्रयुक्त तकनीकों के अनुप्रयोग को दर्शाती हैं।

3. स्केलिंग

अक्सर, मशीन लर्निंग मॉडल में हम जिन विशेषताओं का उपयोग करते हैं, उनकी रेंज अलग-अलग होती है। अगर हम उन्हें स्केलिंग के बिना इस्तेमाल करते हैं, तो बड़े निरपेक्ष मान वाली विशेषताएँ भविष्यवाणी के परिणाम पर हावी हो जाएँगी। इसके बजाय, प्रत्येक विशेषता को भविष्यवाणी के परिणाम में योगदान करने का उचित अवसर देने के लिए, हमें सभी विशेषताओं को एक ही पैमाने पर लाना चाहिए। दो सबसे आम स्केलिंग तकनीकें हैं:

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

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

उपरोक्त तालिका दो सामान्यतः प्रयुक्त फीचर स्केलिंग तकनीकों के अनुप्रयोग को दर्शाती है।


ऊपर दी गई छवि मूल, सामान्यीकृत और मानकीकृत फ़ीचर मानों के बीच स्केल अंतर दिखाती है। जैसा कि हम देख सकते हैं, स्केलिंग डेटा वितरण के आकार को प्रभावित नहीं करती है।

4. आयाम में कमी

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

अन्य सांख्यिकीय तकनीकें, जैसे कि एसोसिएशन विश्लेषण और फ़ीचर चयन एल्गोरिदम, सुविधाओं की संख्या को कम करने के लिए पर्यवेक्षित शिक्षण समस्याओं में उपयोग की जा सकती हैं। हालाँकि, वे आम तौर पर उसी स्तर की जानकारी प्राप्त नहीं कर पाते हैं जो PCA समान संख्या में सुविधाओं के साथ करता है।

ऊपर दी गई तालिकाओं में PCA के उपयोग को फ़ीचर रिडक्शन के लिए दिखाया गया है। जैसा कि हम देख सकते हैं कि पहले तीन फ़ीचर मूल डेटासेट में मौजूद 87% से ज़्यादा जानकारी को कैप्चर करते हैं। इस मामले में, हम <13% जानकारी के नुकसान के लिए दो फ़ीचर (f4 और f5) को छोड़ने का विकल्प चुन सकते हैं। रखने के लिए फ़ीचर की संख्या और हटाने के लिए फ़ीचर की संख्या विभिन्न कारकों के आधार पर समस्या दर समस्या अलग-अलग होगी।


5. सामान्य वितरण में परिवर्तन

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

ऊपर दी गई छवि मूल लक्ष्य डेटा के तीन रूपांतरणों को दिखाती है। इस विशिष्ट मामले में, हम देख सकते हैं कि लॉग रूपांतरण मूल डेटा वितरण को सामान्य वितरण में बदलने के लिए सबसे अच्छा काम करता है।


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


निष्कर्ष

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