1 %> @brief Outlier removal by Kernel
distribution estimation
2 %> @sa uip_blmisc_rowsout_kernel.m
5 %> Kernel width
as a percentage of the bin width
9 properties(SetAccess=
protected)
16 o.classtitle = 'Kernel';
21 function o = calculate_ranges(o, data)
23 o = o.calculate_distances(data);
25 wid = (max(o.distances)-min(o.distances))/o.no_bins*o.kernelwidth;
26 [xa, ya] =
distribution(o.distances, o.no_bins*F, [], wid);
27 ya = ya/sum(ya)*numel(o.distances)*F;
30 z = o.get_distrboolmap(ya);
33 deltax = mean(diff(xa));
34 edges = [xa-deltax/2, xa(end)+deltax/2];
35 % edges = [xa xa(end)+deltax];
37 flag_in = 0; % Inside a discarded range
39 if flag_in && (i == length(z)+1 || z(i))
40 o.ranges(end+1, :) = [edges(ia), edges(i)];
42 elseif ~flag_in && i <= length(z) && ~z(i)
49 function o = draw_histogram(o)
51 plot(o.distr_x, o.distr_y, 'Color', [151, 0, 112]/255, 'LineWidth', 3);
Distribution-Based Outlier Removal.
function distribution(in x, in no_points, in range, in wid)
Univariate Outlier removal.
Analysis Session (AS) base class.
Outlier removal by Kernel distribution estimation.