wolffd@0
|
1 function out = test_generic_display_results_absviolated(file)
|
wolffd@0
|
2 % out = test_generic_display_results_absviolated(file)
|
wolffd@0
|
3 %
|
wolffd@0
|
4 % displays the finalresults mat file and enables
|
wolffd@0
|
5 % further analysis and duiagnostics of the individual runs
|
wolffd@0
|
6
|
wolffd@0
|
7 global db_MTTAudioFeatureSlaney08;
|
wolffd@0
|
8 global db_magnamixedfeat_genrebasicsm;
|
wolffd@0
|
9 global db_MTTMixedFeatureGenreBasicSmPCA;
|
wolffd@0
|
10
|
wolffd@0
|
11
|
wolffd@0
|
12 global comparison;
|
wolffd@0
|
13 global comparison_ids;
|
wolffd@0
|
14
|
wolffd@0
|
15 if nargin < 1 || isempty(file) || isnumeric(file)
|
wolffd@0
|
16 u = dir();
|
wolffd@0
|
17 u = {u.name};
|
wolffd@0
|
18 [idx, strpos] = substrcellfind(u, '_finalresults.mat', 1);
|
wolffd@0
|
19
|
wolffd@0
|
20 if exist('file','var') && isnumeric(file)
|
wolffd@0
|
21 file = u{idx(file)};
|
wolffd@0
|
22 else
|
wolffd@0
|
23 file = u{idx(1)};
|
wolffd@0
|
24 end
|
wolffd@0
|
25 end
|
wolffd@0
|
26
|
wolffd@0
|
27 load(file);
|
wolffd@0
|
28
|
wolffd@0
|
29 % ---
|
wolffd@0
|
30 % % get statistics for feature parameters
|
wolffd@0
|
31 % Visualise the accuracy and variance
|
wolffd@0
|
32 % ---
|
wolffd@0
|
33 if isfield(out, 'inctrain')
|
wolffd@0
|
34 for i = 1:numel(out)
|
wolffd@0
|
35
|
wolffd@0
|
36 % ---
|
wolffd@0
|
37 % get training and test sample sizes
|
wolffd@0
|
38 % ---
|
wolffd@0
|
39 nData = [];
|
wolffd@0
|
40 n_train_data = zeros(1,numel(out(i).inctrain.dataPartition));
|
wolffd@0
|
41 n_test_data = zeros(1,numel(out(i).inctrain.dataPartition));
|
wolffd@0
|
42 for j = 1:numel(out(i).inctrain.dataPartition)
|
wolffd@0
|
43 n_train_data(j) = mean(out(i).inctrain.dataPartition(j).TrainSize);
|
wolffd@0
|
44 n_test_data(j) = mean(out(i).inctrain.dataPartition(j).TestSize);
|
wolffd@0
|
45 end
|
wolffd@0
|
46
|
wolffd@0
|
47 % ---
|
wolffd@0
|
48 % get lost percentages
|
wolffd@0
|
49 % ---
|
wolffd@0
|
50 mean_lost_test = 1 - [out(i).inctrain.mean_ok_test];
|
wolffd@0
|
51 mean_lost_test = mean_lost_test(1,:).* n_test_data;
|
wolffd@0
|
52
|
wolffd@0
|
53 var_ok_test = sqrt([out(i).inctrain.var_ok_test]);
|
wolffd@0
|
54
|
wolffd@0
|
55 mean_lost_train = 1 - [out(i).inctrain.mean_ok_train];
|
wolffd@0
|
56 mean_lost_train = mean_lost_train(1,:).* n_train_data;
|
wolffd@0
|
57
|
wolffd@0
|
58 % plot test results
|
wolffd@0
|
59 figure;
|
wolffd@0
|
60 subplot(2,1,1)
|
wolffd@0
|
61 plot(n_train_data, mean_lost_test,'r');
|
wolffd@0
|
62 hold;
|
wolffd@0
|
63 % plot training results
|
wolffd@0
|
64 plot(n_train_data, mean_lost_train,'m');
|
wolffd@0
|
65
|
wolffd@0
|
66 xlabel ('# training constraints');
|
wolffd@0
|
67 ylabel ('# constraints violated');
|
wolffd@0
|
68 legend ('test','training');
|
wolffd@0
|
69
|
wolffd@0
|
70 plot(n_train_data, mean_lost_test + var_ok_test(1,:).* n_test_data,'r:');
|
wolffd@0
|
71 plot(n_train_data, mean_lost_test - (var_ok_test(1,:).* n_test_data),'r:');
|
wolffd@0
|
72
|
wolffd@0
|
73 % ---
|
wolffd@0
|
74 % get percentage of unknown data examples learnt
|
wolffd@0
|
75 % ---
|
wolffd@0
|
76 lost_test_not_in_train = mean_lost_test - mean_lost_train;
|
wolffd@0
|
77 ntest_not_in_train = n_test_data - n_train_data;
|
wolffd@0
|
78
|
wolffd@0
|
79 lost_test_not_in_train = lost_test_not_in_train ./ ntest_not_in_train;
|
wolffd@0
|
80
|
wolffd@0
|
81 lost_test_not_in_train(isnan(lost_test_not_in_train)) = 0;
|
wolffd@0
|
82
|
wolffd@0
|
83 subplot(2,1,2)
|
wolffd@0
|
84 plot(n_train_data, lost_test_not_in_train);
|
wolffd@0
|
85
|
wolffd@0
|
86 xlabel ('# training constraints');
|
wolffd@0
|
87 ylabel ('% unknown constraints violated');
|
wolffd@0
|
88 end
|
wolffd@0
|
89 end
|
wolffd@0
|
90
|
wolffd@0
|
91
|
wolffd@0
|
92 % ---
|
wolffd@0
|
93 % write max. training success
|
wolffd@0
|
94 % ---
|
wolffd@0
|
95 mean_ok_test = [out.mean_ok_test];
|
wolffd@0
|
96 [val, idx] = max(mean_ok_test(1,:));
|
wolffd@0
|
97 fprintf(' --- Maximal training success: nr. %d, %3.2f percent. --- \n', idx, val * 100)
|
wolffd@0
|
98
|
wolffd@0
|
99 end
|