-
Notifications
You must be signed in to change notification settings - Fork 11
/
displaystats.m
59 lines (51 loc) · 1.94 KB
/
displaystats.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function displaystats(gp)
%DISPLAYSTATS Displays run stats periodically.
%
% DISPLAYSTATS(GP) updates the screen with run stats at the interval
% specified in GP.RUN.VERBOSE
%
% Copyright (c) 2009-2015 Dominic Searson
%
% GPTIPS 2
%
% See also UPDATESTATS
%only display info if required
if ~gp.runcontrol.verbose || gp.runcontrol.quiet || ...
mod(gp.state.count-1,gp.runcontrol.verbose)
return
end
gen = gp.state.count - 1;
%multiple independent run count display
if gp.runcontrol.runs > 1 && gen == 0
disp(['Run ' int2str(gp.state.run) ' of ' int2str(gp.runcontrol.runs)]);
end
disp(['Generation ' num2str(gen)]);
disp(['Best fitness: ' num2str(gp.results.best.fitness)]);
disp(['Mean fitness: ' num2str(gp.state.meanfitness)]);
if gp.fitness.complexityMeasure
disp(['Best complexity: ' num2str(gp.results.best.complexity)]);
else
disp(['Best node count: ' num2str(gp.results.best.nodecount)]);
end
%display inputs in "best training" individual, if enabled.
if gp.runcontrol.showBestInputs
hitvec = gpmodelvars(gp,'best');
inputs = num2str(find(hitvec));
inputs = strtrim(cellstr(inputs));
pat = '(\d+)';
inputs = regexprep(inputs,pat,'x$1 '); %note: trailing space essential
inputs = [inputs{:}]; % converts char cell array to a single string
disp(['Inputs in best individual: ' inputs]);
end
%display inputs in "best validation" individual, if enabled.
if gp.runcontrol.showValBestInputs && isfield(gp.userdata,'xval') ...
&& ~isempty(gp.userdata.xval) && isfield(gp.results,'valbest')
hitvec = gpmodelvars(gp,'valbest');
inputs = num2str(find(hitvec));
inputs = strtrim(cellstr(inputs));
pat='(\d+)';
inputs = regexprep(inputs,pat,'x$1 '); %note: trailing space essential
inputs = [inputs{:}]; % converts char cell array to a single string
disp(['Inputs in best validation individual: ' inputs]);
end
disp(' ');