SVM फीचर वेट की व्याख्या कैसे करता है?


42

मैं एक रैखिक एसवीएम फिटिंग द्वारा दिए गए चर भार की व्याख्या करने की कोशिश कर रहा हूं।

(मैं scikit- सीख का उपयोग कर रहा हूँ ):

from sklearn import svm

svm = svm.SVC(kernel='linear')

svm.fit(features, labels)
svm.coef_

मुझे प्रलेखन में कुछ भी नहीं मिला, जो विशेष रूप से बताता है कि इन भारों की गणना या व्याख्या कैसे की जाती है।

क्या वज़न के संकेत का कक्षा से कोई लेना-देना है?

जवाबों:


55

सामान्य कर्नेल के लिए एसवीएम वेट की व्याख्या करना कठिन है, हालांकि रैखिक एसवीएम के लिए वास्तव में एक उपयोगी व्याख्या है:

1) याद रखें कि रैखिक एसवीएम में, परिणाम एक हाइपरप्लेन है जो कक्षाओं को यथासंभव सर्वोत्तम बनाता है। वजन इस हाइपरप्लेन का प्रतिनिधित्व करता है, आपको एक वेक्टर के निर्देशांक देकर जो हाइपरप्लेन के लिए ऑर्थोगोनल है - ये svm.coef_ द्वारा दिए गए गुणांक हैं। आइए इस वेक्टर को डब्ल्यू कहते हैं।

2) हम इस वेक्टर के साथ क्या कर सकते हैं? यह दिशा हमें पूर्वानुमानित वर्ग देती है, इसलिए यदि आप वेक्टर के साथ किसी भी बिंदु का डॉट उत्पाद लेते हैं, तो आप यह बता सकते हैं कि यह किस तरफ है: यदि डॉट उत्पाद सकारात्मक है, तो यह सकारात्मक वर्ग का है, यदि यह ऋणात्मक है नकारात्मक वर्ग से संबंधित है।

3) अंत में, आप प्रत्येक विशेषता के महत्व के बारे में भी कुछ सीख सकते हैं। यह मेरी अपनी व्याख्या है इसलिए पहले खुद को समझाएं। मान लें कि svm को डेटा को अलग करने के लिए केवल एक सुविधा उपयोगी होगी, तो हाइपरप्लेन उस अक्ष पर ऑर्थोगोनल होगा। तो, आप कह सकते हैं कि अन्य के सापेक्ष गुणांक का पूर्ण आकार इस बात का संकेत देता है कि पृथक्करण के लिए यह सुविधा कितनी महत्वपूर्ण थी। उदाहरण के लिए यदि पृथक्करण के लिए केवल पहले समन्वय का उपयोग किया जाता है, तो डब्ल्यू फॉर्म का होगा (x, 0) जहां x कुछ गैर शून्य संख्या है और फिर | x |> 0 |


3
प्वाइंट 3 सुविधा (जीन) चयन के लिए एक रैखिक SVM के भार वेक्टर का उपयोग करते हुए RFE एल्गोरिथ्म का आधार है: गुयोन axon.cs.byu.edu/Dan/778/papers/Feature%20Severion/guyon2.pdf
B_Miner

1
@B_Miner धन्यवाद! मुझे चिंता थी कि जब से मैंने अपने बारे में सोचा कि यह गलत हो सकता है (मैं "शुद्ध" सीएस से नहीं हूँ) - लेकिन मुझे लगता है कि यह सही है।
बिटवाइज

1
यदि यह दोनों वर्गों को अलग कर रहा है, तो ऑर्थोगोनल वेक्टर की दिशा का क्या अर्थ है? क्या कक्षा की भविष्यवाणी की समग्र संभावना के लिए हाइपरप्लेन को अलग करने के योगदान के साथ कुछ करना है?
ऑस्टिन रिचर्डसन

यह बताने के लिए कि क्या वजन का संकेत वर्ग से संबंधित है (रैखिक मामले में) - यह सुविधाओं पर निर्भर करता है। उदाहरण के लिए, यदि भविष्य कहनेवाला विशेषताएं केवल nonnegative ( ) मान हैं, तो ऋणात्मक भार डेटा बिंदुओं के नकारात्मक वर्गीकरण में योगदान करते हैं। 0
Kdawg

@B_Miner, मुझे लगता है कि आप गुयोन द्वारा दूसरे के बजाय इस पेपर से लिंक करने के लिए थे ।
जोजफ

11

प्रलेखन बहुत पूरा हो गया है: multiclass मामले, एसवीसी जो libsvm पुस्तकालय पर आधारित है के लिए एक बनाम एक सेटिंग का उपयोग करता। एक रैखिक कर्नेल के मामले में, n_classes * (n_classes - 1) / 2प्रत्येक संभव वर्ग जोड़ी के लिए व्यक्तिगत रैखिक बाइनरी मॉडल फिट किए जाते हैं। इसलिए एक साथ समाप्‍त किए गए सभी प्राचल मापदंडों का समग्र आकार [n_classes * (n_classes - 1) / 2, n_features](+ विशेषता [n_classes * (n_classes - 1) / 2में अंतर intercept_) है।

बाइनरी रैखिक समस्या के लिए, coef_विशेषता से अलग हाइपरप्लेन की साजिश इस उदाहरण में की जाती है

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


1
स्केलेर के दस्तावेज़ीकरण में, coef_ विशेषता आकार का है [[n_class-1, n_features]। मेरा मानना ​​है कि यह एक गलती है।
नाओमी

6

मैं एक रैखिक एसवीएम फिटिंग द्वारा दिए गए चर भार की व्याख्या करने की कोशिश कर रहा हूं।

यह समझने का एक अच्छा तरीका है कि वजन की गणना कैसे की जाती है और रैखिक एसवीएम के मामले में उनकी व्याख्या कैसे की जाती है, गणना को बहुत सरल उदाहरण पर हाथ से करना है।

उदाहरण

निम्नलिखित डेटासेट पर विचार करें जो रैखिक रूप से अलग है

import numpy as np
X = np.array([[3,4],[1,4],[2,3],[6,-1],[7,-1],[5,-3]] )
y = np.array([-1,-1, -1, 1, 1 , 1 ])

एसवीएम सरल

निरीक्षण द्वारा एसवीएम समस्या का समाधान

निरीक्षण से हम देख सकते हैं कि सीमा रेखा जो सबसे बड़े "मार्जिन" के साथ बिंदुओं को अलग करती है वह रेखा है । चूंकि एसवीएम का वजन इस निर्णय रेखा (उच्च आयामों में हाइपरप्लेन) के अनुपात के समानुपाती होता है, जिसमें मापदंडों का पहला अनुमान होगाx2=x13wTx+b=0

w=[1,1]  b=3

एसवीएम सिद्धांत हमें बताता है कि मार्जिन की "चौड़ाई" द्वारा दी गई है । ऊपर अनुमान का उपयोग करते हुए हम एक प्राप्त करेगा चौड़ाई की । जो, निरीक्षण द्वारा गलत है। चौड़ाई2||w||22=242

याद रखें कि एक कारक द्वारा सीमा को स्केल करने से सीमा रेखा नहीं बदलती है, इसलिए हम समीकरण को सामान्य कर सकते हैंc

cx1cx23c=0
w=[c,c]  b=3c

हमें जो चौड़ाई मिलती है उसके लिए समीकरण में वापस प्लग करना

2||w||=4222c=42c=14

इसलिए पैरामीटर (या गुणांक) वास्तव में

w=[14,14]  b=34


(मैं scikit-learn का उपयोग कर रहा हूं)

तो मैं हूं, हमारे मैनुअल गणना की जांच करने के लिए यहां कुछ कोड हैं

from sklearn.svm import SVC
clf = SVC(C = 1e5, kernel = 'linear')
clf.fit(X, y) 
print('w = ',clf.coef_)
print('b = ',clf.intercept_)
print('Indices of support vectors = ', clf.support_)
print('Support vectors = ', clf.support_vectors_)
print('Number of support vectors for each class = ', clf.n_support_)
print('Coefficients of the support vector in the decision function = ', np.abs(clf.dual_coef_))
  • w = [[0.25 -0.25]] b = [-0.75]
  • समर्थन वैक्टर के संकेत = [२ ३]
  • सपोर्ट वैक्टर = [[2. 3. 3.] [6. -1]]
  • प्रत्येक वर्ग के लिए सपोर्ट वैक्टर की संख्या = [१ १]
  • निर्णय समारोह में समर्थन वेक्टर के गुणांक = [[०.०६२५ ०.०६२५]]

क्या वज़न के संकेत का कक्षा से कोई लेना-देना है?

वास्तव में नहीं, वज़न का संकेत सीमा के समतल के समीकरण से है।

 

स्रोत

https://ai6034.mit.edu/wiki/images/SVM_and_Boosting.pdf


5

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


3

गयोन और एलिससेफ (2003) का एक बेहतरीन पेपर। चर और सुविधा चयन के लिए एक परिचय। जर्नल ऑफ मशीन लर्निंग रिसर्च, 1157-1182 कहता है: "सभी संभावित प्रासंगिक चर खोजने या रैंकिंग करने की समस्या के साथ एक अच्छा भविष्यवक्ता विरोधाभासों का निर्माण करने के लिए उपयोगी सुविधाओं का सबसेट का निर्माण और चयन करना। सबसे प्रासंगिक चर का चयन करना आमतौर पर निर्माण के लिए उप-प्रकार है। भविष्यवक्ता, विशेष रूप से यदि चर अतिरेक हैं। इसके विपरीत, उपयोगी चर का एक सबसेट कई निरर्थक, लेकिन प्रासंगिक चर को बाहर कर सकता है। "

इसलिए मैं सामान्य रूप से रैखिक मॉडल के भार की व्याख्या करते समय सावधानी बरतने की सलाह देता हूं (लॉजिस्टिक प्रतिगमन, रैखिक प्रतिगमन और रैखिक कर्नेल एमआरपी सहित)। यदि इनपुट डेटा को सामान्य नहीं किया गया था, तो SVM वेट की भरपाई हो सकती है। एक विशिष्ट विशेषता के लिए एसवीएम का वजन अन्य विशेषताओं पर भी निर्भर करता है, खासकर अगर सुविधाओं को सहसंबद्ध किया जाता है। व्यक्तिगत विशेषताओं के महत्व को निर्धारित करने के लिए, सुविधा रैंकिंग तरीके एक बेहतर विकल्प हैं।

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