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