Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

류동균의 R 공부방입니다.

서포트 벡터 머신(Support Vector Machine) 본문

Machine Learning

서포트 벡터 머신(Support Vector Machine)

R쟁이 2019. 9. 25. 22:24

Support Vector Machine에 대해 공부해보려고 한다.

 

SVM(Support Vector Machine)이란 데이터 상에 있는 각점들의 거리를 분석해 가장 먼 거리에

 

있는 점들을 기준으로 support vector를 형성하여 두개의 support vector 중간에 초평면을 만들

 

어 분류를 하는 방법이다. 쉽게말하면 두점 사이의 거리가 최대가 되는 지점을 찾는 것이다.

 

다음의 그림을 참고해보자.

 

 

그럼이제 SVM모델을 통한 iris데이터를 분류해보자.

 

## 필요한 패키지
library(kernlab) # SVM
library(caret) # Confusion Matrix

 

## training/test data set

# data set
df <- iris

# train/test sampling
training_sampling <- sort(sample(1:nrow(df), nrow(df) * 0.7 ))
test_sampling <- setdiff(1:nrow(df),training_sampling)

# traning_set, test_set
training_set <- df[training_sampling,]
test_set <- df[test_sampling,]

 

## SVM model 생성

# ksvm
svm_m <- ksvm(Species ~. , data = training_set)



## SVM model을 test_set에 적용

# predict
svm_p <- predict(svm_m, newdata = test_set)

 

##Confusion Matrix로 데이터 확인

# confusionMatrix
confusionMatrix(svm_p, test_set$Species)