커널 트릭

R에서의 Support Vector Machine

Kailash Awati

Instructor

기본 아이디어

  • 문제를 선형 분리 가능하게 만드는 변환을 고안합니다.
  • 방사형 분리 데이터셋에 이를 적용하는 방법을 살펴봅니다.
R에서의 Support Vector Machine

결정 경계가 있는 방사형 분리 데이터셋

R에서의 Support Vector Machine

문제 변환

  • 경계의 방정식: $x_1 ^ 2 + x_2 ^ 2 = 0.49$
  • $x_1 ^ 2$을 새 변수 $X_1$으로, $x_2 ^ 2$을 $X_2$로 매핑
  • $X_1 - X_2$ 공간에서 경계 방정식은...
  • $X_1 + X_2 = 0.49$ (직선!!)
R에서의 Support Vector Machine

X1-X2 공간 플롯 - 코드

  • ggplot()으로 $X_1 - X_2$ 공간에 데이터셋을 시각화
  • 경계 방정식 $X_2 = -X_1 + 0.49$:
    • $slope = -1$
    • $yintercept = 0.49$
p <- ggplot(data = df4, aes(x = x1sq, y = x2sq, color = y)) + 
  geom_point() + 
  scale_color_manual(values = c("red", "blue")) +
  geom_abline(slope = -1, intercept = 0.49)

p
R에서의 Support Vector Machine

결정 경계가 있는 변환된 방사형 분리 데이터셋

R에서의 Support Vector Machine

다항 커널 - Part 1

  • 다항 커널: (gamma * (u.v) + coef0) ^ degree
    • degree: 다항식의 차수
    • gamma와 coef0: 튜닝 파라미터
    • u, v: 데이터셋의 벡터(데이터포인트)
  • 2차 다항 변환이 필요함을 추측할 수 있습니다
R에서의 Support Vector Machine

커널 함수

  • SVM의 수식은 특정 조건을 만족하는 변환을 요구합니다.
  • 이 조건을 만족하는 함수를 커널 함수라고 합니다
  • 커널 함수는 벡터 내적의 일반화입니다
  • 핵심 아이디어 - 데이터를 잘 분리하는 커널을 사용하세요!
R에서의 Support Vector Machine

방사형 분리 데이터셋 - 2차 커널

  • 훈련/테스트 80/20 분할
  • 방사형 분리 데이터셋에 2차 SVM 구축:
    • degree = 2 설정
    • cost, gamma, coef0는 기본값 사용 (1, 1/2, 0)
svm_model <- svm(y ~ ., data = trainset, type = "C-classification", kernel = "polynomial", degree = 2)
# Predictions
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.9354839
# Visualize model
plot(svm_model, trainset)
R에서의 Support Vector Machine

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

R에서의 Support Vector Machine

연습할 시간입니다!

R에서의 Support Vector Machine

Preparing Video For Download...