क्या आप एसवीसी और रैखिक-एसवीसी के बीच अंतर की व्याख्या कर सकते हैं?


19

मैंने हाल ही में साथ काम करना सीखना शुरू कर दिया है sklearnऔर अभी-अभी इस अजीब परिणाम के साथ आया हूं।

मैंने विभिन्न मॉडलों और अनुमान विधियों की कोशिश करने के लिए digitsउपलब्ध डेटासेट का उपयोग किया sklearn

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

मुझे नहीं पता था कि परिणाम पर क्या प्रभाव पड़ सकता है, इसलिए मैंने दोनों की कोशिश की। मैंने मोंटे कार्लो-शैली का अनुमान लगाया, जहां मैंने दोनों मॉडल को 500 बार चलाया, हर बार नमूना को 60% प्रशिक्षण और 40% परीक्षण में बेतरतीब ढंग से विभाजित किया और परीक्षण सेट पर भविष्यवाणी की त्रुटि की गणना की।

नियमित SVC अनुमानक ने त्रुटियों के निम्नलिखित हिस्टोग्राम का उत्पादन किया: SVC त्रुटि दर जबकि रैखिक SVC अनुमानक ने निम्नलिखित हिस्टोग्राम का उत्पादन किया: रैखिक SVC त्रुटि दर

इस तरह के एक अंतर के लिए क्या हो सकता है? अधिकांश समय रैखिक मॉडल में इतनी अधिक सटीकता क्यों होती है?

और, संबंधित, परिणामों में स्टार्क ध्रुवीकरण का क्या कारण हो सकता है? या तो 1 के करीब सटीकता या 0 के करीब सटीकता, बीच में कुछ भी नहीं।

तुलना के लिए, एक निर्णय ट्री वर्गीकरण ने लगभग .85 की सटीकता के साथ अधिक सामान्य रूप से वितरित त्रुटि दर का उत्पादन किया।


मुझे लगता है कि स्कोर-लर्न डॉक्यूमेंटेशन के अंतर को उजागर नहीं करता है? क्या आपने जांच की?
रोहित 15

1. आपने एसवीसी में किस कर्नेल का उपयोग किया? डिफ़ॉल्ट सेटिंग्स = "आरबीएफ"? 2. एक-खिलाफ-एक और एक-के खिलाफ सभी अलग-अलग दृष्टिकोण हैं
kpb

प्रलेखन विषय पर थोड़े विरल / अस्पष्ट है। इसमें एक-के-एक और एक-के-बाकी के बीच के अंतर का उल्लेख किया गया है, और यह है कि रैखिक SVS हैSimilar to SVC with parameter kernel=’linear’, but implemented in terms of liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should scale better (to large numbers of samples).
metjush

नियमित SVC के लिए, मैंने डिफ़ॉल्ट कर्नेल का उपयोग किया। मुझे पता है कि 1v1 और 1vR अलग-अलग दृष्टिकोण हैं, लेकिन मुझे लगता है कि मैं वही जानना चाहता हूं - वे ऐसे अलग-अलग परिणाम क्यों देते हैं? क्या यह कर्नेल पसंद है या कई श्रेणी वर्गीकरण के लिए अलग-अलग दृष्टिकोण है?
मेटजश

जवाबों:


23

डिफ़ॉल्ट मूल्यों के साथ एक नियमित एसवीएम एसवीएम कर्नेल के रूप में एक रेडियल आधार फ़ंक्शन का उपयोग करता है। यह मूल रूप से गाऊसी कर्नेल उर्फ ​​बेल-वक्र है। मतलब यह है कि विभिन्न वर्गों के बीच किसी भी व्यक्ति की भूमि गौसियन फ़ंक्शन के साथ नहीं बनाई गई है। रैखिक-एसवीएम आधार फ़ंक्शन के लिए एक रैखिक कर्नेल का उपयोग करता है, इसलिए आप इसे ^ आकार के फ़ंक्शन के रूप में सोच सकते हैं। यह बहुत कम ट्यून करने योग्य है और मूल रूप से सिर्फ एक रैखिक प्रक्षेप है।

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

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

डार्ट्स पूर्वाग्रह-विचरण छवि

पहले विचरण का आकलन करने देता है -

अब अपने भूखंडों पर एक नज़र डालें: यहाँ छवि विवरण दर्ज करें

Nonlinear आधार फ़ंक्शन में उच्च विचरण होता है। देखें कि यह रैखिक कर्नेल की तुलना में कैसे शोर है! रैखिक कर्नेल में कम विचरण होता है। देखें कि यह कैसे कम शोर है!

अब पूर्वाग्रह का आकलन करें -

कौन सा कर्नेल अधिक सटीक है? हम आपके द्वारा प्रदान की गई त्रुटियों को जोड़ सकते हैं। नॉनलाइन कर्नेल में ~ 550 + 325 = ~ 875 की कुल त्रुटि है। रैखिक कर्नेल में ~ 690 + ~ 50 = ~ 740 की त्रुटि है। तो रैखिक कर्नेल बेहतर समग्र करने के लिए लगता है, लेकिन वे समग्र रूप से बहुत करीब हैं। यह चीजें हैं मुश्किल हो जाओ!

यह सब एक साथ डालें

देखें कि रैखिक कर्नेल ने 1 पर खराब काम कैसे किया और 0 पर वास्तव में बहुत अच्छा काम किया। यह बहुत असंतुलित है। जहां नॉनलाइन कर्नेल अधिक संतुलित है। यह इस तरह का लगता है जैसे कि मधुर स्थान एक संतुलित मॉडल बनाने के लिए हो सकता है जिसमें इस तरह का उच्च विचरण न हो। हम उच्च विचरण के लिए कैसे नियंत्रण रखते हैं? बिंगो - नियमितीकरण। हम नॉनलाइन मॉडल में नियमितीकरण जोड़ सकते हैं और हम शायद बहुत बेहतर परिणाम देखेंगे। यह एसवीएम सीखने के लिए scikit में C पैरामीटर है, जिसे आप डिफ़ॉल्ट से बढ़ाना चाहेंगे। हम गामा पैरामीटर के साथ भी खेल सकते हैं। गामा गॉसियन की चौड़ाई को नियंत्रित करता है। शायद यह बढ़ाने की कोशिश करें कि कम शोर परिणाम प्राप्त करने के लिए थोड़ा कक्षाएं जैसे वर्गों के बीच एक बड़ा नो-मैन की भूमि।

उम्मीद है की यह मदद करेगा!


C पैरामीटर को डिफ़ॉल्ट से नहीं घटाया जाना चाहिए ।
हम्दी

4

यदि आपने एसवीसी (), रेडियल बेसिस फंक्शन (आरबीएफ) कर्नेल में डिफ़ॉल्ट कर्नेल का उपयोग किया है , तो आपने संभवतः एक अधिक नॉनलाइन निर्णय सीमा सीखी है। अंकों के डेटासेट के मामले में , यह इस कार्य पर एक रेखीय निर्णय सीमा को बहुत कम कर देगा (3.1 'आधार रेखा रैखिक वर्गीकरण' देखें)

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