2013-11-21 4 views
0

MATLAB에서 REGRESSION에 대한 libsvm 매개 변수 (c, g, p)를 찾는 방법이 있습니까? gridglression.py를 사용하여 찾으면 좋지만 Matlab에서 사용하려면 어떻게해야합니까? 열 x와 y 행렬을 내보내고 gridregression.py를 통해 parameteres를 찾는 것은 약간 시간입니다.Libsvm 매개 변수 (c, g, p) 검색

답변

0

수동으로 교차 검증 절차를 작성하십시오. 3 개의 중첩 된 루프 ($ c $, $ g $ 및 $ p $의 가능한 값 이상)입니다. 내부 루프에서는 교차 검증 모드 (-v k)에서 svm-train을 k- 교차 유효성 검사를 위해 호출합니다.

얻은 최선의 $ (c, g, p) $ - 튜플을 저장하면 완료됩니다.

+0

이미 'bestcv = 0; log2p = -8 : 0, 에 대한 log2c = -1 : 6, 에 대한 log2p = -8 : 0, 에 대한 cmd = [ '-v 5 -c', num2str (2^log2c), '-g ', num2str (2^log2g),'-p ', num2str (2^log2p)]; cv = svmtrain (y, x, cmd); if (cv> = bestcv), bestcv = cv; bestc = 2^log2c; bestg = 2^log2g; bestp = 2^log2p; end fprintf ('(최고의 c = % g, g = % g, p = % g, 비율 = % g) \ n', bestc, bestg, bestp, bestcv); 휴식; end end end' 그러나 솔루션 (MSE)을 gridregression.py로 사용하지 마십시오 – user2602256

+0

'bestcv = 0; log2p = -8 : 0, 에 대한 log2c = -1 : 6, 에 대한 log2p = -8 : 0, 에 대한 cmd = [ '-v 5 -c', num2str (2^log2c), '-g ', num2str (2^log2g),'-p ', num2str (2^log2p)]; cv = svmtrain (y, x, cmd); if (cv> = bestcv), bestcv = cv; bestc = 2^log2c; bestg = 2^log2g; bestp = 2^log2p; end fprintf ('(최고의 c = % g, g = % g, p = % g, 비율 = % g) \ n', bestc, bestg, bestp, bestcv); 휴식; end end end' – user2602256