2015-02-04 4 views
1

libSVM의 auto_train 함수를 사용하여 자동으로 데이터 세트를 조정하려고합니다. 내가이 코드와 노력이 페이지 http://docs.opencv.org/modules/ml/doc/support_vector_machines.html 읽기 :C++에서 libSVM을 사용하여 auto_train을 사용하는 방법

CvSVMParams params; 
params.svm_type = CvSVM::C_SVC; 
params.kernel_type = CvSVM::RBF; 

내가는 RBF 커널을 원하기 때문에. : 그리고

CvSVM SVM; 
SVM.train_auto(trainFINAL, labelsFinal, Mat(), Mat(), params, 10, ... 
    CvSVM::get_default_grid(CvSVM::C), CvSVM::get_default_grid(CvSVM::GAMMA), ... 
    CvSVM::get_default_grid(CvSVM::P), CvSVM::get_default_grid(CvSVM::NU), ... 
    CvSVM::get_default_grid(CvSVM::COEF), CvSVM::get_default_grid(CvSVM::DEGREE), ... 
    false); 

는 그 후 나는이 방법으로 새로운 매개 변수를 플롯하려고 :

CvSVMParams newParams = SVM.get_params(); 
cout << endl; 
cout << "KERNEL : " << newParams.kernel_type << endl; 
cout << "SVM TYPE : " << newParams.svm_type << endl; 
cout << "degree : " << newParams.degree << endl; 
cout << "gamma : " << newParams.gamma << endl; 
cout << "coef0 : " << newParams.coef0 << endl; 
cout << "Cvalue : " << newParams.C << endl; 
cout << "p  : " << newParams.p << endl; 

하지만 난 2 가지 이해할 수 없다 :

  • 먼저, 왜 newParams.svm_type에서 100으로 반환됩니다 (C-SVC를 지정 했으므로 0이어야합니다)

  • 두번째,이 방법으로 매개 변수를 플롯하는 것이 맞습니까?

답변

0

"는 newParams.svm_type에 나에게 반환 이유는 첫째, 100 (전 C-SVC를 지정, 그것은 0이되어야합니다)"를 참조

OpenCV의 열거가 LibSVM의 약간 다른 http://docs.opencv.org/ref/2.4/dd/d88/classCvSVM.html

C_SVC는 100이며 OpenCV에서 첫 번째 유형의 SVM입니다 (LibSVM에서 0과 반대).

"두 번째로,이 방법으로 매개 변수를 플롯하는 것이 맞습니까?"

매개 변수 "plot"이 무엇을 의미하는지 모르겠지만 newParams가 최적화 된 매개 변수인지 여부를 알고 싶다면 그렇습니다.