내가 관심을 가질만한 모듈을 제공하려고 노력 중이며,이를 사용자의 기능에 통합 할 수 있습니다. 희망이 도움이됩니다.
휴가-한 아웃 :
scrambledList = randperm(totalNumberOfData);
trainingData = Data(scrambledList(1:end-1),:);
trainingLabel = Label(scrambledList(1:end-1));
testData = Data(scrambledList(end),:);
testLabel = Label(scrambledList(end));
그리드 검색 (듀얼 클래스의 경우) :
acc = 0;
for log2c = -1:3,
for log2g = -4:1,
cmd = ['-v 5 -c ', num2str(2^log2c), ' -g ', num2str(2^log2g)];
cv = svmtrain(trainingLabel, trainingData, cmd);
if (cv >= acc),
acc = cv; bestC = 2^log2c; bestG = 2^log2g;
end
end
end
모든 한 - 대 - (멀티 클래스의 경우에 사용) :
model = cell(NumofClass,1);
for k = 1:NumofClass
model{k} = svmtrain(double(trainingLabel==k), trainingData, '-c 1 -g 0.2 -b 1');
end
%% calculate the probability of different labels
pr = zeros(1,NumofClass);
for k = 1:NumofClass
[~,~,p] = svmpredict(double(testLabel==k), testData, model{k}, '-b 1');
pr(:,k) = p(:,model{k}.Label==1); %# probability of class==k
end
%% your label prediction will be the one with highest probability:
[~,predctedLabel] = max(pr,[],2);
http://www.csie.ntu.edu.tw/~cjlin/libsvm/#matlab의 libsvm을 사용하고 있습니까? – lennon310
예 실제로 libSVM을 사용하고 있습니다. – NOP