टेनसफ़्लो में एक गर्म एन्कोडिंग क्या है?


11

मैं वर्तमान में टेंसरफ़्लो में एक कोर्स कर रहा हूं जिसमें उन्होंने tf.one_hot (इंडेक्स, डेप्थ) का इस्तेमाल किया। अब मुझे समझ नहीं आ रहा है कि ये सूचकांक उस बाइनरी अनुक्रम में कैसे बदलते हैं।

क्या कोई मुझे सटीक प्रक्रिया समझा सकता है ???

जवाबों:


14

मान लें कि आपके डेटासेट (जैसे रंग) में आपके पास एक श्रेणीगत विशेषता है। और आपके नमूने लाल, पीले या नीले रंग के हो सकते हैं। इस तर्क को एक एमएल एल्गोरिथ्म में पास करने के लिए, आपको पहले इसे एनकोड करना होगा ताकि स्ट्रिंग्स के बजाय आपके पास संख्याएं हों।

ऐसा काम करने का सबसे आसान तरीका है, जहां एक मानचित्रण बनाना है:

लाल -> 1
पीला -> 2
नीला -> 3

और प्रत्येक स्ट्रिंग को उसके मैप किए गए मान से बदलें।

हालांकि यह हमारे एमएल मॉडल में अवांछित दुष्प्रभाव पैदा कर सकता है क्योंकि संख्याओं से निपटने पर यह सोच सकता है कि नीला> पीला (क्योंकि 3> 2) या वह लाल + पीला = नीला (क्योंकि 1 + 2 = 3)। मॉडल में यह जानने का कोई तरीका नहीं है कि ये डेटा श्रेणीबद्ध थे और फिर पूर्णांक के रूप में मैप किए गए थे।

इस समस्या का समाधान एक हॉट एन्कोडिंग है जहाँ हम एन नई सुविधाएँ बनाते हैं , जहाँ एन मूल विशेषता में अद्वितीय मूल्यों की संख्या है। हमारे एग्जाम में एन 3 के बराबर होगा, क्योंकि हमारे पास 3 अनोखे रंग (लाल, पीला और नीला) हैं।

इन विशेषताओं में से प्रत्येक बाइनरी है और इन अद्वितीय मूल्यों में से एक के अनुरूप होगा । हमारे उदाहरण में पहला फीचर एक बाइनरी फीचर होगा जो हमें बताएगा कि क्या नमूना लाल है या नहीं, दूसरा पीले रंग के लिए और तीसरा नीले रंग के लिए समान होगा।

ऐसे परिवर्तन का एक उदाहरण नीचे दिया गया है:

ध्यान दें, क्योंकि यह दृष्टिकोण डेटासेट की गतिशीलता को बढ़ाता है, अगर हमारे पास एक विशेषता है जो कई अद्वितीय मान लेता है, तो हम एक अधिक विरल एन्कोडिंग का उपयोग करना चाह सकते हैं (जैसे कि मैंने जो ऊपर प्रस्तुत किया है)।


3

गहराई: एक स्केलर जो एक गर्म आयाम की गहराई को परिभाषित करता है।

सूचकांक: सूचकांकों का एक सेंसर।

यह उदाहरण टेंसोफ़्लो प्रलेखन में दिया गया है।
1. केवल निर्दिष्ट सूचकांक और गहराई (on_value का डिफ़ॉल्ट मान 1 और ऑफ़_वल्यू 0 है)

 indices = [0, 1, 2]
    depth = 3
    tf.one_hot(indices, depth)  # output: [3 x 3]
    # [[1., 0., 0.],
    #  [0., 1., 0.],
    #  [0., 0., 1.]]
  1. On_value और off_value निर्दिष्ट करना
सूचकांक = [0, 2, -1, 1]
गहराई = 3
tf.one_hot (संकेत, गहराई, on_value = 5.0, off_value = 0.0, अक्ष = -1)
## आउटपुट: [4 x 3]
    # [[5.0, 0.0, 0.0], # एक_हॉट (0)
    # 0.0, 0.0, 5.0], # एक_हॉट (2)
    # # 0.0, 0.0, 0.0], # one_hot (-1)
    # (0.0, 5.0, 0.0]] # एक_होटल (1)

आप GitHub पर कोड भी देख सकते हैं


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.