I can not use libsvm!!!
60 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Friedrich
2011-6-3
I think your are talking about:
The function libsvmtrain does not exist in that package. The training function is called svmtrain.
0 个评论
更多回答(1 个)
Jonas Reber
2011-6-3
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 个评论
judy frost
2013-9-23
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Classification 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!