0
분류를 위해 libsvm을 사용하고 있습니다. 교차 유효성 검사를 사용하여 C 및 감마 매개 변수를 조정합니다. 아니. 교차 검증을 위해 사용하는 관측치의 수는 약 6000 ~ 7000입니다. 그러나 그것은 MATLAB이 매개 변수를 조정하는 데 엄청난 시간을 필요로합니다. 그것은 데이터 세트의 크기 때문입니까 아니면 코드를 최적화해야합니까 ?? 코드의libsvm matlab에 대한 교차 유효성 검사를 최적화하는 방법은 무엇입니까?
예 :
[labels,data] = libsvmread('newwndwlibfeatures.txt');
labels_stem=labels(labels==1);
feature_stem=data(labels==1,:);
labels_nostem=labels(labels~=1);
feature_nostem=data(labels~=1,:);
L=randperm(length(labels_nostem));
labels_nostem=labels_nostem(L);
feature_nostem=feature_nostem(L,:);
labelscv=[labels_stem; labels_nostem(1:round(.05*length(labels_nostem)))];
featurecv=[feature_stem; feature_nostem(1:round(.05*length(labels_nostem)),:)];
weight=[length(labels_stem)/(length(labels_stem)+round(.05*length(labels_nostem))) ...
round(.05*length(labels_nostem))/(length(labels_stem)+round(.05*length(labels_nostem)))];
[C,gamma] = meshgrid(-15:1:10, -15:1:6);
%
folds=5;
%# grid search, and cross-validation
cv_acc = zeros(numel(C),1);
for i=1:numel(C)
cv_acc(i) = svmtrain(labelscv, featurecv, ...
sprintf('-c %f -g %f -h 0 -v %d -w0 %d -w1 %d', 2^C(i), 2^gamma(i), folds,weight));
end