wolffd@0: function sim_from_comparison_attach_weights(filen) wolffd@0: wolffd@0: global comparison; wolffd@0: global comparison_ids; wolffd@0: % load data from mat file wolffd@0: load(filen); wolffd@0: wolffd@0: % --- wolffd@0: % get the similarity multigraph and remove cycles wolffd@0: % --- wolffd@0: cprint(2, 'creating graph') wolffd@0: Gm = ClipSimGraphMulti(comparison, comparison_ids); wolffd@0: Gm.remove_cycles_length2; wolffd@0: wolffd@0: nTestSets = size(partBinTst, 2); % num cv bins wolffd@0: ntrainsizes = size(partBinTrn, 2); % num increases of training wolffd@0: wolffd@0: % --- wolffd@0: % test sets wolffd@0: % --- wolffd@0: cprint(2, 'doing test sets') wolffd@0: wolffd@0: % for all validations wolffd@0: for k = 1:size(partBinTst, 2); wolffd@0: wolffd@0: % for each constraint tiplet wolffd@0: for i = 1:size(partBinTst{k},1) wolffd@0: wolffd@0: % get weight for this edge from graph wolffd@0: [weight, ~, ~] = Gm.edge(partBinTst{k}(i,1), partBinTst{k}(i,2),... wolffd@0: partBinTst{k}(i,3)); wolffd@0: wolffd@0: if isempty(weight) || weight == 0 wolffd@0: error 'inconsistent similarity data'; wolffd@0: end wolffd@0: wolffd@0: % save into same data structure wolffd@0: partBinTst{k}(i,4) = weight; wolffd@0: end wolffd@0: end wolffd@0: wolffd@0: % --- wolffd@0: % train sets wolffd@0: % --- wolffd@0: wolffd@0: cprint(2, 'doing train sets') wolffd@0: % for all validations wolffd@0: for k = 1:size(partBinTrn, 1); wolffd@0: wolffd@0: % for all training sizes wolffd@0: for m = 1:size(partBinTrn, 2); wolffd@0: wolffd@0: % for each constraint tiplet wolffd@0: for i = 1:size(partBinTrn{k,m},1) wolffd@0: wolffd@0: % get weight for this edge from graph wolffd@0: [weight, ~, ~] = Gm.edge(partBinTrn{k,m}(i,1), partBinTrn{k,m}(i,2),... wolffd@0: partBinTrn{k,m}(i,3)); wolffd@0: wolffd@0: if isempty(weight) || weight == 0 wolffd@0: error 'inconsistent similarity data'; wolffd@0: end wolffd@0: wolffd@0: % save into same data structure wolffd@0: partBinTrn{k,m}(i,4) = weight; wolffd@0: end wolffd@0: end wolffd@0: end wolffd@0: wolffd@0: % --- wolffd@0: % Notrain sets wolffd@0: % --- wolffd@0: cprint(2, 'doing Notrain sets') wolffd@0: % for all validations wolffd@0: for k = 1:size(partBinNoTrn, 1); wolffd@0: wolffd@0: % for all training sizes wolffd@0: for m = 1:size(partBinNoTrn, 2); wolffd@0: wolffd@0: % for each constraint tiplet wolffd@0: for i = 1:size(partBinNoTrn{k,m},1) wolffd@0: wolffd@0: % get weight for this edge from graph wolffd@0: [weight, ~, ~] = Gm.edge(partBinNoTrn{k,m}(i,1), partBinNoTrn{k,m}(i,2),... wolffd@0: partBinNoTrn{k,m}(i,3)); wolffd@0: wolffd@0: if isempty(weight) || weight == 0 wolffd@0: error 'inconsistent similarity data'; wolffd@0: end wolffd@0: % save into same data structure wolffd@0: partBinNoTrn{k,m}(i,4) = weight; wolffd@0: end wolffd@0: end wolffd@0: end wolffd@0: wolffd@0: % save results to mat file wolffd@0: save(sprintf('%s_weighted.mat',filen), 'partBinTst', 'partBinTrn', 'partBinNoTrn');