선형 SVM 튜닝

R에서의 Support Vector Machine

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 Machine

2장 2.3 - 선형 분리 가능 데이터셋, 기본 cost 선형 커널(서포트 벡터, 결정 경계 및 마진 경계 포함)

R에서의 Support Vector Machine

cost = 100인 선형 SVM

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 Machine

2장 2.3 - 선형 분리 가능 데이터, cost=100 선형 커널(서포트 벡터, 결정 경계 및 마진 경계 포함)

R에서의 Support Vector Machine

시사점

  • 결정 경계가 선형임을 알고 있다면 마진을 줄이는 것이 유용할 수 있습니다
  • ...하지만 실제로는 드문 경우입니다
R에서의 Support Vector Machine

2장 2.3 - 비선형 분리 가능 데이터셋

R에서의 Support Vector Machine

비선형 데이터셋, 선형 SVM (cost = 100)

  • 데이터의 80%로 구성된 훈련 세트로 cost=100 모델 구축
# Build model
library(e1071)
svm_model<- svm(y ~ ., 
                data = trainset, 
                type = "C-classification", 
                kernel = "linear", 
                cost = 100,
                scale = FALSE)
  • 정확도 계산
# 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회 무작위 훈련/테스트 분할의 평균 테스트 정확도: 82.9%
R에서의 Support Vector Machine

2장 2.3 - 비선형 분리 가능 데이터셋, cost=100 선형 커널(서포트 벡터, 결정 경계 및 마진 경계 포함)

R에서의 Support Vector Machine

비선형 데이터셋, 선형 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
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.8666667
  • 50회 무작위 훈련/테스트 분할의 평균 테스트 정확도: 83.7%
R에서의 Support Vector Machine

2장 2.3 - 비선형 분리 가능 데이터셋, cost=1 선형 커널(서포트 벡터, 결정 경계 및 마진 경계 포함)

R에서의 Support Vector Machine

연습할 시간입니다!

R에서의 Support Vector Machine

Preparing Video For Download...