annotate scene_classification/sceneClassificationMetrics_collectevals.m @ 10:507300d2ed66 tip

merge
author Dan Stowell <dan.stowell@elec.qmul.ac.uk>
date Thu, 10 Oct 2013 09:18:47 +0100
parents 9becdb4e659b
children
rev   line source
dan@2 1 % Script to invoke the evaluation on all the output from the submissions, which must previously have been collected.
dan@2 2 % Compiles the accuracies etc into a CSV file
dan@2 3
dan@2 4 basepath = '/home/dan/aasp_april2013_eval'
dan@2 5 numfolds = 5
dan@2 6 % then using the list of submissions from the folderlisting:
dan@5 7 subs = cellstr(['cooper_tam_system0_c'; 'cooper_tam_system1_c'; 'cooper_tam_system2_c'; ...
dan@5 8 'elizalde'; 'geiger'; 'johnshopkins'; 'krijnders'; ...
dan@5 9 'mtg_nogueira_0'; 'mtg_nogueira_1'; 'mtg_nogueira_2'; ...
dan@5 10 'mtg_roma'; 'mtg_roma_1';
dan@5 11 'nam_hyung_lee'; 'olivetti_withdels'; 'pooledmajority'; 'rahman_system1'; 'rahman_system2'; 'rakotomamonjy_gasso'; 'smacpy'])
dan@4 12
dan@4 13 bigconfusion = 0
dan@2 14
dan@2 15 csvfp = fopen(sprintf('%s/eval_results_sc/eval_results_sc.csv', basepath), 'w+');
dan@2 16 fprintf(csvfp, 'submission,acc,std,confint,accfold1,accfold2,accfold3,accfold4,accfold5\n');
dan@2 17 for which=1:length(subs)
dan@2 18 f = subs{which};
dan@2 19 subpath = sprintf('%s/submitter_filelists/%s.txt', basepath, f)
dan@2 20 [confusionMat, AccFolds, Acc, Std] = sceneClassificationMetrics_eval(numfolds, sprintf('%s/filelist_GTs.txt', basepath), subpath);
dan@2 21 Acc
dan@2 22 ConfInt = Std * 1.96 / sqrt(numfolds)
dan@2 23 fprintf(csvfp, '%s,%g,%g,%g,%g,%g,%g,%g,%g\n', f, Acc, Std, ConfInt, AccFolds(1), AccFolds(2), AccFolds(3), AccFolds(4), AccFolds(5));
dan@3 24 % and write confusion matrices out
dan@3 25 dlmwrite(sprintf('%s/eval_results_sc/confusion_%s.csv', basepath, f), confusionMat);
dan@4 26 if bigconfusion == 0
dan@4 27 bigconfusion = confusionMat;
dan@4 28 else
dan@4 29 bigconfusion += confusionMat;
dan@4 30 end
dan@2 31 end
dan@5 32
dan@5 33 rowsum = sum(bigconfusion');
dan@5 34 if any(rowsum != rowsum(1))
dan@5 35 rowsum
dan@6 36 error('Not all row-sums are equal -- this must be the case for a confusion matrix with balanced classes')
dan@5 37 end
dan@5 38
dan@5 39 bigconfusion = round(bigconfusion * 100 / rowsum(1));
dan@5 40
dan@4 41 dlmwrite(sprintf('%s/eval_results_sc/total_confusion.csv', basepath), bigconfusion);
dan@4 42 bigconfusion
dan@2 43 fclose(csvfp);
dan@2 44