I can not use libsvm!!!
60 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Friedrich
on 3 Jun 2011
I think your are talking about:
The function libsvmtrain does not exist in that package. The training function is called svmtrain.
0 Comments
More Answers (1)
Jonas Reber
on 3 Jun 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 Comments
judy frost
on 23 Sep 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.
See Also
Categories
Find more on Classification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!