2012-05-16 3 views
0

for 루프에서 내 인스턴스의 기능을 변경하는 SVM을 학습 중이며 최종 목표 값과 반복을 플로팅하고 싶습니다. MATLAB에서 LIBSVM을 사용하고 있지만 반환 된 모델에서 최종 목표 값을 명시 적으로 찾지 못했습니다. 각 interation에서 반환 된 모델의 최종 목표 값은 어떻게 계산합니까?목표 값 계산 LIBSVM Matlab

svmtrain에서 인쇄 한 스크립트를 읽을 수도 있지만이 트릭을 사용하지 않고이 값을 계산하고 싶습니다.

경찰서. 나는 C++에 대한 기본적인 지식을 가지고있다.

+0

:

나는 새 파일만을 목적으로 나에게 이메일을 보내 전달할 수 있습니다? 그렇다면이 FAQ http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f401을 참조하십시오. 그렇지 않다면, 훈련을 위해 사용하고있는 기능의 이름과 훈련 결과 (있는 경우)를 포함시킬 수 있습니까? – kitchenette

+0

예 Matlab의 C-SVM을 "svmtrain"함수와 함께 사용하고 있습니다. 이 매개 변수를 가진 모델 구조를 반환 : \t "nr_class" \t "totalSV을" \t "RHO" \t "라벨", \t "ProbA" \t "ProbB을" \t "NSV" , \t "sv_coef", \t "SVs" – escorciav

답변

1

몇 줄의 코드를 추가하여 목표 값을 반환하도록 svm.cpp 및 svm.h를 수정합니다.

1) svmmodel (svm.h) 및 decision_function (svm.cpp) 구조에 새 필드를 추가하십시오.

2) decision_function의 새 필드에 si.obj를 복사하십시오.

3) decision_function에 의해 catch 필드를 svmmodel 구조 (svm.cpp의 svm_train 함수)의 최신 필드로 복사하십시오.

4) svmmodel 구조에서 새 필드를 허용하도록 svm_model_matlab.c를 수정하십시오.

  • NUMBER_OF_FIELD 변수를 삭제하고 출력 구조에 새 필드를 추가하십시오.
  • 출력 구조의 순서에 따라 model_to_matlab_struct 함수를 수정하십시오.
  • 은 정말 쉽고 straighforward 년대 matrix_matlab_to_model 기능

수정 (그것은 쉽게 복사 필드 (ρ)에 사용되는 코드의와 변수의 이름으로 RHO 교체). LIBSVM-ObjModification 당신이 C-SVM을 사용하고

+0

두 명의 친구들이 약간 까다 롭고 광범위하게 테스트하지 않았기 때문에이 모드를 요청했습니다. 누군가 libsvm 포크를 가지고 있다면 변경 사항을 보내 줄 수 있습니다. 한편, Varma가 제안한 modM을 simpleMKL에서 사용할 수 있습니다.이 모드는 유용하고 간단합니다. – escorciav