다중 클래스 문제

R에서의 Support Vector Machine

Kailash Awati

Instructor

아이리스 데이터셋 소개

  • 5개 속성의 150개 측정값
    • 꽃잎 너비와 길이 - 수치형 (예측 변수)
    • 꽃받침 너비와 길이 - 수치형 (예측 변수)
    • 품종 - 범주형: setosa, virginica 또는 versicolor (목표 변수)
  • UCI ML 저장소에서 제공
R에서의 Support Vector Machine

아이리스 데이터셋 시각화

  • 꽃잎 길이 대 꽃잎 너비를 시각화합니다.
library(ggplot2)

# Plot petal length vs width for dataset, distinguish species by color
p <- ggplot(data = iris,
            aes(x = Petal.Width,
                y = Petal.Length,
                color = Species)) +
     geom_point()

# Display plot
p
R에서의 Support Vector Machine

2.4장 - 아이리스 데이터셋: 꽃잎 길이 대 너비, 품종별 색상 구분

R에서의 Support Vector Machine

SVM 알고리즘의 다중 클래스 처리 방법

  • SVM은 기본적으로 이진 분류기입니다.
  • 다음 투표 전략을 통해 다중 클래스 문제에 적용할 수 있습니다:
    • 데이터를 두 클래스씩 포함하는 부분 집합으로 분할합니다.
    • 각 부분 집합에 대해 이진 분류 문제를 풉니다.
    • 다수결 투표로 각 데이터 포인트에 클래스를 할당합니다.
  • 일대일(one-against-one) 분류 전략이라고 합니다.
R에서의 Support Vector Machine

다중 클래스 선형 SVM 구축

  • 아이리스 데이터셋에 선형 SVM 구축
    • 80/20 훈련/테스트 분할(시드 10), 기본 비용
library(e1071)

# Build model
svm_model <- svm(Species ~ ., 
                data = trainset, 
                type = "C-classification", 
                kernel = "linear")
  • 정확도 계산
pred_train <- predict(svm_model, trainset)
mean(pred_train == trainset$Species)
0.9756098
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$Species)
0.962963
R에서의 Support Vector Machine

연습할 시간입니다!

R에서의 Support Vector Machine

Preparing Video For Download...