선형 SVM 모델의 결정 경계 계산


19

선형 SVM의 지원 벡터가 주어지면 의사 결정 경계의 방정식을 어떻게 계산할 수 있습니까?


w = i에 대한 합 (ai ti xi). 곱셈기의 값을 찾으려면 lagrangian을 최소화해야합니다. 어떻게 지원 벡터를 얻었는지 궁금합니다. 동일한 프로세스는 또한 u의 가치를 제공해야합니다.
euphoria83

2
나는 아직 언급 할 수는 없지만 받아 들여진 대답에서 결정 라인과 마진이해서는 안된다고 생각합니다. abline (b / w [2],-w [1] / w [2]) abline ((b + 1) / w [2],-w [1] / w [2], lty = 2) abline ((b-1) / w [2],-w [1] / w [2], lty = 2) abline이 걸리기 때문에 절편과 경사로 각각 입력? wx-b = 0은 다음 을 의미합니다. w1.x1 + w2.x2 = b (x2는 "y" 이므로 ) abline (b / w [2], -w [1] / w [2]) 오래된 게시물이지만 물어볼 것이라고 생각했습니다.
Nepze Tyson

@Nepze Tyson 사이트에 오신 것을 환영합니다. 이것은 OP의 질문에 대한 답변이 아닙니다. 답변을 제공하려면 "답변"필드 만 사용하십시오. 궁금한 점이 있으면 [ASK QUESTION]페이지 상단의을 클릭하여 질문 하면 제대로 도와 드리겠습니다. 여기에 처음 오셨으므로 새로운 사용자를위한 정보가 포함 된 둘러보기 페이지 를 읽어보십시오 .
gung-복원 Monica Monica

@Nepze 당신의 지각적인 의견과 시간과 관심을 가져 주셔서 감사합니다. 나는 그것이 여기에 개선 된 답변으로 이어질 것으로 기대합니다. 우리 사이트에 당신을 환영하기 위해 gung에 가입하고 싶습니다.
whuber

답변:


29

통계 학습의 요소 Hastie 등.에서가, 지원 벡터 분류와의 SVM의 완전한 장 있습니다 (귀하의 경우를, 제 2 판에 418 페이지를 시작합니다). 또 다른 좋은 튜토리얼은 David Meyer의 Support Vector Machines in R 입니다.

귀하의 질문을 오해하지 않는 한 결정 경계 (또는 초평면)는 ( 및 절편 항으로 정의) 또는 @ebony가 말한 것처럼 정의됩니다. 서포트 벡터의 선형 조합. 그러면 마진은Hastie et al. 표기법.β = 1 β 0 2 /β 엑스β+β0=0β=1β02/β

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)

그리고 여기 있습니다 :

대체 텍스트


4
아름답고 정확하게 내가 찾던 것. 두 줄 : w <-colSums (coef (svp) [[1]] * x [unlist (alphaindex (svp)),]) b <-b (svp)는 신의 선물이었습니다. 감사합니다!
dshin

@chi : "SVM의 결정 경계를 계산하는 방법"에 대한 나의 대답을 살펴 보는 것이 흥미로울 수 있습니다. stats.stackexchange.com/questions/164935/…

4

계수는 이러한지지 벡터에 해당하는 라그랑주 승수에 의해 제공되는지지 벡터의 선형 조합입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.