방사형 분리 데이터에 대한 선형 SVM

R에서의 Support Vector Machine

Kailash Awati

Instructor

선형 SVM, cost = 1

  • 방사형 분리 데이터셋을 훈련/테스트로 분할합니다 (seed = 10)
# Build default cost linear SVM on training set

svm_model <- svm(y ~ ., data = trainset, type = "C-classification", kernel = "linear", cost = 1) svm_model
Number of Support Vectors:  126
# Calculate accuracy on test set

pred_test <- predict(svm_model, testset) mean(pred_test == testset$y)
0.6129032
plot(svm_model, trainset)
R에서의 Support Vector Machine

3장 2절 - 방사형 분리 데이터셋, 기본 비용 선형 커널, svm.plot으로 시각화

R에서의 Support Vector Machine

선형 SVM, cost = 100

svm_model <- svm(y ~ ., data = trainset, type = "C-classification", kernel = "linear", cost = 100)
svm_model
Number of Support Vectors:  136
# Accuracy
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.6129032
plot(svm_model, trainset)
R에서의 Support Vector Machine

3장 2절 - 방사형 분리 데이터셋, cost=100 선형 커널, svm.plot으로 시각화

R에서의 Support Vector Machine

정확도의 더 나은 추정치

  • 여러 독립적인 훈련/테스트 분할에서 평균 정확도를 계산합니다.
  • 결과의 표준편차를 확인하여 변동성을 파악합니다.
R에서의 Support Vector Machine

기본 비용 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
R에서의 Support Vector Machine

선형 SVM의 성능은 어떻습니까?

  • 동전 던지기보다 약간 나을 뿐입니다!
  • 경계에 대한 지식을 활용하면 훨씬 나은 결과를 얻을 수 있습니다.
R에서의 Support Vector Machine

연습할 시간입니다!

R에서의 Support Vector Machine

Preparing Video For Download...