मिश्रित प्रकार की विशेषताओं के साथ डेटासेट को वर्गीकृत करने का सबसे अच्छा तरीका


13

मैं यह जानना चाहूंगा कि मिश्रित प्रकार की विशेषताओं से बना डेटा सेट को वर्गीकृत करने का सबसे अच्छा तरीका क्या है, उदाहरण के लिए, पाठ और संख्यात्मक। मुझे पता है कि मैं टेक्स्ट को बूलियन में बदल सकता हूं, लेकिन शब्दावली विविध है और डेटा भी विरल हो गया है। मैंने मेटा-लर्निंग तकनीकों के माध्यम से अलग-अलग प्रकार के गुणों को वर्गीकृत करने और परिणामों को संयोजित करने का भी प्रयास किया, लेकिन यह अच्छी तरह से काम नहीं कर पाया।

जवाबों:


11

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

यदि आप एक आयामी कमी तकनीक का उपयोग करते हैं, तो आप अपने फीचर वेक्टर के लिए थोड़ा अधिक मजबूत प्रारूप प्राप्त करते हैं (वे आमतौर पर मिश्रित डेटा प्रकारों के बजाय सीधे संख्यात्मक वैक्टर होते हैं), जो आपको विभिन्न तरीकों का लाभ उठाने दे सकते हैं। तुम भी हाथ इंजीनियरिंग सुविधाओं में देख सकते हैं। ठीक तरह से हाथ से इंजीनियर सुविधाओं के साथ Random Forestआप अधिकांश कार्यों पर कला की स्थिति के बहुत करीब पहुंच जाएंगे।


2
आयामीता में कमी के लिए एक और वोट। बस कुछ परिवर्धन: Principal Component Analysisया Non-Negative Matrix Factorizationचर की संख्या को कम करेगा, विरल डेटा को समृद्ध करेगा, और सभी चर को मात्रात्मक में बदल देगा। इसके अलावा, आयाम में कमी मॉडल की गुणवत्ता का मूल्यांकन, प्रश्न लेखक शाब्दिक चर की उपयोगिता का अनुमान लगा सकता है।
सोबच

@ हिन्दिको बढ़िया जवाब। क्या आप हमें एक पुस्तक या एक पेपर में एक संदर्भ दे सकते हैं, कि ट्री-आधारित एल्गोरिदम मिश्रित-प्रकार (श्रेणीबद्ध और मात्रात्मक डेटा) डेटा के साथ बेहतर प्रदर्शन करते हैं?
ZelelB

6

डेटा के बारे में अधिक जानकारी के बिना इस प्रश्न का उत्तर देना कठिन है। उस ने कहा, मैं निम्नलिखित सलाह की पेशकश करेगा:

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

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


2

आपके डेटा की प्रकृति के बारे में आपके द्वारा दी गई थोड़ी जानकारी के साथ, मैं आपको निम्नलिखित दृष्टिकोण का पालन करने की सलाह दूंगा:

  1. पाठ डेटा को श्रेणियों में परिवर्तित करें। श्रेणियां कितनी होनी चाहिए, इसके लिए आप विभिन्न विकल्प आज़मा सकते हैं, लेकिन प्रत्येक चर के लिए विशिष्ट श्रेणियों का होना आवश्यक है। एक उदाहरण के रूप में, मैं एक चर मानूँगा जो काम करने के लिए लोगों के बेहतर तरीके के बारे में एक सर्वेक्षण प्रश्नावली के एक पाठ क्षेत्र से आया था।

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

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

  2. अपने श्रेणीबद्ध चर (क्रमिक वाले नहीं) को डमी (बाइनरी) चर में बदलें। अधिकांश वर्गीकरण / सुविधा चयन एल्गोरिदम स्वचालित रूप से ऐसा करते हैं, लेकिन सुनिश्चित करें कि यह वही है जो आप चुनते हैं। मुझे एहसास है कि इस बिंदु पर डेटा की गतिशीलता काफी बड़ी हो जाएगी, लेकिन इसे अगले चरण में संभाला जाएगा।

  3. अपने डेटा पर एक सुविधा चयन / आयामीता घटाने की तकनीक लागू करें। आप यहां ऐसी तकनीकों की उपयोगी समीक्षा पा सकते हैं । यदि आप पायथन का उपयोग कर रहे हैं, तो स्केलेर टूल्स आपको बहुत सारे विकल्प देते हैं ( यहां अधिक विवरण देखें )। सुनिश्चित करें कि आप एक ऐसी तकनीक का उपयोग करते हैं जो मल्टीकोलिनरिटी भी मानता है। मैं प्रिंसिपल कंपोनेंट एनालिसिस या ट्री-बेस्ड एल्गोरिथम की कोशिश करूँगा।

  4. डेटा को वर्गीकृत करने के लिए, मैं डिसिजन ट्री क्लासिफायर ( स्केलेन के माध्यम से भी उपलब्ध ) के साथ जाऊंगा । यह सुविधाओं के लिए चयन चयन सेटिंग महत्व वेट भी करता है। आप अपने विकल्पों के आधार पर उत्पन्न पेड़ पर विवरण का स्तर निर्धारित कर सकते हैं (जैसे max_depth, min_samples_split) ओवरफिटिंग से बचने के लिए क्रॉस-मान्यता के आधार पर विस्तार के स्तर को समायोजित करना सुनिश्चित करें।

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