annotate dss/classification/classify.m @ 1:9a37f107f089

Corrected contact mail and included shell script mention.
author Francisco Rodriguez Algarra <f.rodriguezalgarra@qmul.ac.uk>
date Wed, 21 Oct 2015 11:21:26 +0100
parents 503d0475274e
children
rev   line source
f@0 1 function [] = classify(db, optt, preffix)
f@0 2
f@0 3 cond = cellstr(['none '; 'fault']);
f@0 4
f@0 5 for ii=1:length(cond)
f@0 6
f@0 7 [train_set,test_set] = createFolds(cond{ii});
f@0 8 train_set = find(train_set)';
f@0 9 test_set = find(test_set)';
f@0 10
f@0 11 [dev_err_grid,C_grid,gamma_grid] = ...
f@0 12 svm_adaptive_param_search(db,train_set,[],optt);
f@0 13
f@0 14 [dev_err,ind] = min(mean(dev_err_grid{end},2));
f@0 15 C = C_grid{end}(ind);
f@0 16 gamma = gamma_grid{end}(ind);
f@0 17
f@0 18 optt1 = optt;
f@0 19 optt1.C = C;
f@0 20 optt1.gamma = gamma;
f@0 21
f@0 22 model = svm_train(db,train_set,optt1);
f@0 23 labels = svm_test(db,model,test_set);
f@0 24 err = classif_err(labels,test_set,db.src);
f@0 25
f@0 26 fprintf('dev err = %f, test err = %f\n\n',dev_err,err);
f@0 27
f@0 28 % dummy renaming of variables
f@0 29 id = test_set';
f@0 30 true_label = kron((1:10), ones(1, 100));
f@0 31 true_label = true_label(test_set)';
f@0 32 pred_label = labels';
f@0 33
f@0 34 % saving results in table
f@0 35 results = table(id, true_label, pred_label)
f@0 36
f@0 37 run_name = [preffix, cond{ii}];
f@0 38
f@0 39 global results_dir;
f@0 40 [s, mess, messid] = mkdir(results_dir);
f@0 41 if(s ~= 1) exit; end;
f@0 42
f@0 43 save([results_dir, run_name, '.mat'],'dev_err','err','C','gamma', 'labels', 'results');
f@0 44 writetable(results, [results_dir, run_name, '_results.csv'])
f@0 45
f@0 46 end;
f@0 47