IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
demo_eclass_artificial.m
Go to the documentation of this file.
1 %>@brief Draws classification regions for classifier eClass
2 %>@ingroup demo
3 %>@file
4 %>
5 %> @attention Needs the frbm (Fuzzy) classifier, which is not available in the standard distribution of IRootLab
6 %> Uses userdata_nc2nf2 dataset.
7 %>
8 %> Simple train-test (no cross-validation).
9 %>
10 %>@verbatim
11 %> rejected 0 1
12 %> 0 0.00% 90.00% 10.00%
13 %> 1 0.00% 0.00% 100.00%
14 %>@endverbatim
15 %>
16 %>@sa frbm
17 
19 
20 
21 %Dataset load
23 
24 o = frbm();
25 o = o.setbatch({'scale', 1.6, ...
26 'epsilon', exp(-1), ...
27 'flag_consider_Pmin', 1, ...
28 'flag_perclass', 1, ...
29 'flag_clone_rule_radii', 1, ...
30 'flag_iospace', 1, ...
31 's_f_get_firing', 'frbm_firing_exp_default', ...
32 's_f_update_rules', 'frbm_update_rules_original', ...
33 'flag_rls_global', 0, ...
34 'rho', 0.5, ...
35 'ts_order', 0, ...
36 'flag_wta', 0, ...
37 'flag_class2mo', 1});
38 
39 
40 frbm01 = o;
41 
42 
43 o = pre_norm();
44 o = o.setbatch({'types', 's', ...
45 'idxs_fea', []});
46 
47 
48 pre_norm01 = o;
49 
50 
51 o = sgs_randsub();
52 o = o.setbatch({'flag_group', 0, ...
53 'flag_perclass', 1, ...
54 'randomseed', 112222, ...
55 'type', 'fixed', ...
56 'bites', [0.9 0.1], ...
57 'bites_fixed', [50, 10], ...
58 'no_reps', 1});
59 
60 sgs_randsub01 = o;
61 
62 [pre_norm01, out] = pre_norm01.use(ds01);
63 
64 ds01_norm01 = out;
65 
66 idxs = sgs_randsub01.get_obsidxs(ds01_norm01);
67 
68 dstrain = ds01_norm01.map_rows(idxs{1, 1});
69 dstest = ds01_norm01.map_rows(idxs{1, 2});
70 
71 frbm01 = frbm01.boot();
72 frbm01 = frbm01.train(dstrain);
73 est = frbm01.use(dstest);
74 
75 de = decider();
76 est2 = de.use(est);
77 
78 lo = estlog_classxclass();
79 lo.testlabels = dstest.classlabels;
80 lo.estlabels = est2.classlabels;
81 lo.flag_inc_t = 0;
82 pars2.ds_test = dstest;
83 pars2.est = est2;
84 lo = lo.allocate(1);
85 lo = lo.record(pars2);
86 cc = lo.get_confusion([], 1, []);
87 disp(confusion_str(cc.C, cc.rowlabels, cc.collabels));
88 
89 
90 %%
91 
92 % Now the domain drawing
93 
94 pars.x_range = [-2, 2];
95 pars.y_range = [-2, 2];
96 pars.x_no = 100;
97 pars.y_no = 100;
98 pars.ds_train = dstrain;
99 pars.ds_test = dstest;
100 pars.flag_last_point = 1;
101 pars.flag_link_points = 0;
102 pars.flag_regions = 1;
103 
104 frbm01 = frbm01.boot();
105 frbm01 = frbm01.train(dstrain);
106 
107 figure;
108 frbm01.draw_domain(pars);
109 title(frbm01.get_description());
110 
111 %%
112 
113 text(-0.53, -1.75, 1, 'Rule focal point', 'FontSize', 18);
114 text(0.475, -0.9, 1, 'Test point', 'FontSize', 18);
115 text(-0.23, -0.55, 1, 'Last point', 'FontSize', 18);
116 
117 %%
118 maximize_window([], 1);
119 save_as_png([], 'irr_demo_eclass');
function maximize_window(in h, in aspectratio, in normalizedsize)
Block that resolves estimato posterior probabilities into classes.
Definition: decider.m:10
function setbatch(in o, in params)
function distribution(in x, in no_points, in range, in wid)
function save_as_png(in h, in fn, in dpi)
Records (test class)x([rejected, estimation class]) hits.
Random Sub-sampling.
Definition: sgs_randsub.m:5
function colors_markers()
Normalization - final class.
Definition: pre_norm.m:6
function load_data_userdata_nc2nf2()
function confusion_str(in CC, in rowlabels, in collabels, in flag_perc)