लेबल एन्कोडिंग या वन-हॉट एन्कोडिंग: क्या अंतर है?
अक्सर मशीन लर्निंग में हम श्रेणीबद्ध चर को कुछ प्रकार के संख्यात्मक प्रारूप में परिवर्तित करना चाहते हैं जिन्हें एल्गोरिदम द्वारा आसानी से उपयोग किया जा सकता है।
श्रेणीबद्ध चर को संख्यात्मक चर में बदलने के दो सामान्य तरीके हैं:
1. लेबल एन्कोडिंग: प्रत्येक श्रेणीगत मान को वर्णमाला क्रम के आधार पर एक पूर्णांक मान निर्दिष्ट करें।
2. एक हॉट एन्कोडिंग: नए वेरिएबल बनाएं जो मूल श्रेणीगत मानों का प्रतिनिधित्व करने के लिए 0 और 1 मान लेते हैं।
उदाहरण के लिए, मान लें कि हमारे पास दो वेरिएबल्स के साथ निम्नलिखित डेटासेट हैं और हम टीम वेरिएबल को एक श्रेणीगत वेरिएबल से एक संख्यात्मक वेरिएबल में परिवर्तित करना चाहते हैं:
निम्नलिखित उदाहरण दिखाते हैं कि ऐसा करने के लिए टैग एन्कोडिंग और वन-हॉट एन्कोडिंग दोनों का उपयोग कैसे करें।
उदाहरण: लेबल एन्कोडिंग का उपयोग करना
लेबल एन्कोडिंग का उपयोग करके, हम टीम कॉलम में प्रत्येक अद्वितीय मान को वर्णमाला क्रम के आधार पर पूर्णांक मान में परिवर्तित करेंगे:
इस उदाहरण में हम देख सकते हैं:
- प्रत्येक “ए” मान को 0 में बदल दिया गया है।
- प्रत्येक “बी” मान को 1 में बदल दिया गया है।
- प्रत्येक “सी” मान को 2 में परिवर्तित किया गया था।
हमने टीम कॉलम को श्रेणीबद्ध चर से संख्यात्मक चर में सफलतापूर्वक परिवर्तित कर दिया है।
उदाहरण: एकल एक-हॉट एनकोड का उपयोग करना
वन-हॉट एन्कोडिंग का उपयोग करके, हम टीम कॉलम को केवल 0 और 1 मान वाले नए वेरिएबल में परिवर्तित करेंगे:
जब हम इस दृष्टिकोण का उपयोग करते हैं, तो हम मूल श्रेणीबद्ध चर में प्रत्येक अद्वितीय मान के लिए एक नया कॉलम बनाते हैं।
उदाहरण के लिए, श्रेणीबद्ध चर टीम में तीन अद्वितीय मान थे, इसलिए हमने डेटासेट में तीन नए कॉलम बनाए जिनमें सभी मान 0 या 1 हैं।
यहां नए कॉलम में मानों की व्याख्या करने का तरीका बताया गया है:
- यदि टीम कॉलम का मूल मान A था, तो नए Team_A कॉलम का मान 1 है। अन्यथा, मान 0 है।
- यदि टीम कॉलम का मूल मान बी था तो नए टीम_बी कॉलम का मान 1 है। अन्यथा, मान 0 है।
- यदि टीम कॉलम का मूल मान C था, तो नए Team_C कॉलम का मान 1 है। अन्यथा, मान 0 है।
हमने टीम कॉलम को एक श्रेणीगत चर से तीन संख्यात्मक चर में सफलतापूर्वक परिवर्तित कर दिया है – जिसे कभी-कभी “डमी” चर भी कहा जाता है।
ध्यान दें : रिग्रेशन मॉडल या अन्य मशीन लर्निंग एल्गोरिदम में इन “डमी” वेरिएबल्स का उपयोग करते समय, डमी वेरिएबल ट्रैप से बचने के लिए सावधान रहें।
टैग एन्कोडिंग बनाम वन-हॉट एन्कोडिंग का उपयोग कब करें
अधिकांश परिदृश्यों में, एक श्रेणीगत चर को संख्यात्मक चर में बदलने के लिए वन-हॉट एन्कोडिंग पसंदीदा तरीका है क्योंकि लेबल एन्कोडिंग से यह प्रतीत होता है कि मानों के बीच एक रैंकिंग है।
उदाहरण के लिए, उस मामले पर विचार करें जहां हमने टीम को संख्यात्मक चर में बदलने के लिए लेबल एन्कोडिंग का उपयोग किया था:
लेबल द्वारा एन्कोड किए गए डेटा से ऐसा प्रतीत होता है कि टीम सी, टीम बी और ए से किसी तरह बड़ी या लंबी है क्योंकि इसका संख्यात्मक मान अधिक है।
यह कोई समस्या नहीं है यदि मूल श्रेणीगत चर वास्तव में प्राकृतिक क्रम या रैंकिंग वाला एक क्रमिक चर है, लेकिन कई परिदृश्यों में ऐसा नहीं है।
हालाँकि, वन-हॉट कोडिंग का एक नुकसान यह है कि इसके लिए आपको उतने ही नए वेरिएबल बनाने की आवश्यकता होती है, जितने मूल श्रेणीगत वेरिएबल में अद्वितीय मान होते हैं।
इसका मतलब यह है कि यदि आपके श्रेणीबद्ध चर में 100 अद्वितीय मान हैं, तो आपको एक-हॉट एन्कोडिंग का उपयोग करते समय 100 नए चर बनाने की आवश्यकता होगी।
आपके डेटा सेट के आकार और आप जिस प्रकार के वेरिएबल के साथ काम कर रहे हैं, उसके आधार पर, आप वन-हॉट एन्कोडिंग या लेबल एन्कोडिंग को प्राथमिकता दे सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि व्यवहार में लेबल एन्कोडिंग कैसे करें:
निम्नलिखित ट्यूटोरियल बताते हैं कि अभ्यास में वन-हॉट एन्कोडिंग कैसे करें: