summaryrefslogtreecommitdiffstats
path: root/SD-VBS/benchmarks/svm/src/matlab/examineExample.m
blob: a60ee139ab96b28406f82e86f5e5cf65957665d9 (plain) (blame)
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
function [a,b,e,ret]=examineExample(i, a, b, C, e, X, Y, tolerance, N, eps, dim)

ret = 0;
if (a(i,1) > 0) && (a(i,1) < C)
    E = e(i,1);
else
    E = cal_learned_func(i, a, b, N, Y, X, dim) - Y(i,1);
end

 r1 = Y(i,1) * E;

 if (r1 < -1*tolerance && a(i,1) < C) || (r1 > tolerance && a(i,1) > 0)
    %case1 argmax E-E2%
    maxEDiff=0;
    j=i;
    for k=1:N
        if a(k,1) > 0 && a(k,1) < C
            temp= abs(E - e(k,1));
            if temp > maxEDiff
                j=k;
            end
        end
    end
    
    if i~=j
        [a,b,e,ret]=takeStep(i, j, a, C, e, Y, X, eps, b, N, dim);
    end

    if(ret ~=1)
        %iterate through the non-bound example%
%        for k=round(randWrapper(1,1)*(N-2))+1:N
        randVal = 1.0;
        for k=(randVal*(N-1)):N
            if (a(k,1) > 0 && a(k,1) < C && ret == 0)
%			    if (i == k)
%				    ret = 0;
%			    else
            	    [a,b,e,ret]=takeStep(i, k, a, C, e, Y, X, eps, b, N, dim);
%			    end
            end
        end
    end

    if(ret ~= 1)
        %iter for entire training set%
        for k=1:N
            if(ret == 0)
%			    if (i == k)
%				    ret = 0;
%			    else
            	    [a,b,e,ret]=takeStep(i, k, a, C, e, Y, X, eps, b, N, dim);
%			    end
            end
        end
    end

    else

end