1 %> @brief Classifiers base
class
3 %> A classifier is a
block that outputs
class probabilities for each observation. Output is given
as an @c
7 properties(SetAccess=
protected)
11 properties(SetAccess=
protected)
18 flag_datay = 0; % means data.classes are to be ignored and data.Y to be used
as target. Basically defineas a regression problem.
25 o.classtitle = 'Classifier';
28 o.color = [157, 0, 0]/255;
31 %> @brief Resets @ref classlabels and calls @ref
clssr::boot()
39 function z =
get.no_outputs(o)
40 z = o.get_no_outputs();
43 % Renumbers data classes to match o.classlabels order
44 function classes = get_classes(o, data)
51 function o = draw_domain(o, parameters)
53 irerror('Domain needs to be 2-dimensional!');
56 o.do_draw_domain(parameters);
63 methods(Access=protected)
64 function z = get_no_outputs(o)
65 z = length(o.classlabels);
68 % Fields expected in params:
75 % TODO needs see what to do with estimation
76 function o = do_draw_domain(o, params)
81 % classification regions
82 flag_regions = ~o.flag_datay && isfield(params, 'flag_regions') && params.flag_regions;
84 [Q1, Q2] = meshgrid(linspace(params.x_range(1), params.x_range(2), params.x_no), ...
85 linspace(params.y_range(1), params.y_range(2), params.y_no));
86 X_map = [Q1(:) Q2(:)];
95 classes_map_block = zeros(params.y_no, params.x_no);
97 classes_map_block(:, i) = est.classes((i-1)*params.y_no+1:i*params.y_no);
100 h = pcolor(Q1, Q2, classes_map_block);
102 vtemp = unique(est.classes);
103 for i = 1:numel(vtemp)
104 color_matrix(i, :) = rgb(
find_color(vtemp(i)+1));
107 colormap(color_matrix);
116 flag_ds_train = isfield(params, 'ds_train') && ~isempty(params.ds_train);
121 pieces = params.ds_train;
125 for i = 1:length(pieces)
127 i_class =
renumber_classes(pieces(i).classes(1), pieces(i).classlabels, o.classlabels);
132 no = size(pieces(i).X, 1);
134 hh = plot3(pieces(i).X(:, 1), pieces(i).X(:, 2), ones(no, 1)*1, 'Color',
find_color(i_class+1), ...
138 handles(ihandle) = hh(1);
146 flag_ds_test = isfield(params, 'ds_test') && ~isempty(params.ds_test);
151 pieces = params.ds_test;
155 for i = 1:length(pieces)
157 i_class =
renumber_classes(pieces(i).classes(1), pieces(i).classlabels, o.classlabels);
162 no = size(pieces(i).X, 1);
164 hh = plot3(pieces(i).X(:, 1), pieces(i).X(:, 2), ones(no, 1)*1, 'LineWidth', 2, 'Color', 'k', ...
168 handles(ihandle) = hh(1);
177 if flag_ds_train || flag_ds_test
178 % Ok, this is gonna give an error if only the test data exists, but... this is life
179 feanames = params.ds_train.get_fea_names([1, 2]);
185 % plot_piece(pieces_train(1).X,
find_color(1));
188 % plot_piece(pieces_train(2).X,
find_color(2));
191 % plot_piece(pieces_test(1).X,
find_color(1), 1);
194 % plot_piece(pieces_test(2).X,
find_color(2), 1);
198 % gscatter(X_map(:, 1), X_map(:, 2), classes_map, COLORS);
199 axis([params.x_range(1), params.x_range(2), params.y_range(1), params.y_range(2)]);
function find_marker(in i)
function find_color(in i)
function find_marker_size(in i)
Block that resolves estimato posterior probabilities into classes.
Dataset representing estimation.
function data_split_classes(in data, in hierarchy)
function renumber_classes(in classes_orig, in classlabels_orig, in classlabels_ref)
Analysis Session (AS) base class.