Лінійні SVM на радіально роздільних даних

Support Vector Machines в R

Kailash Awati

Instructor

Лінійна SVM, cost = 1

  • Розбийте радіально роздільний набір даних на тренувальний/тестовий (seed = 10)
# Побудуйте лінійну SVM з типовою вартістю на тренувальному наборі

svm_model <- svm(y ~ ., data = trainset, type = "C-classification", kernel = "linear", cost = 1) svm_model
Number of Support Vectors:  126
# Обчисліть точність на тестовому наборі

pred_test <- predict(svm_model, testset) mean(pred_test == testset$y)
0.6129032
plot(svm_model, trainset)
Support Vector Machines в R

Розділ 3.2 — радіально роздільний набір даних, лінійне ядро з типовою вартістю, графік з використанням svm.plot

Support Vector Machines в R

Лінійна SVM, cost = 100

svm_model <- svm(y ~ ., data = trainset, type = "C-classification", kernel = "linear", cost = 100)
svm_model
Number of Support Vectors:  136
# Точність
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.6129032
plot(svm_model, trainset)
Support Vector Machines в R

Розділ 3.2 — радіально роздільний набір даних, cost=100, лінійне ядро, графік з використанням svm.plot

Support Vector Machines в R

Краще оцінювання точності

  • Обчисліть середню точність за кількома незалежними поділами train/test.
  • Перевірте стандартне відхилення, щоб оцінити мінливість.
Support Vector Machines в R

Середня точність для SVM з типовою вартістю

accuracy <- rep(NA, 100)
set.seed(10)
for (i in 1:100) {
  sample_size <- floor(0.8 * nrow(df))
  train <- sample(seq_len(nrow(df)), size = sample_size)
  trainset <- df[train, ]
  testset <- df[-train, ]
  svm_model<- svm(y ~ ., data = trainset, type = "C-classification", cost = 1, kernel = "linear")
  pred_test <- predict(svm_model, testset)
  accuracy[i] <- mean(pred_test == testset$y)}
mean(accuracy)
sd(accuracy)
0.544
0.04273184
Support Vector Machines в R

Наскільки добре працює лінійна SVM?

  • Лише трохи краще за підкидання монети!
  • Знаючи форму межі, можна досягти значно кращих результатів.
Support Vector Machines в R

Давайте потренуємось!

Support Vector Machines в R

Preparing Video For Download...