समर्थन भेक्टर मेशिनहरू (SVMs) वर्गीकरण र रिग्रेसन कार्यहरूका लागि प्रयोग गरिने शक्तिशाली पर्यवेक्षित सिकाइ एल्गोरिदम हो। SVM को प्राथमिक लक्ष्य भनेको इष्टतम हाइपरप्लेन फेला पार्नु हो जसले उच्च-आयामी ठाउँमा विभिन्न वर्गहरूको डेटा बिन्दुहरूलाई उत्तम रूपमा अलग गर्दछ। SVM मा सेट गरिएको सुविधाको वर्गीकरण निर्णय प्रकार्यसँग गहिरो रूपमा बाँधिएको छ, विशेष गरी यसको चिन्ह, जसले हाइपरप्लेनको कुन पक्षमा दिइएको डेटा बिन्दुमा पर्दछ भनेर निर्धारण गर्न महत्त्वपूर्ण भूमिका खेल्छ।
SVM मा निर्णय समारोह
SVM को लागि निर्णय प्रकार्य को रूपमा व्यक्त गर्न सकिन्छ:
जहाँ:
- हाइपरप्लेनको अभिमुखीकरण परिभाषित गर्ने वजन भेक्टर हो।
- वर्गीकृत डाटा बिन्दु को सुविधा भेक्टर छ।
- हाइपरप्लेन परिवर्तन गर्ने पूर्वाग्रह शब्द हो।
डेटा बिन्दु वर्गीकरण गर्न , निर्णय प्रकार्य को चिन्ह प्रयोग गरिन्छ:
यो चिन्हले हाइपरप्लेनको पक्ष निर्धारण गर्छ जसमा डाटा पोइन्ट रहेको छ।
साइन इन वर्गीकरण को भूमिका
निर्णय कार्यको चिन्ह () डेटा बिन्दुमा तोकिएको वर्ग लेबल सीधा निर्धारण गर्दछ
। यहाँ यसले कसरी कार्य गर्दछ:
1. सकारात्मक संकेत: यदि , निर्णय प्रकार्य को संकेत सकारात्मक छ। यसको मतलब डेटा बिन्दु हो
हाइपरप्लेनको छेउमा अवस्थित छ जहाँ सकारात्मक वर्ग अवस्थित छ। त्यसैले,
सकारात्मक वर्ग (सामान्यतया +1 को रूपमा चित्रित) को रूपमा वर्गीकृत गरिएको छ।
2. नकारात्मक चिन्ह: यदि , निर्णय प्रकार्य को चिन्ह नकारात्मक छ। यसले डेटा बिन्दुलाई संकेत गर्दछ
हाइपरप्लेनको छेउमा अवस्थित छ जहाँ नकारात्मक वर्ग अवस्थित छ। त्यसैले,
नकारात्मक वर्ग (सामान्यतया -1 को रूपमा दर्शाइएको) को रूपमा वर्गीकृत गरिएको छ।
3. शून्य: दुर्लभ अवस्थामा जहाँ , डेटा बिन्दु
हाइपरप्लेनमा ठीक छ। यो परिदृश्य सैद्धान्तिक रूपमा सम्भव छ तर वास्तविक-मूल्य डेटाको निरन्तर प्रकृतिको कारणले व्यावहारिक रूपमा दुर्लभ छ।
ज्यामितीय व्याख्या
निर्णय प्रकार्यको ज्यामितीय व्याख्या SVM ले डेटा बिन्दुहरूलाई कसरी वर्गीकरण गर्छ भनेर बुझ्नको लागि आवश्यक छ। हाइपरप्लेन द्वारा परिभाषित दुई वर्गहरू बीचको निर्णय सीमाको रूपमा काम गर्दछ। यस हाइपरप्लेनको अभिमुखीकरण र स्थिति वजन भेक्टर द्वारा निर्धारण गरिन्छ
र पूर्वाग्रह शब्द
.
1. मार्जिन: मार्जिन हाइपरप्लेन र प्रत्येक वर्गबाट नजिकको डेटा बिन्दुहरू बीचको दूरी हो। SVM ले हाइपरप्लेनले कक्षाहरू मात्र अलग गर्दैन तर निकटतम डेटा बिन्दुहरूबाट सबैभन्दा ठूलो सम्भावित दूरीको साथ यो सुनिश्चित गर्न यो मार्जिनलाई अधिकतम बनाउने लक्ष्य राखेको छ। यी निकटतम डेटा बिन्दुहरूलाई समर्थन भेक्टरहरू भनिन्छ।
2. समर्थन भेक्टरहरू: समर्थन भेक्टरहरू हाइपरप्लेनको सबैभन्दा नजिक रहेको डेटा बिन्दुहरू हुन्। तिनीहरू हाइपरप्लेनको स्थिति र अभिविन्यास परिभाषित गर्न महत्वपूर्ण छन्। यी समर्थन भेक्टरहरूको स्थितिमा कुनै पनि परिवर्तनले हाइपरप्लेनलाई परिवर्तन गर्नेछ।
उदाहरणका
एउटा साधारण उदाहरणलाई विचार गर्नुहोस् जहाँ हामीसँग दुई-आयामी सुविधा स्पेस छ जसमा दुई वर्गका डाटा पोइन्टहरू छन्। +1 द्वारा सकारात्मक वर्ग र -1 द्वारा नकारात्मक वर्गलाई बुझाउनुहोस्। मानौं वजन वेक्टर र पूर्वाग्रह शब्द
.
डाटा पोइन्टको लागि , हामी निम्नानुसार निर्णय प्रकार्य गणना गर्न सक्छौं:
देखि , निर्णय प्रकार्य को चिन्ह सकारात्मक छ, र यसैले, डाटा बिन्दु
सकारात्मक वर्ग (+1) को रूपमा वर्गीकृत गरिएको छ।
अर्को डेटा बिन्दुको लागि , हामी निर्णय प्रकार्य गणना गर्दछौं:
फेरि, , त्यसैले चिन्ह सकारात्मक छ, र
सकारात्मक वर्ग (+1) को रूपमा वर्गीकृत गरिएको छ।
अब, डेटा बिन्दु विचार गर्नुहोस् :
यस मामला मा, , त्यसैले चिन्ह नकारात्मक छ, र
नकारात्मक वर्ग (-1) को रूपमा वर्गीकृत गरिएको छ।
गणितीय सूत्रीकरण
SVM को गणितीय ढाँचाले इष्टतम फेला पार्नको लागि अनुकूलन समस्या समाधान गर्न समावेश गर्दछ। र
जसले तालिम डेटालाई सही रूपमा वर्गीकरण गर्दा मार्जिनलाई अधिकतम बनाउँछ। अनुकूलन समस्या निम्न रूपमा व्यक्त गर्न सकिन्छ:
जहाँ डेटा बिन्दुको वर्ग लेबल हो
, र बाधाले सुनिश्चित गर्दछ कि सबै डेटा बिन्दुहरू कम्तिमा १ को मार्जिनमा सही रूपमा वर्गीकृत छन्।
कर्नेल ट्रिक
धेरै व्यावहारिक अनुप्रयोगहरूमा, डाटा मूल विशेषता ठाउँमा रैखिक रूपमा छुट्याउन सकिने नहुन सक्छ। यसलाई सम्बोधन गर्न, SVM हरू कर्नेल चाल प्रयोग गरेर गैर-रेखीय वर्गीकरणमा विस्तार गर्न सकिन्छ। कर्नेल प्रकार्य स्पष्ट रूपमा डेटालाई उच्च-आयामी ठाउँमा नक्सा गर्दछ जहाँ एक रेखीय विभाजन सम्भव छ। सामान्य रूपमा प्रयोग हुने कर्नेल प्रकार्यहरूमा बहुपद कर्नेल, रेडियल आधार प्रकार्य (RBF) कर्नेल, र सिग्मोइड कर्नेल समावेश छ।
कर्नेल गरिएको SVM मा निर्णय प्रकार्य हुन्छ:
जहाँ अप्टिमाइजेसन समस्याको दोहोरो रूपबाट प्राप्त गरिएका Lagrange गुणकहरू हुन्।
पाइथन कार्यान्वयन
Python मा, `scikit-learn` पुस्तकालयले `SVC` वर्ग मार्फत SVM को सरल कार्यान्वयन प्रदान गर्दछ। डेटासेट वर्गीकरण गर्न कसरी `SVC` प्रयोग गर्ने भन्ने उदाहरण तल दिइएको छ:
python from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score # Load the dataset iris = datasets.load_iris() X = iris.data y = iris.target # Select only two classes for binary classification X = X[y != 2] y = y[y != 2] # Split the dataset into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Create an SVM classifier with a linear kernel clf = SVC(kernel='linear') # Train the classifier clf.fit(X_train, y_train) # Predict the class labels for the test set y_pred = clf.predict(X_test) # Calculate the accuracy of the classifier accuracy = accuracy_score(y_test, y_pred) print(f'Accuracy: {accuracy * 100:.2f}%')
यस उदाहरणमा, `SVC` वर्गलाई रेखीय कर्नेलसँग SVM वर्गीकरणकर्ता सिर्जना गर्न प्रयोग गरिन्छ। वर्गीकरणकर्तालाई प्रशिक्षण सेटमा प्रशिक्षित गरिन्छ, र परीक्षण सेटमा शुद्धताको मूल्याङ्कन गरिन्छ। SVM मा सेट गरिएको सुविधाको वर्गीकरण मौलिक रूपमा निर्णय प्रकार्यको चिन्हमा निर्भर हुन्छ। । चिन्हले हाइपरप्लेनको कुन छेउमा डाटा पोइन्ट रहेको छ भनेर निर्धारण गर्दछ, यसैले यसलाई सम्बन्धित वर्गमा तोक्न। निर्णय प्रकार्य, इष्टतम हाइपरप्लेन फेला पार्नको लागि अप्टिमाइजेसन प्रक्रिया, र गैर-रैखिक पृथकता ह्यान्डल गर्न कर्नेल प्रकार्यहरूको सम्भावित प्रयोग SVM का सबै महत्त्वपूर्ण घटकहरू हुन्। यी पक्षहरू बुझ्दा SVM हरू कसरी सञ्चालन हुन्छन् र विभिन्न मेसिन लर्निङ कार्यहरूमा तिनीहरूको प्रयोगको विस्तृत दृश्य प्रदान गर्दछ।
अन्य भर्खरका प्रश्न र उत्तरहरू सम्बन्धमा EITC/AI/MLP मेशिन शिक्षा पाइथनको साथ:
- रैखिक प्रतिगमनमा b प्यारामिटर (उत्तम फिट रेखाको y-अवरोधन) कसरी गणना गरिन्छ?
- SVM को निर्णय सीमा परिभाषित गर्न समर्थन भेक्टरहरूले के भूमिका खेल्छन्, र तिनीहरूलाई प्रशिक्षण प्रक्रियाको क्रममा कसरी पहिचान गरिन्छ?
- SVM अप्टिमाइजेसनको सन्दर्भमा, वजन भेक्टर `w` र पूर्वाग्रह `b` को महत्त्व के हो, र तिनीहरू कसरी निर्धारण हुन्छन्?
- SVM कार्यान्वयनमा `visualize` विधिको उद्देश्य के हो, र यसले मोडेलको कार्यसम्पादन बुझ्न कसरी मद्दत गर्छ?
- SVM कार्यान्वयनमा कसरी `भविष्यवाणी` विधिले नयाँ डेटा बिन्दुको वर्गीकरण निर्धारण गर्छ?
- मेसिन लर्निङको सन्दर्भमा सपोर्ट भेक्टर मेसिन (SVM) को प्राथमिक उद्देश्य के हो?
- पाइथनमा SVM वर्गीकरण लागू गर्न स्किट-लर्न जस्ता पुस्तकालयहरू कसरी प्रयोग गर्न सकिन्छ, र मुख्य कार्यहरू के समावेश छन्?
- SVM अप्टिमाइजेसनमा अवरोध (y_i (mathbf{x}_i cdot mathbf{w} + b) geq 1) को महत्त्व व्याख्या गर्नुहोस्।
- SVM अप्टिमाइजेसन समस्याको उद्देश्य के हो र यसलाई कसरी गणितीय रूपमा तयार गरिन्छ?
- सपोर्ट भेक्टर मेसिन (SVM) को सन्दर्भमा हाइपरप्लेन समीकरण (mathbf{x} cdot mathbf{w} + b = 0) को भूमिका के छ?
EITC/AI/MLP Machine Learning with Python मा थप प्रश्न र उत्तरहरू हेर्नुहोस्