-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSAMPLE_MAIN.m
More file actions
88 lines (83 loc) · 3.17 KB
/
SAMPLE_MAIN.m
File metadata and controls
88 lines (83 loc) · 3.17 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
clear
load('FACE_16x16x1000x10.mat')
% load('TsukubaHandDigitsDataset24x24.mat')
whos
% Assuming your data is stored in a variable named 'data'
% The size of 'data' is 16x16x1000x10
% data = DATA;
% figure; % Create a new figure window
% for i = 1:10 % Loop through each of the 10 classes
% img = squeeze(data(:,:,1,i)); % Extract the first 16x16 image of the i-th class
% subplot(2, 5, i); % Arrange the plots in a 2x5 grid
% imagesc(img); % Display the image
% axis square; % Make each subplot square in shape
% colormap gray; % Use grayscale colors
% title(sprintf('Class %d', i)); % Title each subplot with its class number
% end
%% Using FACE_16x16x1000x10.mat
X = orzNormalize(orzReshape(DATA,1));
[nDim, nNum, nClass] = size(X);
trainData = X(:,1:100,:);
testData = X(:,101:1000,:);
testData = orzSlidingData(testData,25,25);
[nDim,nNum2,nSet2,nClass] = size(testData);
nSubDim1 = 20;
nSubDim2 = 5;
nSigma = 1;
nk = 20;
numRandFeats = 100;
%% MSM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tic;
[V1 D1] = orzBasisVector(trainData,nSubDim1);
[V2 D2] = orzBasisVector(testData,nSubDim2);
SIM = orzCanonicalAngles(V1,V2);
RSLT = OrzEval(SIM(:,:,end,end),orzLabel(size(testData,3),nClass));
elapsedTime = toc;
displayResults('MSM',RSLT, elapsedTime);
% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Kernel MSM
tic;
[A1 D1 C1 K1] = orzKernelBasisVector(trainData,nSubDim1,nSigma);
[A2 D2 C2 K2] = orzKernelBasisVector(testData,nSubDim2,nSigma);
SIM = orzKernelCanonicalAngles(trainData,A1,testData,A2,nSigma);
RSLT = OrzEval(SIM(:,:,end,end),orzLabel(size(testData,3),nClass));
elapsedTime = toc;
displayResults('Kernel MSM',RSLT, elapsedTime);
% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% RFF KMSM
tic;
[A1 D1 C1 K1] = orzKernelBasisVector(trainData,nSubDim1,nSigma, numRandFeats);
[A2 D2 C2 K2] = orzKernelBasisVector(testData,nSubDim2,nSigma, numRandFeats);
SIM = orzKernelCanonicalAngles(trainData,A1,testData,A2,nSigma);
RSLT = OrzEval(SIM(:,:,end,end),orzLabel(size(testData,3),nClass));
elapsedTime = toc;
displayResults('RFFMSM',RSLT, elapsedTime);
% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Kmeans and RFF KOMSM
nSubDim1 = {20};
nSubDim2 = {5};
nk = {20};
nSigma = {1};
% numRandFeats = 500;
% nk = num2cell(2:max_nk);
% disp(size(nk, 2));
% KmeanKOMSM
disp('------- KmeanKOMSM -------');
tic;
KmeansKOMSMEval(trainData, testData, nSubDim1, nSubDim2, nSigma, nk);
elapsedTime = toc;
displayTimeTaken(elapsedTime);
% KmeanKOMSM with RFF
disp('------- KmeanKOMSM with RFF -------');
tic;
KmeansKOMSMEval(trainData, testData, nSubDim1, nSubDim2, nSigma, nk, 'RFF', numRandFeats);
elapsedTime = toc;
displayTimeTaken(elapsedTime);
% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% KO = CvtKOMSMSVD(trainData,nSubDim1,nSigma);
% V1 = KO.TransformS(trainData,nSubDim1);
% V2 = KO.TransformS(testData,nSubDim2);
% SIM = orzCanonicalAngles(V1,V2);
% RSLT = OrzEval(SIM(:,:,end,end),orzLabel(size(testData,3),nClass));
% displayResults('KOMSM',RSLT);