선형 SVM의 지원 벡터가 주어지면 의사 결정 경계의 방정식을 어떻게 계산할 수 있습니까?
[ASK QUESTION]
페이지 상단의을 클릭하여 질문 하면 제대로 도와 드리겠습니다. 여기에 처음 오셨으므로 새로운 사용자를위한 정보가 포함 된 둘러보기 페이지 를 읽어보십시오 .
선형 SVM의 지원 벡터가 주어지면 의사 결정 경계의 방정식을 어떻게 계산할 수 있습니까?
[ASK QUESTION]
페이지 상단의을 클릭하여 질문 하면 제대로 도와 드리겠습니다. 여기에 처음 오셨으므로 새로운 사용자를위한 정보가 포함 된 둘러보기 페이지 를 읽어보십시오 .
답변:
통계 학습의 요소 Hastie 등.에서가, 지원 벡터 분류와의 SVM의 완전한 장 있습니다 (귀하의 경우를, 제 2 판에 418 페이지를 시작합니다). 또 다른 좋은 튜토리얼은 David Meyer의 Support Vector Machines in R 입니다.
귀하의 질문을 오해하지 않는 한 결정 경계 (또는 초평면)는 ( 및 절편 항으로 정의) 또는 @ebony가 말한 것처럼 정의됩니다. 서포트 벡터의 선형 조합. 그러면 마진은Hastie et al. 표기법.” β ” = 1 β 0 2 / ” β ”
kernlab R 패키지 의 온라인 도움말 ksvm()
에서 kernlab – R의 커널 메소드를위한 S4 패키지를 참조하십시오 . 장난감 예제는 다음과 같습니다.
set.seed(101)
x <- rbind(matrix(rnorm(120),,2),matrix(rnorm(120,mean=3),,2))
y <- matrix(c(rep(1,60),rep(-1,60)))
svp <- ksvm(x,y,type="C-svc")
plot(svp,data=x)
명확성을 위해 훈련 및 테스트 샘플은 고려하지 않습니다. 결과가 아래에 나와 있으며, 여기에서 색상 음영이 적합 결정 값을 시각화하는 데 도움이됩니다. 0 주위의 값은 결정 경계에 있습니다.
호출 attributes(svp)
하면 액세스 할 수있는 속성 (예 :
alpha(svp) # support vectors whose indices may be
# found with alphaindex(svp)
b(svp) # (negative) intercept
따라서 결정 경계를 해당 마진과 함께 표시하려면 Jean-Philippe Vert가 얼마 전에 작성한 SVM에 대한 자습서에서 크게 영감을 얻은 다음과 같이 (축소 된 공간에서) 다음을 시도해 보겠습니다 .
plot(scale(x), col=y+2, pch=y+2, xlab="", ylab="")
w <- colSums(coef(svp)[[1]] * x[unlist(alphaindex(svp)),])
b <- b(svp)
abline(b/w[1],-w[2]/w[1])
abline((b+1)/w[1],-w[2]/w[1],lty=2)
abline((b-1)/w[1],-w[2]/w[1],lty=2)
그리고 여기 있습니다 :