2017-05-08 8 views
0

여기에 두 가지 수치는 물론 그와 관련된 몇 가지 질문을 게시합니다. 문제 해결에 도움을 줄 수 있습니까? enter image description herelibsvm을 사용하여 SVM 질문을 이해하십시오.

이 지원 벡터의 소수에 의해 반사되어 쉽게 분리 집합이다 :

1. Training a simple linear SVM: 
% svm-train -t 0 -c 100 data0 data0.model 
% python drawBoundary.py data0 
where: 
-t 0 -- use a linear kernel 
-c 100 -- set "C" = 100, which means "overfit a lot" 

그러면 여기서 얻어진 플롯 온다. 플롯에서 SV는 크게 그려지고 (마진에 있으며 결정 경계에서 한 단위 떨어져있는 점선, 실선).

는 여기에 첫 번째 질문에 온다 :

Q1: You should have found that it takes 3 support vectors. Could you have fewer (eg., 2) support vectors here? And why? 

내 대답은 NO입니다, (3) 가장 작은 수입니다. 그러나 그것은 내 직관에 불과합니다. 나는 이유를 모른다. 누군가 나에게 그 이유를 설명 할 수 있을까요? 여기 그런 enter image description here

두 번째 질문입니다 : 여기

2. 
% svm-train -t 2 -c 100 -g 100 data0 data0.model 
% python drawBoundary.py data0 
where: 
-t 2 means RBF and -g100 means gamma=100 
A gamma of 100 means that you have to be really close to a point to have a kernel value that's non-zero. 

은 결과 플롯이다

Q2 : 왜 당신이이 작은 모양을받을 수 있나요은? 감마를 얼마나 높게 설정해야 각 예의 작은 결정 경계를 얻을 수 있습니까 (예 : 각 결정 경계가 정확히 한 가지 예를 둘러 쌉니까?).

이 질문에 대해서는 완전히 분실했습니다.

답변

0

첫 번째 질문은 선을 그릴 때 같은면에 두 점이 필요하고 두 번째 선 (첫 번째 선과 평행 함)을 그릴 플롯을 제공 할 다른면에 한 점이 있어야하기 때문에 첫 번째 질문은 3 점이어야합니다. 이 3 점은 최대 여백을 갖도록 선택됩니다 (즉, 평행선이 최대 거리/거리를 갖도록). 3 점을 사용하지 않으면 두 평행선 사이의 거리를 늘릴 수있는 방법이 항상 있으므로 우리가 찾고있는 해결책이 아닙니다.

두 번째 질문에 대해서는 몇 가지 감마 값을 사용해보아야 할 것으로 생각됩니다. 감마는 대개 10의 거듭 제곱으로 채워집니다 (적절한 영어가 맞는지 확인하지 못하는 경우). 예 : {1 10 100} = {10^0 10^1 10^2}. 그리고 우리는 우리의 데이터에 맞게 교차 검증을 선택합니다. 그렇게 함으로 우리는 과부하가되지 않는 효율적인 SVM을 가질 수 있습니다.

희망이 도움이됩니다.

+0

고맙습니다. 하지만 질문 2에 대해, 왜이 작은 얼룩을 얻습니까? 그것들이 마진 라인이라는 것을 의미합니까? 나는 꽤 혼란 스럽다. – JennyShen