कैटगरीकल डेटा: शब्दावली और वन-हॉट एन्कोडिंग

डाइमेंशन शब्द का मतलब है कि फ़ीचर वेक्टर. कुछ कैटगरी वाली सुविधाएं कम डाइमेंशन वाली होती हैं. उदाहरण के लिए:

सुविधा का नाम कैटगरी की # सैंपल कैटगरी
snowed_today 2 सही, गलत
skill_level 3 बिगिनर, प्रैक्टिशनर, एक्सपर्ट
सीज़न 4 सर्दी, बसंत, गर्मी, पतझड़
day_of_week 7 सोमवार, मंगलवार, बुधवार
ग्रह 8 बुध, शुक्र, पृथ्वी

जब किसी कैटगरी वाली सुविधा में संभावित कैटगरी की संख्या कम होती है, तो इसे शब्दावली के तौर पर एन्कोड करें. शब्दावली एन्कोडिंग के साथ, मॉडल सभी के साथ अलग सुविधा के तौर पर संभावित कैटगरी वाले मान. ट्रेनिंग के दौरान, मॉडल हर कैटगरी के लिए अलग-अलग अहमियत रखता है.

उदाहरण के लिए, मान लें कि किसी कार की कीमत का अनुमान लगाने के लिए कोई मॉडल बनाया जा रहा है, car_color नाम की एक कैटगरी वाली सुविधा के साथ किया जा सकता है. शायद लाल रंग की कारें, हरी कारों के मुकाबले ज़्यादा फ़ायदेमंद हों. मैन्युफ़ैक्चरर के प्रॉडक्ट के बाहरी रंग सीमित हैं. इसलिए, car_color एक कम डाइमेंशन वाली कैटगरी से जुड़ी सुविधा है. नीचे दिया गया उदाहरण car_color:

चित्र 1.  पैलेट में हर रंग को एक अलग
      सुविधा. इसका मतलब है कि फ़ीचर वेक्टर में हर रंग की एक अलग सुविधा होती है.
      उदाहरण के लिए, 'लाल' एक सुविधा है, 'Orange' एक अलग सुविधा है.
      वगैरह.
पहला डायग्राम. हर कैटगरी के लिए एक खास सुविधा.

कसरत: अपने दिल की सुनें

सही या गलत: मशीन लर्निंग मॉडल सीधे आपकी ट्रेनिंग कर सकता है रॉ स्ट्रिंग की वैल्यू, जैसे कि "Red" और "Black" तो इन वैल्यू को न्यूमेरिक वेक्टर में बदल दिया जाता है.
सही
ट्रेनिंग के दौरान, कोई मॉडल सिर्फ़ फ़्लोटिंग-पॉइंट नंबरों में बदलाव कर सकता है. "Red" स्ट्रिंग, कोई फ़्लोटिंग-पॉइंट नंबर नहीं है. आपने लोगों तक पहुंचाया मुफ़्त में को "Red" जैसी स्ट्रिंग को फ़्लोटिंग-पॉइंट नंबर में बदलना चाहिए.
गलत
मशीन लर्निंग मॉडल, सिर्फ़ उन सुविधाओं का इस्तेमाल करके ट्रेनिंग दे सकता है जिनमें फ़्लोटिंग-पॉइंट वैल्यू को बदलना होगा, ताकि आपको उन स्ट्रिंग को ट्रेनिंग से पहले फ़्लोटिंग-पॉइंट वैल्यू.

इंडेक्स नंबर

मशीन लर्निंग मॉडल सिर्फ़ फ़्लोटिंग-पॉइंट नंबरों में बदलाव कर सकते हैं. इसलिए, आपको हर स्ट्रिंग को एक यूनीक इंडेक्स नंबर में बदलना होगा, जैसा कि नीचे दिया गया उदाहरण:

चित्र 2.  हर रंग एक यूनीक पूर्णांक वैल्यू से जुड़ा होता है. इसके लिए
      उदाहरण, 'Red' पूर्णांक 0, 'Orange' से जुड़ा होता है के साथ
      पूर्णांक 1 वगैरह का इस्तेमाल करें.
दूसरा डायग्राम. इंडेक्स की गई सुविधाएं.

अपने दिल की सुनें

क्या आपके मॉडल को दिखाए गए इंडेक्स नंबर के हिसाब से ट्रेनिंग दी गई है दूसरी इमेज में दिखाया गया है?
हां
अगर मॉडल को इंडेक्स नंबर के हिसाब से ट्रेनिंग दी गई है, तो हर एक को ग़लत संख्या में संख्यात्मक मान के रूप में मानें और इस बात पर विचार करें "Black" (इंडेक्स नंबर 5) को पांच गुना ज़्यादा सार्थक होना की तुलना "Orange" (इंडेक्स नंबर 1) से करनी होगी.
नहीं
आपके मॉडल को इंडेक्स नंबर के हिसाब से ट्रेनिंग नहीं देनी चाहिए. अगर ऐसा किया जाता है, तो आपका मॉडल हर इंडेक्स नंबर को न्यूमेरिक के तौर पर ट्रीट करेगा और "Black" (इंडेक्स नंबर 5) को "Orange" की तुलना में, मॉडल के लिए पांच गुना ज़्यादा अहम है (इंडेक्स नंबर 1).

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

शब्दावली बनाने का अगला कदम है हर इंडेक्स नंबर को इसकी वन-हॉट एन्कोडिंग. वन-हॉट एन्कोडिंग में:

  • हर कैटगरी को, N एलिमेंट के वेक्टर (कलेक्शन) से दिखाया जाता है, जहां N कैटगरी की संख्या है. उदाहरण के लिए, अगर car_color के लिए आठ सोर्स कैटगरी चुनते हैं, तो एक हॉट वेक्टर दिखाने वाले में आठ एलिमेंट होंगे.
  • वन-हॉट वेक्टर के ठीक एक एलिमेंट की वैल्यू 1.0 है; बाकी सभी एलिमेंट की वैल्यू 0.0 है.

उदाहरण के लिए, नीचे दी गई टेबल में, हर यूआरएल के लिए वन-हॉट एन्कोडिंग को दिखाया गया है car_color:

सुविधा लाल Orange नीला पीला हरा काला बैंगनी भूरा
"लाल" 1 0 0 0 0 0 0 0
"ऑरेंज" 0 1 0 0 0 0 0 0
"ब्लू" 0 0 1 0 0 0 0 0
"येलो" 0 0 0 1 0 0 0 0
"ग्रीन" 0 0 0 0 1 0 0 0
"काला" 0 0 0 0 0 1 0 0
"पर्पल" 0 0 0 0 0 0 1 0
"भूरा" 0 0 0 0 0 0 0 1

यह पास किया जाने वाला स्ट्रिंग या इंडेक्स नंबर नहीं, बल्कि वन-हॉट वेक्टर होता है सुविधा वेक्टर तक सीमित करें. यह मॉडल, एलिमेंट के हर एलिमेंट का अलग-अलग वेट लेता है फ़ीचर वेक्टर.

नीचे दिया गया उदाहरण, दुनिया भर में शब्दावली प्रतिनिधित्व:

चित्र 3.  कैटगरी को मैप करने के लिए एंड-टू-एंड प्रोसेस का डायग्राम
      फ़ीचर वेक्टर. इस डायग्राम में, इनपुट की सुविधाएं 'पीला' हैं.
      'नारंगी', 'नीला', और 'नीला' दूसरी बार.  सिस्टम, स्टोर में सेव की गई
      शब्दावली ('लाल' 0 है, 'नारंगी' 1 है, 'नीला' 2 है, 'पीला' 3 है, और
      किसी आईडी पर इनपुट वैल्यू को मैप करने के लिए. इस प्रकार, प्रणाली 'येलो' को मैप करती है,
      'नारंगी', 'नीला', और 'नीला' से 3, 1, 2, 2 तक. इसके बाद, सिस्टम कन्वर्ट हो जाता है
      वे वैल्यू, वन-हॉट फ़ीचर वेक्टर पर सेट हो जाती हैं. उदाहरण के लिए, किसी सिस्टम में
      आठ संभावित रंगों के साथ, 3 का जवाब 0, 0, 0, 1, 0, 0, 0, 0 हो जाता है.
तीसरी इमेज. वेक्टर दिखाने के लिए, कैटगरी को मैप करने की शुरू से आखिर तक की प्रोसेस.

थोड़ा-बहुत

वह सुविधा जिसकी वैल्यू मुख्य रूप से शून्य या खाली होती है उसे स्पार्स सुविधा का इस्तेमाल करें. कई कैटगरी से जुड़ी सुविधाएं, जैसे कि car_color, कम जानकारी देती हैं. स्पार्स रिप्रज़ेंटेशन का मतलब है, 1.0 की रैंक को स्टोर करना एक स्पैर्स वेक्टर में. उदाहरण के लिए, "Blue" के लिए वन-हॉट वेक्टर यह है:

[0, 0, 1, 0, 0, 0, 0, 0] के बराबर है

1, दूसरी पोज़िशन पर है (गिनती 0 से शुरू होने पर), इसलिए पिछले वन-हॉट वेक्टर के लिए स्पैर्स रिप्रज़ेंटेशन यह है:

2

ध्यान दें कि स्पैर्स रिप्रज़ेंटेशन, आठ एलिमेंट वाला वन-हॉट वेक्टर. यह मॉडल आपको ट्रेन को वन-हॉट वेक्टर, न कि स्पार्स रिप्रज़ेंटेशन.

कैटगरी वाले डेटा में आउटलायर का डेटा

संख्या वाले डेटा की तरह, कैटगरी वाले डेटा में भी आउटलायर शामिल होते हैं. मान लें car_color में सिर्फ़ लोकप्रिय रंग ही नहीं, बल्कि कुछ ऐसे रंग भी हैं जिनका इस्तेमाल बहुत कम किया जाता है बाहरी रंग, जैसे कि "Mauve" या "Avocado". इन बाहरी रंगों में से हर एक को एक अलग कैटगरी देने के बजाय, उन्हें एक "कैच-ऑल" में ला सकता है out-of-vocabulary (दिखाई नहीं दे रहा). दूसरे शब्दों में, सभी बाहरी रंगों को एक आउटलायर बकेट. सिस्टम उस आउटलायर बकेट के लिए एक वेट सीखता है.

हाई-डाइमेंशन कैटगरी वाली सुविधाओं को कोड में बदलना

कुछ कैटगरी में आने वाली सुविधाओं में बहुत ज़्यादा डाइमेंशन होते हैं. जैसे जो नीचे दी गई टेबल में मौजूद हैं:

सुविधा का नाम कैटगरी की # सैंपल कैटगरी
words_in_english ~5,00,000 "खुश", "चलना"
US_postal_codes तकरीबन 42,000 "02114", "90301"
last_names_in_Germany करीब 8,50,000 "श्मिट", "श्नाइडर"

जब कैटगरी की संख्या ज़्यादा होती है, तो वन-हॉट एन्कोडिंग आम तौर पर गलत विकल्प होता है. एम्बेड की गई फ़ाइलों के बारे में, अलग से जानकारी दी गई है आम तौर पर, एम्बेड करने वाले मॉड्यूल एक और बेहतर विकल्प है. एम्बेड करने से डाइमेंशन, जो मॉडल को दो अहम तरीकों से फ़ायदा देते हैं:

  • मॉडल आम तौर पर ज़्यादा तेज़ी से ट्रेनिंग लेता है.
  • आम तौर पर, बनाए गए मॉडल में अनुमान लगाने में कम समय लगता है. इसका मतलब है कि मॉडल में इंतज़ार का समय कम है.

हैशिंग (इसे हैशिंग भी कहा जाता है ट्रिक) डाइमेंशन की संख्या कम करने का कम इस्तेमाल किया जाता है.