hi i am new in matlab , i am using support vector machine for parameter optimizing purpose.I using the sample code which is given below-
grnpop = mvnrnd([1,0],eye(2),10);>> redpop = mvnrnd([0,1],eye(2),10);>> redpts = zeros(100,2);grnpts = redpts;>> for i = 1:100grnpts(i,:) = mvnrnd(grnpop(randi(10),:),eye(2)*0.2);redpts(i,:) = mvnrnd(redpop(randi(10),:),eye(2)*0.2);end;>> k=10;>> cdata = [grnpts;redpts];grp = ones(200,1);% green label 1, red label -1
grp(101:200) = -1;>> cdata = [grnpts;redpts];grp = ones(200,1);% green label 1, red label -1grp(101:200) = -1;>> cvFolds = crossvalind('Kfold', grp, 10);>> z=[3 5];>> testIdx = (cvFolds == 1);>> trainIdx = ~testIdx;>> xtrain=cdata(trainIdx,:);>> xtest=cdata(testIdx,:);>> ytrain=grp(trainIdx);>> svmStruct = svmtrain(xtrain,ytrain,'Kernel_Function','rbf',... 'rbf_sigma',z(1),'boxconstraint',z(2));>> yfit = svmclassify(svmStruct,xtest);>> minfn = @(z)crossval('mcr',cdata,grp,'Predfun',yfit,..... @(xtrain,ytrain,xtest)crossfun(xtrain,ytrain,... xtest,exp(z(1)),exp(z(2))));>> opts = optimset('TolX',5e-4,'TolFun',5e-4);>> [searchmin fval] = fminsearch(minfn,randn(2,1),opts)
but i found the following error-
Error using crossval (line 204)Wrong number of arguments.Error in@(z)crossval('mcr',cdata,grp,'Predfun',yfit,@(xtrain,ytrain,xtest)crossfun(xtrain,ytrain,xtest,exp(z(1)),exp(z(2))))Error in fminsearch (line 191)fv(:,1) = funfcn(x,varargin{:});
please any one tell me why this error is comeing ,and also suggest the code.
Best Answer