IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
demo_crosscalculated_lda.m
Go to the documentation of this file.
1 %>@brief Cross-calculated LDA scores
2 %>@ingroup demo
3 %>@file
4 %>
5 %> @image html demo_as_crossc02.png
6 %> <center>Cross-calculated scores plot</center>
7 %>
8 %> @image html demo_as_crossc03.png
9 %> <center>In-sample-calculated scores plot</center>
10 %>
11 %> @image html demo_as_crossc01.png
12 %> <center>Loadings vectors (1st factor) for each block in the cross-calculation process</center>
13 %>
14 %> @sa as_crossc
15 
16 dataset = load_data_she5trays();
18 o = o.setbatch({'hierarchy', 1});
19 blmisc_classlabels_hierarchy01 = o;
20 [blmisc_classlabels_hierarchy01, out] = blmisc_classlabels_hierarchy01.use(dataset);
21 dataset = out; % Dataset has only 5 classes now
22 
23 o = pre_norm_std();
24 pre_norm_std01 = o;
25 [pre_norm_std01, out] = pre_norm_std01.use(dataset);
26 dataset_std01 = out; % Dataset variables are standardized
27 
28 
29 o = fcon_lda();
30 o = o.setbatch({'penalty', 0});
31 fcon_lda01 = o; % LDA block to perform the cross-calculation
32 
33 o = sgs_crossval();
34 o.flag_group = 1;
35 o.flag_perclass = 0;
36 o.randomseed = 0;
37 o.flag_loo = 1;
38 sgs_crossval01 = o; % Leave-one-out cross-validation SGS
39 
40 o = as_crossc();
41 o.mold = fcon_lda01;
42 o.sgs = sgs_crossval01;
43 as_crossc01 = o; % Cross-calculation block
44 
45 
46 %%
47 
48 log = as_crossc01.use(dataset_std01); % Cross-calculation
49 
50 %%
51 
52 %%%
53 %%% Visualization of fold-wise loadings vectors
54 %%%
55 o = vis_crossloadings();
56 o = o.setbatch({'flag_abs', 0, ...
57 'flag_trace_minalt', 0, ...
58 'data_hint', [dataset], ...
59 'peakdetector', [], ...
60 'idx_fea', 1});
61 vis_crossloadings01 = o; % LD1
62 
63 vis_crossloadings02 = vis_crossloadings01;
64 vis_crossloadings02.idx_fea = 2; % LD2
65 
66 figure;
67 subplot(2, 1, 1);
68 vis_crossloadings01.use(log);
69 title('Loadings 1 (LD1)');
70 subplot(2, 1, 2);
71 vis_crossloadings02.use(log);
72 title('Loadings 2 (LD2)');
74 
75 %%%
76 %%% Visualization direct LDA and cross-calculated LDA scatter plots
77 %%%
78 out = log.extract_dataset();
79 irdata_crossc01 = out;
80 
81 o = vis_scatter2d();
82 o = o.setbatch({'idx_fea', [1,2], ...
83 'confidences', [], ...
84 });
85 vis_scatter2d01 = o; % 2D scatterplot block
86 
87 figure;
88 subplot(1, 2, 1);
89 vis_scatter2d01.use(irdata_crossc01);
90 title('Cross-calculated LDA scores');
91 xlabel('LD1'); ylabel('LD2');
92 v_xlim = xlim();
93 v_ylim = ylim();
94 
95 fcon_lda01 = fcon_lda01.train(dataset_std01);
96 [fcon_lda01, out] = fcon_lda01.use(dataset_std01);
97 dataset_std01_lda01 = out;
98 
99 subplot(1, 2, 2);
100 vis_scatter2d01.use(dataset_std01_lda01);
101 title('Direct LDA scores');
102 xlabel('LD1'); ylabel('LD2');
103 xlim(v_xlim);
104 ylim(v_ylim); % Same scale to show difference in the scattering of points
105 make_box();
Loadings vector of an as_crossc.
function make_box()
K-Fold Cross-Validation.
Definition: sgs_crossval.m:6
function maximize_window(in h, in aspectratio, in normalizedsize)
2D Scatterplot
Definition: vis_scatter2d.m:6
function use(in o, in data)
Applies block to data.
Normalization - std Normalization - backward compatibility.
Definition: pre_norm_std.m:6
Base Block class.
Definition: block.m:2
Cross-calculation Analysis Session.
Definition: as_crossc.m:19
Fisher's Linear Discriminant Analysis.
Definition: fcon_lda.m:3
function load_data_she5trays()
Select some given class levels.