function output=SVMer(fullkernel,fulllabels) fulllabels=full(fulllabels); badlabels=(fulllabels==0); numingoer=sum(fulllabels); its=floor(sum(badlabels)/numingoer); badlabels=find(badlabels); goodlabels=find(fulllabels); badlabels=badlabels(randperm(length(badlabels))); labels=[ones(numingoer,1);zeros(numingoer,1)]; output=0; for i=1:its kernel=fullkernel([goodlabels badlabels((1+(its-1)*numingoer):(its*numingoer))],[goodlabels badlabels((1+(its-1)*numingoer):(its*numingoer))]); [train,test]=crossvalind('holdOut',labels); svmStruct=svmtrain(kernel(train,:),labels(train),'showplot',false); classes=svmclassify(svmStruct,kernel(test,:),'showplot',false); cp=classperf(labels); classperf(cp,classes,test); output1=cp.CorrectRate; output=output+output1; end output=output/its;