I can not use libsvm!!!
60 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Atieh
el 3 de Jun. de 2011
Comentada: Najiyah Valappil
el 16 de Mzo. de 2020
Hi,
can anybody help me in using libsvm?
but it can not be recognized by my matlab, I got the following error:
??? Undefined function or method 'libsvmtrain' for input arguments of type 'double'.
Error in ==> svmtrts at 139 D.net.svm=libsvmtrain(otY,stX,'-t 0');
Error in ==> main at 148 [D,Dtest]=svmtrts(trndataSVM,tstdataSVM,'libsvm');
can anybody help me.
Regards, Atieh
0 comentarios
Respuesta aceptada
Friedrich
el 3 de Jun. de 2011
I think your are talking about:
The function libsvmtrain does not exist in that package. The training function is called svmtrain.
0 comentarios
Más respuestas (1)
Jonas Reber
el 3 de Jun. de 2011
I used libsvm myself in matlab.
- download it from ( http://www.csie.ntu.edu.tw/~cjlin/libsvm/#download)
- add the svmtrain, svmpredict, libsvmwrite & libscmread .mex Files to your matlab path (probably you just put them in the working folder...)
then let me provide you my sample code - note: I use precompiled kernel data.
Here, I would like to find the optimal parameter c for my SVM.
clear all; close all;
%%load datasets
[lvtest, test] = libsvmread('test.krnl');
[lvtrain, train] = libsvmread('train.krnl');
[lvvalid, valid] = libsvmread('valid.krnl');
%%optimize parameter c on validation set
n = -17:17;
accuracy = nan(size(n));
for i=1:numel(n); % n = {-17,...,17}
c=2^n(i);
% create model
model = svmtrain(lvtrain, train,['-q -t 4 -c ' num2str(c)]);
% option: -t 4 -> precomputed kernel
[lbl, acc, dec] = svmpredict(lvvalid, valid, model);
accuracy(i) = acc(1);
end
% output the accuracy vs the chosen parameter c
plot(accuracy);
xlabel('c'), ylabel('Accuracy'); title('Accuracy vs. c');
%%test optimal c on the test set
[~, i] = max(accuracy); % find the best value
c = 2^n(i); % this is the optimal c
% create model
model = svmtrain(lvtrain, train,['-q -t 4 -c ' num2str(c)]);
% test on the testset
[lbl, acc, dec] = svmpredict(lvtest, test, model, []);
% show accuracy
disp(['Accuracy with optimized c (' ...
num2str(c) ') on Testset: ' num2str(acc(1)) '%']);
hope this helps...?
2 comentarios
judy frost
el 23 de Sept. de 2013
Can you please explain the example further by showing how to find optimal cost and gamma values from validation data that are used for k-fold cross validation. Furthermore is it possible to plot the graph of classified data at the end of validation,training and test stages. I will appreciate any further explanation regarding the topic. Thank you.
Ver también
Categorías
Más información sobre Classification en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!