wolffd@0
|
1 function sim_from_comparison_attach_weights(filen)
|
wolffd@0
|
2
|
wolffd@0
|
3 global comparison;
|
wolffd@0
|
4 global comparison_ids;
|
wolffd@0
|
5 % load data from mat file
|
wolffd@0
|
6 load(filen);
|
wolffd@0
|
7
|
wolffd@0
|
8 % ---
|
wolffd@0
|
9 % get the similarity multigraph and remove cycles
|
wolffd@0
|
10 % ---
|
wolffd@0
|
11 cprint(2, 'creating graph')
|
wolffd@0
|
12 Gm = ClipSimGraphMulti(comparison, comparison_ids);
|
wolffd@0
|
13 Gm.remove_cycles_length2;
|
wolffd@0
|
14
|
wolffd@0
|
15 nTestSets = size(partBinTst, 2); % num cv bins
|
wolffd@0
|
16 ntrainsizes = size(partBinTrn, 2); % num increases of training
|
wolffd@0
|
17
|
wolffd@0
|
18 % ---
|
wolffd@0
|
19 % test sets
|
wolffd@0
|
20 % ---
|
wolffd@0
|
21 cprint(2, 'doing test sets')
|
wolffd@0
|
22
|
wolffd@0
|
23 % for all validations
|
wolffd@0
|
24 for k = 1:size(partBinTst, 2);
|
wolffd@0
|
25
|
wolffd@0
|
26 % for each constraint tiplet
|
wolffd@0
|
27 for i = 1:size(partBinTst{k},1)
|
wolffd@0
|
28
|
wolffd@0
|
29 % get weight for this edge from graph
|
wolffd@0
|
30 [weight, ~, ~] = Gm.edge(partBinTst{k}(i,1), partBinTst{k}(i,2),...
|
wolffd@0
|
31 partBinTst{k}(i,3));
|
wolffd@0
|
32
|
wolffd@0
|
33 if isempty(weight) || weight == 0
|
wolffd@0
|
34 error 'inconsistent similarity data';
|
wolffd@0
|
35 end
|
wolffd@0
|
36
|
wolffd@0
|
37 % save into same data structure
|
wolffd@0
|
38 partBinTst{k}(i,4) = weight;
|
wolffd@0
|
39 end
|
wolffd@0
|
40 end
|
wolffd@0
|
41
|
wolffd@0
|
42 % ---
|
wolffd@0
|
43 % train sets
|
wolffd@0
|
44 % ---
|
wolffd@0
|
45
|
wolffd@0
|
46 cprint(2, 'doing train sets')
|
wolffd@0
|
47 % for all validations
|
wolffd@0
|
48 for k = 1:size(partBinTrn, 1);
|
wolffd@0
|
49
|
wolffd@0
|
50 % for all training sizes
|
wolffd@0
|
51 for m = 1:size(partBinTrn, 2);
|
wolffd@0
|
52
|
wolffd@0
|
53 % for each constraint tiplet
|
wolffd@0
|
54 for i = 1:size(partBinTrn{k,m},1)
|
wolffd@0
|
55
|
wolffd@0
|
56 % get weight for this edge from graph
|
wolffd@0
|
57 [weight, ~, ~] = Gm.edge(partBinTrn{k,m}(i,1), partBinTrn{k,m}(i,2),...
|
wolffd@0
|
58 partBinTrn{k,m}(i,3));
|
wolffd@0
|
59
|
wolffd@0
|
60 if isempty(weight) || weight == 0
|
wolffd@0
|
61 error 'inconsistent similarity data';
|
wolffd@0
|
62 end
|
wolffd@0
|
63
|
wolffd@0
|
64 % save into same data structure
|
wolffd@0
|
65 partBinTrn{k,m}(i,4) = weight;
|
wolffd@0
|
66 end
|
wolffd@0
|
67 end
|
wolffd@0
|
68 end
|
wolffd@0
|
69
|
wolffd@0
|
70 % ---
|
wolffd@0
|
71 % Notrain sets
|
wolffd@0
|
72 % ---
|
wolffd@0
|
73 cprint(2, 'doing Notrain sets')
|
wolffd@0
|
74 % for all validations
|
wolffd@0
|
75 for k = 1:size(partBinNoTrn, 1);
|
wolffd@0
|
76
|
wolffd@0
|
77 % for all training sizes
|
wolffd@0
|
78 for m = 1:size(partBinNoTrn, 2);
|
wolffd@0
|
79
|
wolffd@0
|
80 % for each constraint tiplet
|
wolffd@0
|
81 for i = 1:size(partBinNoTrn{k,m},1)
|
wolffd@0
|
82
|
wolffd@0
|
83 % get weight for this edge from graph
|
wolffd@0
|
84 [weight, ~, ~] = Gm.edge(partBinNoTrn{k,m}(i,1), partBinNoTrn{k,m}(i,2),...
|
wolffd@0
|
85 partBinNoTrn{k,m}(i,3));
|
wolffd@0
|
86
|
wolffd@0
|
87 if isempty(weight) || weight == 0
|
wolffd@0
|
88 error 'inconsistent similarity data';
|
wolffd@0
|
89 end
|
wolffd@0
|
90 % save into same data structure
|
wolffd@0
|
91 partBinNoTrn{k,m}(i,4) = weight;
|
wolffd@0
|
92 end
|
wolffd@0
|
93 end
|
wolffd@0
|
94 end
|
wolffd@0
|
95
|
wolffd@0
|
96 % save results to mat file
|
wolffd@0
|
97 save(sprintf('%s_weighted.mat',filen), 'partBinTst', 'partBinTrn', 'partBinNoTrn');
|