annotate core/magnatagatune/tests_evals/test_generic_display_results_absviolated.m @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
rev   line source
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