2014-01-23 15 views
0

2 카테고리 분류를 처리하기 위해 VL-Feat 및 LIBLINEAR를 사용합니다. 트레이닝 세트의 # (-)/# (+)는 35.01이고 각 특징 벡터의 차원은 3.6e5입니다. 약 15000 가지 예가 있습니다.SVM의 이상한 현상 : 음수의 예제가 더 높게

양의 예제의 가중치를 35.01로 설정하고 음수의 예제를 1로 기본값으로 설정했습니다. 하지만 내가 얻는 것은 테스트 데이터 세트의 성능이 극도로 떨어지는 것입니다.

이유를 알아 내기 위해 필자는 학습 예제를 입력으로 설정했습니다. 내가 본 것은 부정적인 예는 긍정적 인 것보다 약간 높은 결정 값을 얻는 것입니다. 정말 이상하네요, 그렇죠? 예제를 잘못 표시하지 않았는지 확인하기 위해 입력을 검사했습니다. 히스토그램 벡터를 정규화했습니다.

아무도이 상황을 전에 만났습니까?

다음은 훈련 된 모델의 매개 변수입니다. 바이어스, 정규화 및 이중성 간격과 같은 매개 변수가 너무 작아서 정확도가 떨어질 수 있기 때문에 이상하게 느껴질 수 있습니다. 발생 될 수

model.info = 
      solver: 'sdca' 
      lambda: 0.0100 
    biasMultiplier: 1 
       bias: -1.6573e-14 
     objective: 1.9439 
     regularizer: 6.1651e-04 
       loss: 1.9432 
    dualObjective: 1.9439 
      dualLoss: 1.9445 
     dualityGap: -2.6645e-15 
     iteration: 43868 
      epoch: 2 
     elapsedTime: 228.9374 

답변

0

한가지 LIBSVM 포지티브 클래스 및 음극 클래스 데이터 세트의 첫 번째 예없는 것과 같은 데이터 세트의 첫 번째 예를 소요한다는 것이다. 따라서 긍정적 인 것보다 35 배 더 많은 네거티브가 있기 때문에 첫 번째 예가 부정적이며 수업이 거꾸로 된 것일 수 있습니다. 이것을 확인하는 방법? 훈련 세트의 첫 번째 데이터 포인트가 긍정적 인 클래스인지 확인하십시오.

내가 LIBLINEAR의 FAQ를 확인하고 그것뿐만 아니라 LIBLINEAR에서 일어나는 것 한 (나는 LIBLINEAR와 같은 익숙하지 않은거야) http://www.csie.ntu.edu.tw/~cjlin/liblinear/FAQ.html는 (반전 검색)