bonjour
je débute avec les svm et j'ai utiliser le programme suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
 
load database    % contient mes image et leurs label
[g, gn]                 = grp2idx(etat);     % Nominal class to numeric
trainIdx=[true;false;true;true;false;true;false;false;false;true;%10
          true;false;true;true;false;true;true;true;false;true;%20
          true;true;false;true;false;true;true;true;true;false;%30
          false;true;true;true;false;true;false;true;true;true;%40
          true;false;false;true;true;true;true;false;false;true;%50
          true;true;false;false;false;true;false;false;true;true;%60
          false;true;false;true; false;true;true;true;true;false;%70
          true;true;false;true;false;true;false;true;true;false;%80
          true;true;false;true;true;false;true;false;true;true;%90
          true;true;false;true;true;false;true;true;false;true;%100
          false;true;true;true;false;true;false;true;true;false;%110
          true;true;true;false;true;true;false;true;false;true;%120
          true;false;true;true;true;false;true;true;false;true;%130
          true;false;true;false;true;true;false;true;true;false;%140
          true;false;true;true;false;true;true;true;false;false;%150
          true;true;false;true;true;false;true;true;true;false;%160
          true;false;true;true;false;true;true;true;true;false;%170
          true;false;true;true;false;true;false;true;true;true;%180
          true;false;false;true;true;true;true;false;false;true;%190
          true;false;true;true;true;true;false;true;false;true;%200
          false;false;true;true;true;true;false;false;true;true;true;false;true];
 
testIdx=[false;true;false;false;true;false;true;true;true;false;%10
         false;true;false;false;true;false;false;false;true;false;%20
         false;false;true;false;true;false;false;false;false;true;%30
         true;false;false;false;true;false;true;false;false;false;%40
         false;true;true;false;false;false;false;true;true;false;%50
         false;false;true;true;true;false;true;true;false;false;%60
         true;false;true;false; true;false;false;false;false;true;%70
         false;false;true;false;true;false;true;false;false;true;%80
         false;false;true;false;false;true;false;true;false;false;%90
         false;false;true;false;false;true;false;false;true;false;%100
         true;false;false;false;true;false;true;false;false;true;%110
         false;false;false;true;false;false;true;false;true;false;%120
         false;true;false;false;false;true;false;false;true;false;%130
         false;true;false;true;false;false;true;false;false;true;%140
         false;true;false;false;true;false;false;false;true;true;%150
         false;false;true;false;false;true;false;false;false;true;%160
         false;true;false;false;true;false;false;false;false;true;%170
         false;true;false;false;true;false;true;false;false;false;%180
         false;true;true;false;false;false;false;true;true;false;%190
         false;true;false;false;false;false;true;false;true;false;%200
         true;true;false;false;false;false;true;true;false;false;false;true;false];
% Split training and testing sets
 
 
pairwise                = nchoosek(1:length(gn),2);            % 1-vs-1 pairwise models
svmModel                = cell(size(pairwise,1),1);           % Store binary-classifers
%predTest                = zeros(sum(testIdx),numel(svmModel)); % Store binary predictions
 
%# classify using one-against-one approach, SVM with 3rd degree poly kernel
for k=1:numel(svmModel)
    %# get only training instances belonging to this pair
    idx                     = trainIdx & any( bsxfun(@eq, g, pairwise(k,:)) , 2 );
 
    %# train
    svmModel{k}             = svmtrain(in(idx,:), g(idx),'kernel_function','rbf','rbf_sigma',500 );
 
    %# test
    predTest(:,k)           = svmclassify(svmModel{k}, in(testIdx,:));
end
pred = mode(predTest,2);   % Voting: clasify as the class receiving most votes
 
%# performance
cmat                        = confusionmat(g(testIdx),pred);
acc                         = 100*sum(diag(cmat))./sum(cmat(:));
fprintf('SVM (1-against-1):\naccuracy = %.2f%%\n', acc);
fprintf('Confusion Matrix:\n'), disp(cmat)
mais maintenant que j'ai fait mon apprentissage en utilisant un contre un pour sept classes et mes test je veux évaluer le temps d'exécution de mon système alors j' ai enregistrer mes svmModel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
exsvm='exsvm.mat'
 
save (exsvm,'svmModel')
pour les utiliser dans mon système et tester les images une à une et évaluer le temps
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 load exsvm
% 
for k=1:numel(svmModel)
 
     predTest(:,k)           = svmclassify( svmModel{k}, IN);
 
end
      pred = mode(predTest,2);
mais mes résultats ne sont pas les mêmes que ceux obtenus lors tu test et de l'évaluation