Poszedłem za postem, do którego się odwołałeś i otrzymałem wyniki bez błędów. Dla mnie dokładność sprawdzania poprawności dla zbioru danych "fisheriris" wynosi 96,6667%. Dla ciebie, myślę, że błąd polega na tym, że błąd pochodzi z "svmtrain", tak jak powiedział pierwszy komentarz. Poniżej pokażę, w jaki sposób uruchomiłem kod.
1) pobierz plik libsvm z http://www.csie.ntu.edu.tw/~cjlin/libsvm/ i rozpakuj go.
2) zmiany nazwy plików svmtrain.c
i svmpredict.c
w \libsvm-3.16\matlab\
być libsvmtrain.c
i libsvmpredict.c
. A następnie zlokalizuj make.m
w tym samym folderze i zmiany linii 16 oraz linii 17 będzie
mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims libsvmtrain.c ../svm.cpp svm_model_matlab.c
mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims libsvmpredict.c ../svm.cpp svm_model_matlab.c
3) make.m prowadzony po prostu zmieniły się mex pliki * .c.
4) zgodnie z przyjętą odpowiedzi słupka 10 fold cross-validation in one-against-all SVM (using LibSVM) można utworzyć cztery .M plików dla każdej funkcji, crossvalidation.m
, libsvmcrossval_ova.m
, libsvmpredict_ova.m
, libsvmtrain_ova.m
i uruchomić główną funkcję przewidzianą przez ten odpowiadającego, który przedstawia się następująco:
clear;clc;
%# laod dataset
S = load('fisheriris');
data = zscore(S.meas);
labels = grp2idx(S.species);
%# cross-validate using one-vs-all approach
opts = '-s 0 -t 2 -c 1 -g 0.25'; %# libsvm training options
nfold = 10;
acc = libsvmcrossval_ova(labels, data, opts, nfold);
fprintf('Cross Validation Accuracy = %.4f%%\n', 100*mean(acc));
%# compute final model over the entire dataset
mdl = libsvmtrain_ova(labels, data, opts);
acc = libsvmtrain(labels, data, sprintf('%s -v %d -q',opts,nfold));
model = libsvmtrain(labels, data, strcat(opts,' -q'));
Konflikt nazw z bioinformatycznym 'svmtrain' i libsvm' svmtrain'? [LIBSVM FAQ] (http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#/Q9:_MATLAB_interface) – AGS
Zmieniam ten CXX = g ++ w Makefile z CXX = g ++ -XY. ale nadal błąd – user2157806
To nie jest to, co sugeruję. Spróbuj użyć pełnej nazwy ścieżki, gdy uruchomisz libsmv 'svmtrain'. – AGS