모형 적합 - Support Vector Machine
Support Vector Machine
- 집단 간에 가장 큰 폭(Maximum margin)을 만드는 결정 규칙을 찾는 방법
- 전체 자료를 사용하는 것이 아닌 결정 규칙을 정하는데 중요한 일부 자료만 사용
- 사용되는 일부 자료: support vector
- Tuning parameter: C, kernel
- C: 에러에 얼마나 많은 페널티를 줄까
- kernel: 직선으로 자료가 나뉘지 않을 때 자료를 변형해 다른 차원으로 프로젝션시켜 선형 판별기를 만듦, SVM 성능을 좋게 만들수 있는 tool
실습
cross validation
controlObject <- trainControl(method = 'repeatedcv', # cross validation 반복 시행
repeats = 2, # 2번 시행
number = 5, # training 자료를 10조각 냄
classProbs = T)
sigmaRange 생성
library(kernlab)
sigmaRange <- sigest(as.matrix(Train_dat[,-1]))
- kernlab 패키지의 sigest함수를 사용하면 총 3개의 값을 계산해줌
- 설명에 따르면 어떤 값을 사용하더라도 만족스러운 결과를 얻는 것이 가능하다고 함
grid 생성
svmGrid <- expand.grid(.sigma = sigmaRange[1],
.C = 2^(seq(-5,5,1)))
모형 학습
svmModel <- train(Class ~ .,
data = Train_dat,
method = 'svmRadial',
tuneGrid = svmGrid,
preProc = c('center', 'scale'),
trControl = controlObject)
svmModel