-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtrain_pixels.asv
More file actions
56 lines (46 loc) · 1.74 KB
/
train_pixels.asv
File metadata and controls
56 lines (46 loc) · 1.74 KB
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
tic
clear all
%------------------------------------------------------------------%
% parameters
training_number = [1:5:1000]; % In this case there are 200 objects per class, change 5 to 100 to get scenario 2.
resize = [40 20];
Angle = -20:20:20; % Using only 3 angles
global W;
%-----------------------------------------------------------------%
a = prnist([0:9], training_number)
im_a = data2im(a);
nlab = getnlab(a);
lablist = getlablist(a);
len = length(Angle);
if(isempty(find(Angle == 0, 1)))
len = len + 1;
end
trainSets = zeros([len*length(im_a) prod(resize)]);
for i = 1:length(im_a)
temp = preprocessing(im_a{i}, resize, Angle);
trainSets((i-1)*size(temp,1)+1 : i*size(temp,1), :) = temp;
end
trainSets = prdataset(trainSets, '1');
trainSets = setlablist(trainSets, lablist);
nn = repmat(nlab', length(Angle), 1);
nn = reshape(nn, [1 size(nn, 1)*size(nn, 2)]);
trainSets = setnlab(trainSets, nn');
trainSets = setprior(trainSets,0);
%% -----------------------------------------------------------------%
W = nlfisherm(trainSets,9);
trainSets_f = trainSets*W; % W - fisher mapping
% w = qdc(trainSets_f); % As an example only 2 classifiers are shown
w = knnc(trainSets_f,2);
%% Cross - validation
% [ERR,~,~,~] = prcrossval(trainSets_f,knnc,10,1,w);
% W_cl = mclassc(trainSets_f,svc(proxm('p',1),'single'));
%% Learnin curves
e = cleval(trainSets_f,{knnc([],2),knnc([],1)},[200 400 600 800 1000],50);
plote(e)
%%
knn_1 = [ 0.045 0.041 0.0384 0.0383 0.0383];
knn_2 = [ 0.048 0.0405 0.042 0.044 0.043];
s = [200 400 600 800 1000];
figure(2);
plot(s,knn_1,'k',s,knn_2,'b')
xlabel('Number of objects per class','Fontsize',14); ylabel( 'Test set error','Fontsize',14);