रैखिक एसवीएम के साथ निरंतर और द्विआधारी डेटा को मिलाकर?


15

इसलिए मैं एसवीएम के साथ खेल रहा हूं और मुझे आश्चर्य है कि क्या यह करना अच्छी बात है:

मेरे पास निरंतर सुविधाओं का एक सेट (0 से 1) है और श्रेणीबद्ध विशेषताओं का एक सेट है जिसे मैंने डमी चर में परिवर्तित किया है। इस विशेष मामले में, मैं एक डमी चर में माप की तारीख को एनकोड करता हूं:

वहाँ 3 अवधि है कि मैं से डेटा है और मैं उनके लिए 3 सुविधा नंबर आरक्षित हैं:

20: 21: 22:

इसलिए डेटा किस अवधि के आधार पर आता है, विभिन्न विशेषताओं को 1 असाइन किया जाएगा; दूसरों को 0 मिलेगा।

क्या SVM इसके साथ ठीक से काम करेगा या यह एक बुरी बात है?

मैं SVMLight और एक रैखिक कर्नेल का उपयोग करता हूं।


यह ठीक काम करता है।
मार्क क्लेसेन

आपने जो किया है वह काफी अच्छा है। मैं यहाँ एक से थोड़ा विस्तृत जवाब दे दिया है - quora.com/Machine-Learning/...
TenaliRaman

@TenaliRaman कृपया उन साइटों के लिंक पोस्ट न करें जिन्हें वास्तव में कुछ भी पढ़ने में सक्षम होने से पहले लॉगिन करने की आवश्यकता होती है।
मार्क क्लेसेन

@MarcClaesen मैंने नीचे दिए गए उत्तर को दोहराया है।
तेनालीरमन

जवाबों:


8

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


1
और सबसे अच्छा सामान्यीकरण तकनीक क्या होगी?
शालोमी श्वार्ट्ज

23

से मेरा उत्तर प्रतिकृति कर http://www.quora.com/Machine-Learning/What-are-good-ways-to-handle-discrete-and-continuous-inputs-together/answer/Arun-Iyer-1

  • Rescale ने निरंतर सुविधाओं को बांधा: सभी निरंतर इनपुट जो बंधे हुए हैं, उन्हें से पुनर्विक्रय करें[1,1]x=2xmaxminmaxmin
  • μσx=xμσ
  • द्विभाजक श्रेणीबद्ध / असतत विशेषताएं: सभी श्रेणीबद्ध विशेषताओं के लिए, उन्हें कई बूलियन सुविधाओं के रूप में प्रस्तुत करें। उदाहरण के लिए, विवाह_स्टैटस नामक एक सुविधा होने के बजाय, 3 बूलियन विशेषताएं हैं - शादी_स्टैटस_सिंघल, विवाहित_स्टैटस_मैरिड, विवाहित_स्टैटस_डिवोरेटेड और उचित रूप से इन सुविधाओं को 1 या -1 पर सेट करें। जैसा कि आप देख सकते हैं, प्रत्येक श्रेणीगत सुविधा के लिए, आप k द्विआधारी सुविधा जोड़ रहे हैं जहाँ k उन मानों की संख्या है जो श्रेणीगत सुविधा लेता है।

Rn

Rn


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

1
यह एक उत्कृष्ट उत्तर है, मैंने @displayname टिप्पणी में लिंक पढ़ा और यह एक उपयोगी तुलना है। लेख से, ऐसा प्रतीत होता है कि बाइनरी एन्कोडिंग सबसे अच्छा है, (इस उत्तर में वर्णित एक गर्म नहीं) और साथ ही काफी सरल है) लिंक से "बाइनरी: पहले श्रेणियों को क्रमिक रूप से एन्कोड किया जाता है, फिर उन पूर्णांकों को बाइनरी में बदल दिया जाता है। कोड, फिर उस बाइनरी स्ट्रिंग के अंकों को अलग-अलग कॉलम में विभाजित किया जाता है। यह डेटा को कम आयामों में एन्कोड करता है जो एक-गर्म, लेकिन कुछ दूरी के विरूपण के साथ। "
आश्रयदीपिका

@Displayname द्वारा दिया गया लेख एक अच्छा लेख है, लेकिन अंकित मूल्य पर नहीं लिया जाना चाहिए। याद रखने वाली पहली बात यह है कि लगभग सभी एमएल विधियां समानता या दूरी माप के साथ काम करती हैं। एन्कोडिंग विधि का चुनाव सीधे प्रभावित करता है कि दो बिंदुओं के बीच की दूरी या समानता को कैसे मापा जाता है। एक 1 हॉट एन्कोडिंग कहती है कि एक श्रेणी का एक ऑब्जेक्ट केवल स्वयं या समकक्ष के समान है, यह सभी श्रेणियों को एक दूसरे से समान दूरी पर रखता है। हालांकि, ऐसे मामले हैं जहां कुछ श्रेणियां दूसरों की तुलना में करीब हैं। किस मामले में, एक अलग एन्कोडिंग मदद कर सकता है।
तेनालीरामन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.