IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
demo_gridsearch_pca_discriminant.m
Go to the documentation of this file.
1 %>@brief Grid search to simultaneously optimize (PCA number of factors) x ('linear'/'quadratic')
2 %>@ingroup demo
3 %>@file
4 
5 ds01 = load_data_she5trays();
6 
8 u.hierarchy = 2;
9 blmisc_classlabels_hierarchy01 = u;
10 out = blmisc_classlabels_hierarchy01.use(ds01);
11 ds01_hierarchy01 = out;
12 
13 %Rename irdata object
14 dsx = ds01_hierarchy01; clear ds01_hierarchy01;
15 
16 u = pre_std();
17 pre_std01 = u;
18 
19 u = fcon_pca();
20 u.no_factors = 10;
21 u.flag_rotate_factors = 0;
22 fcon_pca01 = u;
23 
24 u = clssr_d();
25 u.type = 'linear';
26 u.flag_use_priors = 0;
27 clssr_d01 = u;
28 
30 u.blocks{2}.decisionthreshold = 0;
31 cascade_gragdecider01 = u;
32 
33 u = grag_classes_first();
34 grag_classes_first01 = u;
35 
36 u = block_cascade();
37 u.blocks = {pre_std01, fcon_pca01, pre_std01, clssr_d01, cascade_gragdecider01};
38 block_cascade01 = u;
39 
40 %Rename block_cascade object
41 classifier = block_cascade01; clear block_cascade01;
42 u = sgs_crossval();
43 u.flag_group = 1;
44 u.flag_perclass = 1;
45 u.randomseed = 0;
46 u.flag_loo = 0;
47 u.no_reps = 10;
48 sgs_crossval01 = u;
49 
50 u = gridsearch();
51 u.sgs = sgs_crossval01;
52 u.clssr = classifier;
53 u.chooser = [];
54 u.postpr_test = grag_classes_first01;
55 u.postpr_est = [];
56 u.log_mold = {};
57 u.no_refinements = 1;
58 u.paramspecs = {'blocks{2}.no_factors', 1:58, 0;
59  'blocks{4}.type', {'linear', 'quadratic'}, 0};
60 u.maxmoves = 1;
61 gridsearch01 = u;
62 
63 %%
64 
65 % Calculation
66 
67 out = gridsearch01.use(dsx);
68 log_gridsearch_gridsearch01 = out;
69 
70 %%
71 
72 % Visualization
73 
74 out = log_gridsearch_gridsearch01.extract_sovaluess();
75 sovalues_gridsearch01 = out{1, 1};
76 
77 % Visualizes classification rates as a heat map
79 u.dimspec = {[0 0], [1 2]};
80 u.valuesfieldname = 'rates';
81 u.clim = [];
82 u.flag_logtake = 0;
83 vis_sovalues_drawimage01 = u;
84 figure;
85 vis_sovalues_drawimage01.use(sovalues_gridsearch01);
86 title('Classification rate (%) - (PCA no-factors) x (classifier type)');
87 maximize_window([], 9);
88 save_as_png([], 'irr_gridsearch_pca_discriminant_image');
89 
90 % The information is the same, but this visualization is as curves
92 u.dimspec = {[0 0], [1 2]};
93 u.valuesfieldname = 'rates';
94 u.flag_legend = 1;
95 u.flag_star = 1;
96 u.flag_hachure = 1;
97 u.ylimits = [];
98 u.xticks = [];
99 u.xticklabels = {};
100 vis_sovalues_drawplot01 = u;
101 figure;
102 vis_sovalues_drawplot01.use(sovalues_gridsearch01);
103 title('(PCA no-factors) x (Classification rate)');
105 save_as_png([], 'irr_gridsearch_pca_discriminant_curves');
106 
Cascade block: final instantializable class.
Definition: block_cascade.m:4
Principal Component Analysis.
Definition: fcon_pca.m:4
Standardization (trained)
Definition: pre_std.m:4
Draws plot from a sovalues object.
Linear and Quadratic discriminant.
Definition: clssr_d.m:9
K-Fold Cross-Validation.
Definition: sgs_crossval.m:6
function maximize_window(in h, in aspectratio, in normalizedsize)
Cascade block: grag_mean -> decider.
Dataset class.
Definition: irdata.m:30
Draws image from a sovalues object.
function save_as_png(in h, in fn, in dpi)
Group Aggregator - Classes - First row.
function load_data_she5trays()
Select some given class levels.
Analysis Session (AS) base class.
Definition: as.m:6
Grid Search.
Definition: gridsearch.m:20