2014-11-10 5 views
0

Matlab에서 libsvm을 사용하고 있습니다. 나는 모델을 만들고 예측을 위해이 모델을 사용하고 싶다. svmpredict ([predict_label, accuracy_all, prob_values])의 반환 값이 비어 있음이 유선입니다. 다음은 간단한 코드입니다.matlab libsvm : 예측할 수 없습니다.

svm_model = svmtrain([train_label],[train],'-t 2, -c 100 -q'); 
[predict_label, accuracy_all, prob_values] = svmpredict(testlabels,testdata,svm_model,'-q, -b 1'); 

[predict_label, accuracy_all, prob_values]는 0x0 행렬입니다. 또한 Matlab은 다음과 같은 경고 정보를 보여줍니다.

Usage: [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector, testing_instance_matrix, model, 'libsvm_options') 
Parameters: 
    model: SVM model structure from svmtrain. 
    libsvm_options: 
    -b probability_estimates: whether to predict probability estimates, 0 or 1 (default 0); one-class SVM not supported yet 
Returns: 
    predicted_label: SVM prediction output vector. 
    accuracy: a vector with accuracy, mean squared error, squared correlation coefficient. 
    prob_estimates: If selected, probability estimate vector. 

아무도 도와 줄 수 있습니까?

+0

문제가 해결되었습니다. 예측에는 '-q'가 없어야합니다. 나는 예측이 자동 모드를 지원하지 않는다고 생각한다. – user3783676

답변

0

SVM 모델에서 q는 무엇입니까? 가치는 어디입니까? 물론 C와 g를 정의 할 필요가있는 SVM에서 두 개의 매개 변수가

는, 당신은 C의 값으로 100을 넣어했지만 THER는 질문에 대한 값입니다 (감마라고 g이어야 함)

을 이것은 당신이

cmd = ['-t 2 -c ',num2str(C), ' -g ',num2str(gamma) ]; 
model = svmtrain2(trainClass, trainData, cmd); 
[predClass, acc, decVals] = svmpredict(testClass, testData, model); 

을 필요 또한 내가 그 svmtrain는 MATLAB의 svmtrain 기능과의 혼동을 피하기 위해 svmtrain2의 이름을 변경해야합니다 생각합니다.

+0

-q는 svm의 모든 출력을 차단하는 조용한 모드를 의미합니다. 또한 기본 감마를 사용하여 지정하지 않았습니다. – user3783676

관련 문제