모형 적합 - Support Vector Machine :: 예측 분석 - mindscale
Skip to content

모형 적합 - Support Vector Machine

Support Vector Machine

  • 집단 간에 가장 큰 폭(Maximum margin)을 만드는 결정 규칙을 찾는 방법
  • 전체 자료를 사용하는 것이 아닌 결정 규칙을 정하는데 중요한 일부 자료만 사용
  • 사용되는 일부 자료: support vector
  • Tuning parameter: C, kernel
  • C: 에러에 얼마나 많은 페널티를 줄까
  • kernel: 직선으로 자료가 나뉘지 않을 때 자료를 변형해 다른 차원으로 프로젝션시켜 선형 판별기를 만듦, SVM 성능을 좋게 만들수 있는 tool
    • Gaussian Kernel을 주로 씀

실습

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