მხარდაჭერის ვექტორული მანქანები (SVM) არის ძლიერი ზედამხედველობითი სწავლის ალგორითმი, რომელიც გამოიყენება კლასიფიკაციისა და რეგრესიის ამოცანებისთვის. SVM-ის პირველადი მიზანია იპოვოთ ოპტიმალური ჰიპერპლანი, რომელიც საუკეთესოდ გამოყოფს სხვადასხვა კლასის მონაცემთა წერტილებს მაღალგანზომილებიან სივრცეში. SVM-ში მახასიათებლის ნაკრების კლასიფიკაცია ღრმად არის დაკავშირებული გადაწყვეტილების ფუნქციასთან, განსაკუთრებით მის ნიშანთან, რომელიც მნიშვნელოვან როლს თამაშობს ჰიპერპლანის რომელ მხარეს არის მოცემული მონაცემთა წერტილი.
გადაწყვეტილების ფუნქცია SVM-ში
გადაწყვეტილების ფუნქცია SVM-ისთვის შეიძლება გამოიხატოს შემდეგნაირად:
სადაც:
- არის წონის ვექტორი, რომელიც განსაზღვრავს ჰიპერპლანის ორიენტაციას.
- არის კლასიფიცირებული მონაცემთა წერტილის მახასიათებლის ვექტორი.
- არის მიკერძოებული ტერმინი, რომელიც ცვლის ჰიპერპლანს.
მონაცემთა წერტილის კლასიფიკაციისთვის , გამოიყენება გადაწყვეტილების ფუნქციის ნიშანი:
ეს ნიშანი განსაზღვრავს ჰიპერპლანეტის მხარეს, რომელზეც მდებარეობს მონაცემთა წერტილი.
შესვლის როლი კლასიფიკაციაში
გადაწყვეტილების ფუნქციის ნიშანი () პირდაპირ განსაზღვრავს მონაცემთა წერტილისთვის მინიჭებულ კლასის ეტიკეტს
. როგორ მუშაობს ეს:
1. დადებითი ნიშანი: თუ , გადაწყვეტილების ფუნქციის ნიშანი დადებითია. ეს ნიშნავს, რომ მონაცემთა წერტილი
დევს ჰიპერპლანის იმ მხარეს, სადაც პოზიტიური კლასი მდებარეობს. ამიტომ,
კლასიფიცირებულია, როგორც დადებით კლასს მიეკუთვნება (ჩვეულებრივ აღნიშნავენ როგორც +1).
2. უარყოფითი ნიშანი: თუ , გადაწყვეტილების ფუნქციის ნიშანი უარყოფითია. ეს მიუთითებს, რომ მონაცემთა წერტილი
დევს ჰიპერთვითმფრინავის მხარეს, სადაც მდებარეობს უარყოფითი კლასი. აქედან გამომდინარე,
კლასიფიცირებულია, როგორც უარყოფით კლასს (ჩვეულებრივ აღნიშნავენ როგორც -1).
3. Zero: იმ იშვიათ შემთხვევაში, როცა , მონაცემთა წერტილი
დევს ზუსტად ჰიპერთვითმფრინავზე. ეს სცენარი თეორიულად შესაძლებელია, მაგრამ პრაქტიკულად იშვიათია რეალური ღირებულების მონაცემების უწყვეტი ბუნების გამო.
გეომეტრიული ინტერპრეტაცია
გადაწყვეტილების ფუნქციის გეომეტრიული ინტერპრეტაცია აუცილებელია იმის გასაგებად, თუ როგორ ახდენს SVM-ების კლასიფიკაცია მონაცემთა წერტილებს. მიერ განსაზღვრული ჰიპერთვითმფრინავი მოქმედებს როგორც გადაწყვეტილების საზღვარი ორ კლასს შორის. ამ ჰიპერპლანის ორიენტაცია და პოზიცია განისაზღვრება წონის ვექტორით
და მიკერძოების ტერმინი
.
1. Margin: ზღვარი არის მანძილი ჰიპერპლანტსა და მონაცემთა უახლოეს წერტილებს შორის თითოეული კლასიდან. SVM მიზნად ისახავს მაქსიმალურად გაზარდოს ეს ზღვარი, რათა უზრუნველყოს, რომ ჰიპერპლანი არა მხოლოდ გამოყოფს კლასებს, არამედ ამას აკეთებს ყველაზე დიდი შესაძლო მანძილით უახლოეს მონაცემთა წერტილებიდან. ეს უახლოესი მონაცემების წერტილები ცნობილია როგორც დამხმარე ვექტორები.
2. მხარდაჭერის ვექტორები: მხარდაჭერის ვექტორები არის მონაცემთა წერტილები, რომლებიც ყველაზე ახლოს მდებარეობს ჰიპერპლანტასთან. ისინი გადამწყვეტია ჰიპერპლანის პოზიციისა და ორიენტაციის განსაზღვრაში. ამ დამხმარე ვექტორების პოზიციის ნებისმიერი ცვლილება ცვლის ჰიპერპლანეს.
მაგალითი
განვიხილოთ მარტივი მაგალითი, სადაც გვაქვს ორგანზომილებიანი ფუნქციების სივრცე ორი კლასის მონაცემების წერტილებით. დადებითი კლასი ავღნიშნოთ +1-ით, ხოლო უარყოფითი კლასი -1-ით. დავუშვათ წონის ვექტორი და მიკერძოების ტერმინი
.
მონაცემთა წერტილისთვის , ჩვენ შეგვიძლია გამოვთვალოთ გადაწყვეტილების ფუნქცია შემდეგნაირად:
მას შემდეგ, რაც , გადაწყვეტილების ფუნქციის ნიშანი დადებითია და, შესაბამისად, მონაცემთა წერტილი
კლასიფიცირებულია, როგორც დადებით კლასს (+1).
სხვა მონაცემთა წერტილისთვის , ჩვენ ვიანგარიშებთ გადაწყვეტილების ფუნქციას, როგორც:
ისევ და ისევ, , ასე რომ ნიშანი დადებითია და
კლასიფიცირებულია, როგორც დადებით კლასს (+1).
ახლა განიხილეთ მონაცემთა წერტილი :
ამ შემთხვევაში, , ასე რომ ნიშანი უარყოფითია და
კლასიფიცირებულია, როგორც უარყოფით კლასს (-1).
მათემატიკური ფორმულირება
SVM-ის მათემატიკური ფორმულირება გულისხმობს ოპტიმიზაციის პრობლემის გადაჭრას ოპტიმალურის მოსაძებნად მდე
რაც მაქსიმუმს ანიჭებს ზღვარს ტრენინგის მონაცემების სწორად კლასიფიკაციისას. ოპტიმიზაციის პრობლემა შეიძლება გამოიხატოს შემდეგნაირად:
სადაც არის მონაცემთა წერტილის კლასის ეტიკეტი
და შეზღუდვა უზრუნველყოფს, რომ ყველა მონაცემთა წერტილი სწორად არის კლასიფიცირებული მინიმუმ 1-ის ზღვრით.
ბირთვის ხრიკი
ბევრ პრაქტიკულ პროგრამაში მონაცემები შეიძლება არ იყოს წრფივად განცალკევებული თავდაპირველი ფუნქციების სივრცეში. ამის გადასაჭრელად, SVM შეიძლება გაფართოვდეს არაწრფივ კლასიფიკაციამდე ბირთვის ხრიკის გამოყენებით. ბირთვის ფუნქცია ირიბად ასახავს მონაცემებს უფრო დიდ განზომილებიან სივრცეში, სადაც შესაძლებელია ხაზოვანი გამოყოფა. ჩვეულებრივ გამოყენებული ბირთვის ფუნქციები მოიცავს პოლინომიურ ბირთვს, რადიალური საფუძვლის ფუნქციის (RBF) ბირთვს და სიგმოიდურ ბირთვს.
გადაწყვეტილების ფუნქცია ბირთვულ SVM-ში ხდება:
სადაც არის ლაგრანგის მულტიპლიკატორები, რომლებიც მიღებულია ოპტიმიზაციის პრობლემის ორმაგი ფორმისგან.
პითონის დანერგვა
Python-ში `scikit-learn` ბიბლიოთეკა უზრუნველყოფს SVM-ის პირდაპირ განხორციელებას `SVC` კლასის მეშვეობით. ქვემოთ მოცემულია მაგალითი იმისა, თუ როგორ გამოვიყენოთ `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 მანქანური სწავლება Python- ით:
- როგორ გამოითვლება b პარამეტრი წრფივ რეგრესიაში (საუკეთესო მორგებული ხაზის y-კვეთა)?
- რა როლს ასრულებენ მხარდაჭერის ვექტორები SVM-ის გადაწყვეტილების საზღვრის განსაზღვრაში და როგორ ხდება მათი იდენტიფიცირება ტრენინგის პროცესში?
- SVM ოპტიმიზაციის კონტექსტში რა მნიშვნელობა აქვს წონის ვექტორს `w` და მიკერძოებას `b` და როგორ განისაზღვრება ისინი?
- რა არის "ვიზუალიზაციის" მეთოდის მიზანი SVM დანერგვაში და როგორ ეხმარება ის მოდელის მუშაობის გაგებაში?
- როგორ განსაზღვრავს "პროგნოზის" მეთოდი SVM დანერგვაში ახალი მონაცემთა წერტილის კლასიფიკაციას?
- რა არის მხარდაჭერის ვექტორული მანქანის (SVM) ძირითადი მიზანი მანქანური სწავლის კონტექსტში?
- როგორ შეიძლება ბიბლიოთეკების გამოყენება, როგორიცაა scikit-learn, Python-ში SVM კლასიფიკაციის განსახორციელებლად და რა ძირითადი ფუნქციებია ჩართული?
- ახსენით შეზღუდვის (y_i (mathbf{x}_i cdot mathbf{w} + b) geq 1) მნიშვნელობა SVM ოპტიმიზაციაში.
- რა არის SVM ოპტიმიზაციის პრობლემის მიზანი და როგორ არის ის მათემატიკურად ჩამოყალიბებული?
- რა როლი აქვს ჰიპერპლანის განტოლებას (mathbf{x} cdot mathbf{w} + b = 0) დამხმარე ვექტორული მანქანების (SVM) კონტექსტში?
იხილეთ მეტი კითხვა და პასუხი EITC/AI/MLP Machine Learning-ში Python-ით