मुख्य सामग्री पर जाएं

एन्कोडिंग कार्यप्रणालियों का अवलोकन

इस ट्यूटोरियल में, आप एन्कोडिंग तकनीकों की एक झलक पाएँगे, साथ ही कुछ उन्नत संदर्भ जो आपको श्रेणीगत वेरिएबल्स से निपटने में मदद करेंगे।
अपडेट किया गया 25 सित॰ 2026  · 5 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity
पेंसिल का ग्राफ़िक

"कई व्यावहारिक डेटा साइंस गतिविधियों में, डेटा सेट में श्रेणीगत वेरिएबल्स होते हैं। ये वेरिएबल्स आमतौर पर टेक्स्ट मानों के रूप में संग्रहीत होते हैं"। (Practical Business Python) चूँकि मशीन लर्निंग गणितीय समीकरणों पर आधारित है, इसलिए यदि हम श्रेणीगत वेरिएबल्स को जैसा है वैसा रखें तो समस्या उत्पन्न होगी। कई एल्गोरिद्म बिना अतिरिक्त हेरफेर के श्रेणीगत मानों का समर्थन करते हैं, लेकिन उन मामलों में भी यह बहस का विषय रहता है कि वेरिएबल्स को एन्कोड किया जाए या नहीं। जो एल्गोरिद्म श्रेणीगत मानों का समर्थन नहीं करते, उनके लिए एन्कोडिंग कार्यप्रणालियाँ ही विकल्प बचती हैं। आइए यहाँ कुछ विधियों पर चर्चा करें।

एन्कोडिंग कार्यप्रणालियाँ

लेबल एन्कोडिंग

लेबल एन्कोडिंग में, हम प्रत्येक श्रेणी को एक संख्या या लेबल से मैप करते हैं। चुने गए लेबल्स का आपस में कोई संबंध नहीं होता। इसलिए, जिन श्रेणियों के बीच कुछ निकटता या संबंध है, वे एन्कोडिंग के बाद ऐसी जानकारी खो देती हैं।

फ़्रीक्वेंसी एन्कोडिंग

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

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

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

डमी वेरिएबल ट्रैप:

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

टार्गेट/इम्पैक्ट/लाइकलीहुड एन्कोडिंग

टार्गेट एन्कोडिंग लेबल एन्कोडिंग के समान है, फर्क बस इतना है कि यहाँ लेबल्स का लक्ष्य से सीधे सहसंबंध होता है। उदाहरण के लिए, मीन टार्गेट एन्कोडिंग में प्रत्येक श्रेणी के लिए लेबल का निर्धारण प्रशिक्षण डेटा पर लक्ष्य वेरिएबल के औसत मान से होता है। यह एन्कोडिंग विधि समान श्रेणियों के बीच संबंध को उजागर करती है, लेकिन ये संबंध श्रेणियों और लक्ष्य तक ही सीमित रहते हैं। मीन टार्गेट एन्कोडिंग के फायदे हैं कि यह डेटा की मात्रा को प्रभावित नहीं करती और तेज़ सीखने में मदद करती है, जबकि कमी यह है कि इसका वैलिडेशन कठिन होता है। इस एन्कोडिंग कार्यप्रणाली के कार्यान्वयन में Regularization आवश्यक है। टार्गेट एन्कोडर देखें python और R में।

एन्कोडिंग आँकड़े

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

एन्कोडिंग डिसटिंग्विशएबिलिटी की गणना करने के लिए, हम श्रेणियों के लेबल्स की गणना करते हैं और फिर लेबल्स का मानक विचलन निकालते हैं। यह दर्शाता है कि एन्कोड की गई श्रेणियाँ कितनी अलग-अलग हैं—वे दूर-दूर हैं या किसी क्षेत्र में गुच्छित हैं।

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

अंत में, मैं एक scikit-learn-स्टाइल ट्रांसफॉर्मर साझा करना चाहूँगा जो विभिन्न तकनीकों का उपयोग करके श्रेणीगत वेरिएबल्स को एन्कोड करने में मदद करता है।

category_encoders

यह scikit-learn लाइब्रेरी वर्तमान में निम्न तकनीकों का समर्थन करती है:

  • Ordinal
  • One-Hot
  • Binary
  • Helmert Contrast
  • Sum Contrast
  • Polynomial Contrast
  • Backward Difference Contrast
  • Hashing
  • BaseN
  • LeaveOneOut
  • Target Encoding

यह pandas डेटा फ़्रेम को इनपुट के रूप में समर्थन देती है और डेटा को रूपांतरित कर सकती है। यह sklearn पाइपलाइनों का भी समर्थन कर सकती है, विवरण के लिए यहाँ देखें।

यदि आप scikit-learn के बारे में और सीखना चाहते हैं, तो DataCamp का Supervised Learning with scikit-learn कोर्स लें।

विषय
मशीन लर्निंग

मशीन लर्निंग के बारे में और जानें

कोर्स

Understanding Machine Learning

2 घंटा
311.4K
कोडिंग के बिना मशीन लर्निंग का परिचय।
विवरण देखेंRight Arrow
पाठ्यक्रम शुरू करें
और देखेंRight Arrow