पर्यवेक्षित शिक्षण एल्गोरिथ्म में कई लेबल


10

मेरे पास संबंधित विषयों के साथ पाठ का एक कोष है। उदाहरण के लिए "A rapper Tupac was shot in LA"और इसे लेबल किया गया था ["celebrity", "murder"]। तो मूल रूप से प्रत्येक वेक्टर वेक्टर में कई लेबल हो सकते हैं (समान राशि नहीं। पहली फीचर वेक्टर में 3 लेबल हो सकते हैं, दूसरा 1, तीसरा 5)।

यदि मेरे पास प्रत्येक पाठ के अनुरूप सिर्फ एक लेबल होगा, तो मैं एक Naive Bayes क्लासिफायरफ़ायर की कोशिश करूंगा , लेकिन मुझे वास्तव में नहीं पता है कि अगर मुझे कई लेबल मिल सकते हैं तो मुझे कैसे आगे बढ़ना चाहिए।

क्या Naive Bayes को मल्टी लेबल वर्गीकरण समस्या में बदलने का कोई तरीका है (यदि कोई बेहतर तरीका है - कृपया मुझे बताएं)?

PS मेरे पास मौजूद डेटा के बारे में कुछ बातें।

  • डेटासेट में लगभग 10.000 तत्व
  • पाठ लगभग 2-3 वाक्य है
  • पाठ प्रति अधिकतम 7 लेबल

@फोर्डप्रेरियन मल्टीओमियल नाइव बेयस एक वर्ग द्वारा दी गई कुछ सुविधा की संभावनाओं के लिए एक बहुराष्ट्रीय वितरण का उपयोग करता है: । ओपी TheGrimmScientist के रूप में वर्णित कई आउटपुट का प्रबंधन करने के लिए एक क्लासिफायरियर चाहता है। p(fi|c)
रॉबर्ट स्मिथ

जवाबों:


6

शुरुआत के लिए, Naive Bayes शायद यहां उपयुक्त नहीं है। यह इनपुट के बीच स्वतंत्रता को मानता है (इसलिए "Naive") और एक वाक्य में शब्द बहुत निर्भर हैं।

लेकिन, यह मानकर कि आप अपने प्रयोग को शुरू करने के लिए एनबी के साथ एक एल्गोरिथ्म के रूप में चलना चाहते हैं, मेरे विचार से दो विकल्प हैं:

अस्वाभाविक: बहुत सारे NB सहपाठियों

यह एक वैकल्पिक दृष्टिकोण होगा। इनपुट के अपने वेक्टर के रूप में मनाया सभी शब्दों का एक कोष बनाएँ। आउटपुट के अपने वेक्टर के रूप में देखे जाने वाले सभी टैग बंद करें। कई आउटपुट के साथ एक एनबी क्लासिफायर एक आउटपुट के साथ कई एनबी क्लासिफायर होने के बराबर है (इसलिए जो भी आपके द्वारा उपयोग किए जा रहे सॉफ़्टवेयर ढांचे में लागू करना आसान है)। प्रत्येक तत्व को एक प्रशिक्षण नमूने के रूप में समझें जहां एक दिया गया इनपुट (एक शब्द) एक है 1अगर वह शब्द मौजूद है और 0यदि वह शब्द नहीं है। आउटपुट के लिए समान बाइनरी स्कीम का उपयोग करें।

यह ब्रूट आपके डेटा में NB क्लासिफायर के अनुप्रयोग को मजबूर करता है, और आपको अभी भी अपने द्वारा वर्गीकृत किए गए क्लासिफायर के विशाल सेट को छोड़ देने का अर्थ ढूंढने के लिए छोड़ देता है।

अधिक सुंदर: अपने डेटा को संसाधित करें

यदि आप एक से अधिक एनबी क्लासिफायर के साथ भागना चाहते हैं तो यह वह तरीका है जिसकी मैं सिफारिश करूंगा।

यहां आपका लक्ष्य यह पता लगाना है कि टैग के प्रत्येक सेट को एक वर्ग में कैसे मैप किया जाए। मुझे यकीन है कि कुछ प्रकार की क्लस्टरिंग योजना या नेटवर्क विश्लेषण (शायद ["सेलेब्रिटी"] ["मर्डर" से जुड़ा हुआ है] एक सेगमेंट बन सकता है ["डेब्यूचेरी"] जो आपके टैग को एक एकल क्लस्टर में समझदारी से मैप करेगा। यदि आप टैग्स को नोड्स के रूप में मानते हैं और दो दिए गए टैग्स को लिंक के रूप में एक साथ मानते हैं, तो आप समुदाय का पता लगाने वाले एल्गोरिदम (जो कि जहां मैं शुरू करूंगा) को देखना चाहता हूं। लेकिन, यदि आप केवल कुछ काम करना चाहते हैं, तो टैग पर किसी प्रकार का हैक जो टैग की एक सूची को केवल टैग में परिवर्तित करता है जो आपके डेटासेट में सबसे अधिक देखा जाता है, पर्याप्त होगा।

यह विधि आपके डेटा को साफ करने के काम को सामने रखती है और इससे एनबी क्लासिफायर के आउटपुट को समझना आसान हो जाएगा।


आपके इनपुट के लिए धन्यवाद, अगर आपको अंदाजा है कि क्या बेहतर होगा तो NB, कृपया मुझे बताएं।
साल्वाडोर डाली

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

@ TheGrimmScientist पहले दृष्टिकोण का उपयोग करना उचित नहीं होगा? यदि आपके पास फीचर्स f1, f2, f3 और सदिश के वेक्टर हैं, तो आइए इस वेक्टर के लिए 3 लेबल, हम विभिन्‍न लेबल के साथ 3 वैक्टर (सभी समान फीचर्स f1, f2, f3) में विभाजन कर सकते हैं। फिर हमेशा की तरह Naive Bayes का उपयोग करना संभव है। मुझे यकीन नहीं है कि अगर आपके मन में ऐसा था।
रॉबर्ट स्मिथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.