2014-03-05 5 views
0

내가 원했던 것을 간략히 요약하면, 텍스트가 동일한 저자에 의해 쓰여지는지 아닌지를 결정하고자합니다. 따라서 나는 일류 분류를 사용한다. 이 단순화 (같이 보인다libsvm을 사용한 하나의 클래스 분류

내 테스트 세트에
1 1:x 2:x "until" 200:x 
1 1:x 2:x "until" 200:x 

(3 개 샘플) 내 트레이닝 세트 (18 개 샘플)에서
, 그것은 (I 데이터 값 X를 사용하여, 단순화)과 같다 , I 데이터 값 y)를 사용했을 때, I는 상하 스케일링 한도를 설정) 데이터 준비 (트레이닝 및 테스트 세트의

1 1:y 2:y "until" 200:y 

을 훈련 + 1/-1

-l -1 -u 1 

에, I 유 se svm_type은 svm 클래스 중 하나이며 커널 유형은 Sigmoid입니다. 그러나 정확도는 0 %입니다.

optimization finished, #iter = 13 
obj = 22.901769047004553, rho = 5.476401914859387 
nSV = 11, nBSV = 6 
Accuracy = 0.0% (0/21) (classification) 

누군가 내가 잘못한 것을 보여 줄 수 있습니까?

답변

1

매개 변수를 조정해야합니다.

nu은 학습 오류의 비율과 지원 벡터의 비율의 하한에 대한 상한입니다. 이러한 설정을 사용하면 기본적으로 데이터의 금액 nu (예 : 0.01는 1 %를 의미 함)을 거부하고 아웃 라이어로 플래그 할 수 있습니다.

또한 Sigmoid 커널에서 gammacoef0 값을 조정하십시오.

제로 훈련의 정확성을 야기시키는 직접적인 요소는 아니지만 libsvm의 최대 최소 조정 대신 직접 데이터의 크기를 조정하는 것이 좋습니다. standard scaling을 확인하십시오.

x_mean = mean(x); 
x_std = std(x); 
x = (x - x_mean)./x_std; 

그런 다음 테스트 데이터를 확장하기 위해 동일한 x_meanx_std 값을 사용합니다.

+0

감사합니다. 시험해 보겠습니다. – Xitrum

관련 문제