IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
aggr_ova.m
Go to the documentation of this file.
1 %> @brief One-versus-all classifier
2 %>
3 %> Currently not multitrainable
4 %>
5 %> @sa uip_aggr_ova.m
6 classdef aggr_ova < aggr
7  properties
8  % must contain a block object that will be replicated as needed
9  block_mold = [];
10  end;
11 
12  methods
13  function o = aggr_ova(o)
14  o.classtitle = 'One-versus-all';
15  end;
16  end;
17 
18  methods(Access=protected)
19  function o = do_boot(o)
20  o = do_boot@aggr(o);
21  end;
22 
23  % Adds classifiers when new classes are presented
24  function o = do_train(o, data)
25  o.classlabels = data.classlabels;
26 
27  nc = data.nc;
28 
30 
31  labels = repmat({'A'}, 1, nc);
32 
33 % pieces = data_split_classes(data); % Por enquanto assim, mas dava pra tentar um split unico
34  o.time_train = 0;
35  for i1 = 1:nc
36  blr.classlabels_new = labels; % "all"
37  blr.classlabels_new{i1} = '0'; % "one" (it is a zero, to sort befora the "A" classes
38 
39  blk = o.block_mold.boot();
40  o.blocks(i1).block = blk.train(data_sort_classlabels(blr.use(data)));
41  end;
42  end;
43 
44  %> Uses blocks and aggregates @c est 's using @c o.esag
45  %>
46  %> @retval [o, est]
47  function est = do_use(o, data)
48 
49  nb = numel(o.blocks);
50  for i = nb:-1:1 % for allocation of ests_
51  [o.blocks(i).block, ee] = o.blocks(i).block.use(data);
52 
53  ests_(i) = ee;
54  ests_(i).classlabels = o.classlabels;
55  ests_(i).X = zeros(data.no, nb);
56  ests_(i).X = repmat(ee.X(:, 2)/(nb-1), 1, nb); % "Dilutes" the "all" posterior
57  ests_(i).X(:, i) = ee.X(:, 1);
58  end;
59 
60  est = o.esag.use(ests_);
61  if o.flag_ests
62  o.ests = ests_;
63  else
64  o.ests = [];
65  end;
66  end;
67  end;
68 end
Base class for all ensemble classifiers.
Definition: aggr.m:6
One-versus-all classifier.
Definition: aggr_ova.m:6
Base Block class.
Definition: block.m:2
function data_split_classes(in data, in hierarchy)
function data_sort_classlabels(in data)
Analysis Session (AS) base class.
Definition: as.m:6