류동균의 R 공부방입니다.
서포트 벡터 머신(Support Vector Machine) 본문
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)
'Machine Learning' 카테고리의 다른 글
K-평균 군집(K-means clustering) (0) | 2019.10.02 |
---|---|
K-최근접 이웃(K-Nearest Neighbor) (0) | 2019.09.25 |
뉴럴 네트워크(Neural Network) (0) | 2019.09.24 |
랜덤 포레스트(Random Forest) (0) | 2019.09.22 |
의사결정 나무(Decision Tree) (0) | 2019.09.20 |