[Ypre_svm] = SVMclassify(testImages',images', labels', gammaval,C);
这一句是整体引用。
C=10.^[1:5];
sigmaval = 2.^[-4 : 4]; gammaval = 1./(2*sigmaval.^2);
for p = 1 : length(gammaval)
for q = 1 : length(Cval)
gu = gammaval(p); cu = Cval(q);
cmd = [' -v 3 -c ',num2str(cu),' -g ',num2str(gu)];
cg(p,q) = svmtrain(YTrn, XTrn, cmd);
if cg(p,q) >= bestacc
bestacc = cg(p,q);
bestc = cu;
bestg = gu;
end
end
end
三段法交叉验证获得最好的g和c。
cmd = [' -c ', num2str(bestc), ' -g ', num2str(bestg) ];
model = svmtrain(YTrn, XTrn, cmd);
TrnTime = toc(tstart);
用最好的g和c得到model,里面含有w和b。
tstart = tic;
Ypre_SVC = svmpredict(ones(size(XTst,1),1), XTst, model);
TstTime = toc(tstart);
用model进行预测。