रेखीय रूप से विभाज्य डेटासेट जनरेट करना

R में Support Vector Machines

Kailash Awati

Instructor

पाठ का अवलोकन

  • SVM के मुख्य सिद्धांत समझाने के लिए एक डेटासेट बनाएँ।
  • डेटासेट में दो वैरिएबल और एक रैखिक निर्णय सीमा है।
R में Support Vector Machines

`runif()` से द्वि-आयामी डेटासेट जनरेट करना

  • 200 पॉइंट्स वाला दो-वैरिएबल डेटासेट जनरेट करें
  • वैरिएबल x1 और x2 (0,1) में समान रूप से वितरित हैं।
# Preliminaries...
# Set required number of data points
n <- 200
# Set seed to ensure reproducibility
set.seed(42)

# Generate dataframe with two predictors x1 and x2 in (0,1) df <- data.frame(x1 = runif(n), x2 = runif(n))
R में Support Vector Machines

दो क्लास बनाना

  • सीधी रेखा निर्णय सीमा x1 = x2 से अलग दो क्लास बनाएँ
  • रेखा (0, 0) से गुजरती है और क्षैतिज से 45° बनाती है
  • क्लास वैरिएबल: रेखा से नीचे y = -1, ऊपर y = 1
# Classify points as -1 or +1
df$y <- factor(ifelse(df$x1 - df$x2 > 0, -1, 1),
               levels = c(-1, 1))
R में Support Vector Machines

ggplot से डेटासेट का विज़ुअलाइज़ेशन

  • 2-डी स्कैटर प्लॉट बनाएँ: x-धुरी पर x1, y-धुरी पर x2
  • रंग से क्लास अलग करें (रेखा के नीचे = लाल; ऊपर = नीला)
  • निर्णय सीमा x1 = x2: (0, 0) से गुजरती है, ढलान = 1
library(ggplot2)

# Build plot
p <- ggplot(data = df, aes(x = x1, y = x2, color = y)) + 
     geom_point() +
     scale_color_manual(values = c("-1" = "red", "1" = "blue")) +
     geom_abline(slope = 1, intercept = 0)

# Display it  
p
R में Support Vector Machines

अध्याय 1.2 - रेखीय रूप से विभाज्य डेटासेट

R में Support Vector Machines

मार्जिन जोड़ना

  • मार्जिन बनाने के लिए हमें सीमा के पास के पॉइंट्स हटाने होंगे
  • वे पॉइंट्स हटाएँ जिनमें x1 और x2 का अंतर निर्दिष्ट मान से कम है
# Create a margin of 0.05 in dataset
delta <- 0.05
# Retain only those points that lie outside the margin
df1 <- df[abs(df$x1 - df$x2) > delta, ]
# Check number of data points remaining
nrow(df1)

# Replot dataset with margin (code is exactly same as before) p <- ggplot(data = df1, aes(x = x1, y = x2, color = y)) + geom_point() + scale_color_manual(values = c("red", "blue")) + geom_abline(slope = 1, intercept = 0) # Display plot p
R में Support Vector Machines

अध्याय 1.2 - मार्जिन सहित रेखीय रूप से विभाज्य डेटासेट

R में Support Vector Machines

मार्जिन सीमाएँ प्लॉट करना

  • मार्जिन सीमाएँ:
    • निर्णय सीमा के समांतर (ढलान = 1)।
    • इसके दोनों ओर delta यूनिट दूर (delta = 0.05)।
p <- p + 
     geom_abline(slope = 1, intercept = delta, linetype = "dashed") +
     geom_abline(slope = 1, intercept = -delta, linetype = "dashed")

p
R में Support Vector Machines

अध्याय 1.2 - निर्णय और मार्जिन सीमाओं सहित रेखीय रूप से विभाज्य डेटासेट

R में Support Vector Machines

अभ्यास करने का समय!

R में Support Vector Machines

Preparing Video For Download...