2012-10-18 8 views
6

विज्ञान सीखने के लिए मशीन सीखने के लिए काफी उपयोगकर्ता के अनुकूल पायथन मॉड्यूल हैं।मैं विज्ञान-सीखने से एसवीएम के साथ गैर-पूर्णांक स्ट्रिंग लेबल का उपयोग कैसे करूं? पायथन

मैं प्राकृतिक भाषा प्रसंस्करण (एनएलपी) के लिए एक एसवीएम टैगर को प्रशिक्षित करने की कोशिश कर रहा हूं जहां मेरे लेबल और इनपुट डेटा शब्द और एनोटेशन हैं। जैसे भाग- का भाषण टैगिंग के बजाय इनपुट के रूप में tuples [[1,2], [2,0]] डबल/पूर्णांक डेटा का उपयोग कर, मेरे tuples की तरह दिखाई देगा इस [['word','NOUN'], ['young', 'adjective']]

किसी को भी मैं कैसे स्ट्रिंग tuples के साथ SVM उपयोग कर सकते हैं का एक उदाहरण दे सकते हैं? यहां दिए गए ट्यूटोरियल/दस्तावेज पूर्णांक/डबल इनपुट के लिए हैं। http://scikit-learn.org/stable/modules/svm.html

उत्तर

12

अधिकांश मशीन सीखने एल्गोरिथ्म प्रक्रिया इनपुट के नमूने है कि तैरता के वेक्टर हैं ऐसी है कि एक छोटी सी (अक्सर यूक्लिडियन) एक के बीच की दूरी नमूने की जोड़ी का अर्थ है कि 2 नमूने समान इस तरह से समस्या के लिए प्रासंगिक है।

एन्कोड करने के लिए फ्लोट सुविधाओं का एक अच्छा सेट खोजने के लिए मशीन लर्निंग प्रैक्टिशनर की ज़िम्मेदारी है। यह एन्कोडिंग डोमेन विशिष्ट है इसलिए कच्चे डेटा से उस प्रतिनिधित्व को बनाने का सामान्य तरीका नहीं है जो सभी एप्लिकेशन डोमेन (विभिन्न एनएलपी कार्यों, कंप्यूटर दृष्टि, लेनदेन लॉग विश्लेषण ...) में काम करेगा। मशीन लर्निंग मॉडलिंग काम का यह हिस्सा फीचर निष्कर्षण कहा जाता है। जब इसमें बहुत सारे मैन्युअल काम शामिल होते हैं, तो इसे अक्सर फीचर इंजीनियरिंग के रूप में जाना जाता है।

अब अपने विशिष्ट समस्या के लिए, (जैसे वर्णित निकाय का पता लगाने के रूप में टैगिंग दृश्य के लिए उदाहरण के लिए) एक वाक्य में ब्याज की एक शब्द के आसपास शब्दों की एक खिड़की की स्थिति टैग scikit सीखने की DictVectorizer feature extraction helper class का उपयोग करके उचित रूप से इनकोडिंग जा सकता है।

+0

+1। ध्यान दें कि पीओएस टैगिंग के लिए, पीओएस विंडो केवल एक दिशा में विस्तार कर सकती है। एक शब्द खिड़की भी अच्छी विशेषताएं दे सकती है (कम से कम, वे एनईआर और डब्ल्यूएसडी के लिए अच्छी तरह से काम करते हैं), साथ ही साथ विचाराधीन शब्द के निश्चित-लंबाई प्रत्यय भी दे सकते हैं। –

4

यह इतना विज्ञान या पायथन प्रश्न नहीं है, लेकिन एसवीएम के साथ एक सामान्य मुद्दा है।

SVMs में

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

कुछ स्पष्ट गुण कुछ स्वाभाविक रूप से/तर्कसंगत रूप से कुछ पैमाने पर मैप किए जाने के लिए उधार देते हैं (कुछ ढीला "मीट्रिक")। उदाहरण के लिए प्राथमिकता क्षेत्र के लिए एक (1, 2, 3, 5) मानचित्रण ('कोई भीड़', 'मानक वितरण', 'तत्काल' और 'सबसे तत्काल') के मूल्यों के साथ मैपिंग का अर्थ हो सकता है। एक और उदाहरण रंगों के साथ हो सकता है जिसे उनके लाल, हरे, नीले घटकों इत्यादि के लिए 3 आयामों में मैप किया जा सकता है।
अन्य विशेषताओं में अर्थपूर्ण नहीं है जो किसी भी अनुमानित तार्किक मानचित्रण को पैमाने पर अनुमति देता है; इन विशेषताओं के लिए विभिन्न मानों को तब SVM के एक (या संभवतः कई) आयाम (ओं) पर एक मनमाना संख्यात्मक मान असाइन किया जाना चाहिए। समझ में आता है कि अगर किसी एसवीएम में इन अनियंत्रित "गैर मीट्रिक" आयाम हैं, तो यह वस्तुओं को उचित रूप से वर्गीकृत करने में कम कुशल हो सकता है, क्योंकि एसवीएम के काम करने के लिए अंतर्निहित दूरी गणना और क्लस्टरिंग तर्क कम अर्थात् संबंधित हैं।

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

पीओएस टैगिंग के विशेष मामले में ... मुझे डर है कि मैं इस समय फंस गया हूं, जिस पर लेबल किए गए कॉर्पस का उपयोग करने के लिए और इन्हें संख्यात्मक मूल्यों पर कैसे मैप करना है। मुझे पता है कि SVMTool एसवीएम का उपयोग करके बहुत ही कुशल पीओएस-टैगर्स का उत्पादन कर सकता है, और कई विद्वानों के कागजात भी टैगर्स का वर्णन एसवीएम पर आधारित करते हैं। हालांकि मैं टैगिंग के लिए अन्य तरीकों से परिचित हूँ (HMMs या अधिकतम Entropy साथ जैसे।)

संबंधित मुद्दे