2012-05-21 4 views
2

저는 Matlab에서 Libsvm을 사용하여 모델을 개발했습니다. 나는 CV를 사용하여 최상의 매개 변수를 선택했고 전체 데이터 세트를 훈련 한 모델을 얻었습니다. 더 나은 결과를 얻으려면 정규화를 사용합니다.Libsvm 모델의 사용

maximum=max(TR)+0.00001; 
minimum=min(TR); 

for i=1:size(TR,2) 
      training(1:size(TR,1),i)=double(TR(1:size(TR,1),i)-maximum(i))/(maximum(i)-minimum(i)); 
end 

이제 어떻게하면 내 모델을 직접 사용하여 새로운 데이터를 분류 할 수 있습니까? 클래스 레이블이없는 레코드를 의미합니다. 모델 정보에서 함수를 수동으로 만들어야합니까?

답변

0

libsvmtrain을 사용하여 교육 데이터를 학습하고 있습니까? 그렇다면 테스트/미래 데이터를 분류하는 데 사용할 수있는 출력 인수가 있습니다. 그런 다음 해당 출력 구조를 테스트 데이터와 함께 svmpredict으로 전달하십시오.

+0

예''svmtrain'을 사용하여 데이터를 학습하고 있습니다. 저는 여러분이 말하는 출력 인자가 모델이라고 생각합니다. 하지만'svmpredict'를 사용하고 싶다면 데이터를 레이블링해서는 안됩니다? 분류되지 않은 새 레코드가 있다면 임의의 클래스로 레이블을 지정하고'svmpredict'를 호출해야합니까? –

+0

예, 모델입니다. 그리고 예, 레이블에 임의의 값을 전달하지 않은 경우 - 그 인수는 어쨌든 정확성을 계산하는 것입니다 (레이블이 알려진 경우). – Ansari