लिनियर SVM को ट्यून करना

R में Support Vector Machines

Kailash Awati

Instructor

लिनियर SVM, डिफॉल्ट cost

library(e1071)
svm_model <- svm(y ~ ., 
                data = trainset, 
                type = "C-classification", 
                kernel = "linear", 
                scale = FALSE)
# Print model summary
svm_model
Call:
svm(formula = y ~ .,
    data = trainset,
    type = "C-classification", 
    kernel = "linear",
    scale = FALSE)

Parameters:
SVM-Type:  C-classification 
 SVM-Kernel:  linear 
       cost:  1 
      gamma:  0.5 
Number of Support Vectors:  55
R में Support Vector Machines

अध्याय 2.3 - रैखिक रूप से विभाज्य डेटासेट, डिफॉल्ट cost के साथ linear kernel, सपोर्ट वेक्टर्स, निर्णय व मार्जिन सीमाएँ

R में Support Vector Machines

लिनियर SVM जहाँ cost = 100

library(e1071)
svm_model <- svm(y ~ ., 
                data = trainset, 
                type = "C-classification", 
                kernel = "linear", 
                cost = 100,
                scale = FALSE)
# Print model summary
svm_model
Call:
svm(formula = y ~ .,
    data = trainset,
    type = "C-classification", 
    kernel = "linear",
    cost = 100,
    scale = FALSE)

Parameters:
SVM-Type:  C-classification 
 SVM-Kernel:  linear 
       cost:  100 
      gamma:  0.5 
Number of Support Vectors:  6
R में Support Vector Machines

अध्याय 2.3 - रैखिक रूप से विभाज्य डेटा, cost = 100 के साथ linear kernel, सपोर्ट वेक्टर्स, निर्णय व मार्जिन सीमाएँ

R में Support Vector Machines

निष्कर्ष

  • यदि निर्णय-सीमा रैखिक हो, तो मार्जिन घटाना उपयोगी हो सकता है
  • ...लेकिन वास्तविक जीवन में ऐसा कम ही होता है
R में Support Vector Machines

अध्याय 2.3 - गैर-रैखिक रूप से विभाज्य डेटासेट

R में Support Vector Machines

गैर-रैखिक डेटा, लिनियर SVM (cost = 100)

  • 80% डेटा वाले training set से cost=100 मॉडल बनाएँ
# Build model
library(e1071)
svm_model<- svm(y ~ ., 
                data = trainset, 
                type = "C-classification", 
                kernel = "linear", 
                cost = 100,
                scale = FALSE)
  • accuracy निकालें
# Train and test accuracy
pred_train <- predict(svm_model, trainset)
mean(pred_train == trainset$y)
0.8208333
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.85
  • 50 रैंडम train/test splits पर औसत test accuracy: 82.9%
R में Support Vector Machines

अध्याय 2.3 - गैर-रैखिक रूप से विभाज्य डेटासेट, cost=100 के साथ linear kernel, सपोर्ट वेक्टर्स, निर्णय व मार्जिन सीमाएँ

R में Support Vector Machines

गैर-रैखिक डेटा, लिनियर SVM (cost = 1)

  • cost = 1 सेट करके मॉडल फिर बनाएँ
# Trainset contains 80% of data
# Same train/test split as before.
# Build model
svm_model <- svm(y ~ ., 
                data = trainset, 
                type = "C-classification", 
                kernel = "linear", 
                cost = 1,
                scale = FALSE)
  • test accuracy निकालें
# Test accuracy
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.8666667
  • 50 रैंडम train/test splits पर औसत test accuracy: 83.7%
R में Support Vector Machines

अध्याय 2.3 - गैर-रैखिक रूप से विभाज्य डेटासेट, cost=1 के साथ linear kernel, सपोर्ट वेक्टर्स, निर्णय व मार्जिन सीमाएँ

R में Support Vector Machines

अभ्यास करते हैं!

R में Support Vector Machines

Preparing Video For Download...