1- %% Load Data
2- clear ;
3- clc ;
4- load(' TsukubaHandDigitsDataset24x24.mat' )
5- % Check if the variable 'trainData' and 'testData' do not exist in the workspace
6- % if ~(exist('trainData', 'var') == 1 && exist('testData', 'var') == 1)
7- % % If they don't exist, load the data from the .mat file
8- % load('TsukubaHandDigitsDataset24x24.mat');
9- % end
10- % you can use the following code to convert the test data format from 3d to 4d
11- testData = subsetTestData(testData , 2 );
12- % specific_class = 5;
13- %% to accomodate for MATLAB indexing
14- % specific_class = specific_class + 1;
15- training_data = cvlNormalize(trainData );
16- testing_data = cvlNormalize(testData );
17- % testing_data = testData(:, :, specific_class);
18- size_of_test_data = size(testing_data );
1+ %% Load data
2+ testDataUsage = TestDataUsage .Subsets ;
3+ n = 2 ;
4+ [trainData , testData , testLabels ] = prepareData(testDataUsage , n );
195
20- % get number of elements of size_of_test_data
21- array_size = numel(size_of_test_data );
22-
23- if array_size == 4
24- % do nothing
25- num_sets = size_of_test_data(3 );
26- num_classes = size_of_test_data(4 );
27- elseif array_size == 3
28- num_sets = 1 ;
29- num_classes = size_of_test_data(3 );
30- else
31- num_classes = 1 ;
32- num_sets = 1 ;
33- end
34-
35- %% Train Model
36- num_dim_reference_subspaces = 10 ;
37- num_dim_input_subpaces = 5 ;
6+ %% Train model
7+ numDimReferenceSubspace = 10 ;
8+ numDimInputSubspace = 4 ;
389sigma = 1 ;
3910
40- reference_subspaces = cvlKernelBasisVector(training_data , num_dim_reference_subspaces , sigma );
41- input_subspaces = cvlKernelBasisVector(testing_data , num_dim_input_subpaces , sigma );
42- % save('reference_subspaces.mat', 'reference_subspaces');
43- % reference_subspaces = reference_subspaces(:, :, 1);
44- tic ;
45- %% Recognition Phase
46- similarities = cvlKernelCanonicalAngles(training_data ,reference_subspaces ,...
47- testing_data , input_subspaces , sigma );
48- similarities = similarities(: , : , end , end );
49- % End timing and display the elapsed time
50- elapsedTime = toc ;
51- fprintf(' The code block executed in %.5f seconds.\n ' , elapsedTime );
52- model_evaluation = ModelEvaluation(similarities , generateLabels(num_classes , num_sets ));
53-
54- displayModelResults(' Kernel Mutual Subspace Methods' , model_evaluation );
11+ model = KMSM(trainData ,...
12+ numDimReferenceSubspace ,...
13+ numDimInputSubspace ,...
14+ sigma ,...
15+ testLabels );
5516
56- %% Print preditions
57- % disp(model_evaluation.predicted_labels);
58- % disp(model_evaluation.true_labels);
59- % disp(similarities)
60- % plotSimilarities(similarities)
17+ %% Evaluate model
18+ modelEvaluation = model .evaluate(testData );
19+ modelEvaluation .printResults();
0 commit comments