-
Notifications
You must be signed in to change notification settings - Fork 0
/
Caltech_Script.m
59 lines (48 loc) · 1.97 KB
/
Caltech_Script.m
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
%% Header
% File: MyScript.m
% Author: Ashok Chandrashekar, brain engineering laboratory, Dartmouth
% Author: Eric Nunes, brain engineering laboratory, Dartmouth
% Description: File contains routine calls for the core components in the algorithm
%% Many model parameters defined in DefConstants.m. Please run it before any other function.
clear;
K = 64;
% Include your data path
DATA_PATH = 'C:\Users\Eric\Documents\GitHub\StillImageProcessing\cslForest\csl-matlab\csl_unsupervised\Data\Digit\';
load (strcat(DATA_PATH, 'TrainLabels'));
load (strcat(DATA_PATH, 'TrainDMapIndices'));
load (strcat(DATA_PATH, 'TestDMapIndices'));
load (strcat(DATA_PATH, 'TestLabels'));
% load (strcat(DATA_PATH, 'Labels'));
load (strcat(DATA_PATH, 'H'));
for run = 1:1
fprintf('BEGIN: Run %d\n', run);
TrainDMap = H(TrainDMapIndices{run}, :);
TestDMap = H(TestDMapIndices{run}, :);
%% CSL
BF = 0.6; % bagging fraction
FF = 0.2; % Feature fraction
num_trees = 100;
for maxk = 10
%Training
tic;
[PredObjLabels{run, maxk}] = batchTrain(TrainDMap, TrainLabels{run}, num_trees, maxk, BF, FF, TestDMap);
%trainTime(run, maxk) TestTime(run, maxk)
time = toc;
CFMat = zeros (K, K);
for Cnt = 1 : numel(PredObjLabels{run, maxk})
if PredObjLabels{run, maxk}(Cnt) ~= -1
CFMat(TestLabels{run}(Cnt), PredObjLabels{run, maxk}(Cnt)) = CFMat(TestLabels{run}(Cnt), PredObjLabels{run, maxk}(Cnt)) + 1;
end
end
Succ(run, maxk) = 0;
for i = 1:K
Succ(run, maxk) = Succ(run, maxk) + CFMat(i,i);
end
Succ(run, maxk) = 100 * Succ(run, maxk) / numel(PredObjLabels{run, maxk});
fprintf('CSL Tree descent: max_k = %d, Total time:%f , Accuracy:%f%%, \n', ...
maxk, time, Succ(run, maxk));
clear mex;
end
end
save Calt256_All_Classifiers;
return;